MySQL_关系的码,关系的完整性
[toc] 关系的码候选码 候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键如: 学生关系中,学号可以唯一标识学生,班级+姓名也可以唯一标识一个学生,学号和(班级,姓名)都是候选码 候选码需要满足: 唯一性:唯一标识一个元组(注意不是说候选码只有一个) 最小性:构成候选码的属性个数最少,比如前面的(班级,姓名),再添加一个学号或其他属性就多此一举了 主码 主码是从候选键中选着一个作为查询、插入、删除元组操作的操作变量,也叫主键、主码、关系键、关键字简单来说就是从候选码中选出的一个最具代表性的 主属性:包含在任何一个候选码的各个属性称为主属性(也就是说,之前的(班级,姓名)中,班级和姓名都是主属性) 非主属性:不包含在任何候选码中的属性 外码 关系R1,R2,其中属性集X是R1的非主码属性,但X是R2的主码,则称X是R1的外码(也叫外键、外部关系键),R1为参照关系,R2为被参照关系 外码的取值是由被参照的关系的主码的域决定的,也就是外码的域来自“那个”主码的域(R1的外码和R2的主码必须在同一个域上) 注意一个地方,外码 只是 不是主码,不代表外 ...
友链位置
友链位置 友链界面
Butterfly设置自定义的ICP
Butterfly设置自定义的ICP
STL&string&模拟实现
STL简介STL(standard template library-标准模板库):是C++标准库的重要组成部分,不仅是一个可以复用的库,而且是一个包罗数据结构与算法的软件框架。 STL六大组件 string解析string严格来说不属于STL,它的创建时间比STL更早 头文件&命名空间头文件#include <string>但是有引入头文件<iostream>的时候,不引用头文件<string>也可以 命名空间std 构造函数string::string三种常用的构造函数 123string();//defaultstring(const string& str);//使用一个string拷贝构造,是深拷贝string(const char* s);//使用char数组拷贝构造,是深拷贝 123456char ch[] = "hello" string str1;//默认构造函数string str2("hello world");//使用string拷贝构造string str3(c ...
模版template
模板模板可用应用于函数,也可应用于类。应用于函数的为函数模板,应用于类的为类模板。 模板参数–很多地方和函数参数类似函数参数:传递的是对象值 模板参数:传递的是类型 函数模板的类型一般是编译器根据实参传递给形参的类型推演出来的,但是也有推演不出来的时候:例1: 1234567891011template < class T >T *func(int n){ return new T[n];}int main(){ int *p = func(10); return 0;} 推到不出来模板参数T的类型,因为模板参数应用在了返回值类型上没有办法通过传参判断出来模板参数的类型 此时应显式指定模板参数类型,“函数模板显式实例化”:12345678int main(){ int *p1 = func<int>(10); double *p2 = func<double>(10); return 0;}//类似于使用vector的时候,需要显式指定vector元 ...
命名空间&作用域限定符
namespace命名空间要定义在全局,不能定义在局部 同一个域里面的同名的命名空间的内容会被合并 命名空间可以嵌套 命名空间通常放在头文件 命名空间不影响生命周期 123456789101112131415161718192021222324namespace cyj{ int a = 10; struct test{ string name; }; class Test{ int age; };}namespace bit{ int a = 20; int add(int first, int second){ return first+second; }}using namespace bit;//1.使用命名空间内定义的变量时,可以提前将命名空间展开,然后直接使用int main(){ int c = add(cyj::a, a); // ::域作用限定符 //2.若 ...
迭代器iterator
迭代器iterator的使用迭代器iterator是一个额外的、独立数据结构,存在于STL库中。专门用于访问STL中各个数据结构中的元素。 (可以朴素地认为迭代器就是指针) 使用迭代器访问元素,和使用方括号[]加下标的效果一样,都是获取元素的引用,可读可写 但是方括号是对象本身的数据结构自带的(通过重构),而迭代器是不属于被访问的对象的,一个单独的数据结构 当一个对象为const时,为只可读的,此时还是可以通过方括号下标访问(因为通常会重构一个const类型的方括号),只要不对访问到的元素进行修改即可 但是已经不能使用普通迭代器访问了,因此使用迭代器访问元素,本质上是使用一个数据结构A(iterator)访问另一个数据结构B(被访问的对象)中的元素,而非数据结构B直接调用自己的成员函数访问自己 因此就算数据结构B设置为const,但是外部的迭代器仍有写的权限,这是不合理的。此处应使用const_iterator 迭代器的使用方法 使用迭代器的时候要指明被访问的数据结构类型 12//此处以string对象为例string::iterator ite; STL中的数据结构 ...
教师监考系统开发记录
[toc] 开发规划: 实现无界面的系统,编写可以独立完成所有功能的后端代码 提高代码的复用性,减少重复的字段,解耦合。将功能封装为函数,函数值完成执行,获取值,返回值,不进行打印等额外功能,将函数功能化。调用函数的代码负责对函数返回值进行处理。提高易用性。 抽象化,将同类功能函数抽象为同一类,并加入必要的成员变量,隐藏信息、保护数据、便于代码移植。 实现有界面的系统,采用B/S 浏览器/服务器 结构 前端通过浏览器展示,采用html展示页面结构,css进行html美化,js用于控制html上组件的行为,并内联ajax,将某些组件的响应作为请求,与参数一起打包发送,并等待后端响应,获取参数,然后执行相应的操作 后端,先移植后端代码与数据库到Linux云服务器。升级cmake和gcc。安装httplib c++库,用来监听指定端口下的网络请求,执行后端代码,将结果作为参数传回前端。 将移植后的后端代码进行更改,将接口的参数和返回值,进行更改,比如将变量进行JSON序列话和反序列化,用于网络通信时参数传递。 技术栈:后端:C/C++ C++11,STL,准标 ...
vscode主题推荐
vscode主题推荐(排名不分先后) Pro hacker theme Winter is coming (Dark Blue) Shades of Purple (super dark) Tomorrow Night Blue
Arch试玩
等待折腾and更新中—