1.主键
主键默认非空,默认唯一性约束,只有主键才能设置自动增长,自动增长一定是主键,主键不一定自动增长。
如何设置主键?
在定义列时设置:ID INT PRIMARY KEY
在列定义完之后设置:primary KEY(id)
2.外键
2.1设置外键时的注意事项:
只有INNODB的数据库支持外键,修改my.ini文件设置default-storage-engine=INNODB 外键必须与参照列的数据类型必须相同(数值型要求长度和符号都相同,字符串要求类型相同,长度可以不同)。
2.2设置外键的语法
alter table 表名 add constraint 自定义外键名
foreign key(外键字段)
references 关联表名(关联字段);
举例:
在创建完表之后添加添加外键:
语法:
alter table 表名
add constraint 自定义外键名
foreign key (外键字段)
references 关联表名
(关联字段
);
示例:
添加外键: Score
表中的 SubjectId
字段 关联 Subject
表的 SubjectId
字段
alter table Score
add constraint score_subject
foreign key(SubjectId
)
references Subject
(SubjectId
);
创建表时添加外键:
– 父表
create table if not exists father_table
(
test_field1
int(4) primary key
)charset=‘utf8mb4’;
– 子表
create table if not exists child_table
(
test_field1
int(4),
foreign key(test_field1
) references father_table
(test_field1
)
)charset=‘utf8mb4’;
注意:
1.外键值可以为null
2.外键字段在引用一张表的某个字段的时候,被引用的字段必须具有unique(唯一性)约束。
3.有了外键引用后,表分为父表和子表,引用的表为父表,被引用的表为子表
创建时先创建父表
删除时先创建子表
插入时先插入父表数据
3.五大约束
1.primary KEY:设置主键约束;
2.UNIQUE:设置唯一性约束,不能有重复值;
3.DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2
height不输入是默认为1,2
4.NOT NULL:设置非空约束,该字段不能为空;
5.FOREIGN key :设置外键约束。