数据库中的五大约束:
1.----主键约束(Primay Key Coustraint) 唯一性,非空性
2.----唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个
3.----检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)
4.----默认约束 (Default Counstraint) 该数据的默认值
5.----外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列
【主键】
1.主键的注意事项?
主键默认非空,默认唯一性约束,只有主键才能设置自动增长,自动增长一定是主键,主键不一定自动增长;
2.设置主键的方式?
在定义列时设置:ID INT PRIMARY KEY
在列定义完之后设置:primary KEY(id)
【外键】
1.设置外键的注意事项:
只有INNODB的数据库引擎支持外键,修改my.ini文件设置default-storage-engine=INNODB 外键必须与参照列的数据类型必须相同(数值型要求长度和无符号都相同,字符串要求类型相同,长度可以不同)。
2设置外键的语法:
CONSTRAINT 外键名 FOREIGN KEY (外键字段)REFERENCES 参照表 (参照字段) ON DELETE SET NULL ON UPDATE CASCADE 设置参照完整性
3.外键约束的参照操作?
参照表的完整性操作:当对参照表的参照字段进行删除或更新时,外键表中的外键如何应对;
参照操作可选值:
1.----添加主键约束(将stuNo作为主键)
/*修改表 stuInfo 添加主键约束 设置主键列为 stuNo */
alter table stuInfo add constraint PK_stuNo primary key (stuNo)
2.----添加唯一约束(身份证号唯一,因为每个人的都不一样)
/*修改表 stuInfo 添加唯一约束 指定是那个列要建立这个约束*/
alter table stuInfo add constraint UQ_stuID unique(stuID)
3.----添加默认约束(如果地址不填 默认为“地址不详”)
/*修改表 stuInfo 添加默认约束 把学生住址 默认为 ‘地址不详’*/
alter table stuInfo add constraint DF_stuAddress default ('地址不详') for stuAddress
4.----添加检查约束 (对年龄加以限定 15-40岁之间)
/*修改表 stuInfo 添加对年龄的检查约束*/
alter table stuInfo add constraint CK_stuAge check (stuAge between 15 and 40)
/*修改表 stuInfo 添加对性别的约束*/
alter table stuInfo add constraint CK_stuSex check (stuSex='男' or stuSex='女')
5.----添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)
/*修改表 stuInfo 添加外键约束 外键列涉及到 表stuInfo的列*/
alter table stuInfo add constraint FK_stuNo foreign key(stuNo)references s