约束总结
来源:互联网 发布:mmd舞蹈动作数据 编辑:程序博客网 时间:2024/04/30 10:56
数据库中的五大约束:
1.primary key 主键约束
保证实体唯一,主键不允许空,主键必须唯一
2.foregin key 外键约束
保证表与表之间的参照完整性,外键可以空,外键和主键的名称可以不一致,外键和主键的数据类型必须严格匹配
3.default 默认约束
当一个列值为常量值全同的时候,此时可以添加默认约束,注意:当字段数据类型为timestamp,具有identity属性不能添加默认约束
4.unique 唯一约束
如果主键以外的字段要保证取值不重复,则可以考虑添加唯一约束
5.check 检查约束
实现域值完整性,当一些字段取值范围有限制的时候,比如工资,年龄等字段取值范围有限制均可以考虑用check约束
/*-------------------------约束-------------------------*/--主键约束(primary key)--例 在sales数据库中创建一个新表department,其中包含两个字段:depart_id为char(10);depart_name为char(20)。在depart_id字段上设置主键约束。--场景一:创建表时定义主键约束create database salesgouse salesgocreate table department( depart_id char(10) constraint pk_depart_id primary key , depart_name char(20))--场景二:对已存在的表添加约束语法:alter table 表名add constraint 约束名primary key(字段名列表)use studentdbgo--将xscj表中的(学号,课程编号)设置为组合主键alter table xscjadd constraint pk_sno_cnoprimary key(学号,课程编号) --设置主键时学号,课程编号不能为空--外键约束(foreign key)--场景一:创建表时定义外键约束注意:外键引用的字段必须是具有主键约束--例 在sales数据库中创建一个新表employee_new,其中包含4个字段:emp_id为char(10),emp_name为char(10),emp_departid为char(10),emp_sex为char(2)。为该表创建一个外键约束,使emp_departid与表department中的depart_id关联。use salesgocreate table employee_new( emp_id char(10), emp_name char(10), emp_departid char(10) constraint fk_departid foreign key references department(depart_id) , emp_sex char(2))--场景二:对已存在的表添加外键约束语法:alter table 表名add constraint 约束名foreign key(外键列表) references 主表名(字段列表)--以xscj表为例,使xscj表中的学号引用xsqk表中的学号,xscj表中的课程编号引用xskc表中的课程编号alter table xscjadd constraint fk_snoforeign key(学号) references xsqk(学号)alter table xscjadd constraint fk_cnoforeign key(课程编号) references xskc(课程编号)--默认约束(default)--场景一:创建表时定义默认约束create table test(id int identity(1,1), --identity(seed,increasement) seed表示起始值,increasement表示增长值 sname varchar(10))drop table testcreate table test(id int , sname varchar(10), loc varchar(10) constraint df_loc default '上海')--场景二:对已存在的表添加默认约束语法:alter table 表名 add constraint 约束名 default 默认值 for 字段名 --为xscj表添加默认约束df_grade默认值为60alter table xscjadd constraint df_gradedefault 60 for 成绩--唯一约束(unique)--场景一:创建表时定义唯一约束create table teacher( tid int primary key, --主键自动创建聚集索引 tname varchar(20), telphone_number int constraint uq_tel unique )--场景二:对已存在的表添加唯一约束语法:alter table 表名add constraint 约束名unique(字段列表)--例 为goods_unit的code字段添加一个名为UK_code的唯一约束。 create table goods_unit( code int)alter table goods_unitadd constraint UK_codeunique(code)--检查约束(check)--场景一 :创建表时定义检查约束-- 例 在sales数据库中创建一个新表employee,其中包含3个字段:emp_id为char(10),emp_name为char(10),emp_gender为char(2)。在emp_gender上设置检查约束,限制只能接受“男”或“女”的数据,而不能接受其他数据,约束名为CHK_gender。create table employee( emp_id char(10), emp_name char(10), emp_gender char(2) constraint chk_gender check(emp_gender='男' or emp_gender='女'))--场景二 :对已存在的表定义检查约束定义检查约束语法:ALTER TABLE 表名 ADD Constraint 约束名 CHECK(约束条件表达式) --关系运算符,算术运算符,逻辑运算符--限制xscj表中的成绩字段取值范围在0-100之间,约束名为chk_gradeuse studentdbgoalter table xscjadd constraint chk_gradecheck(成绩>=0 and 成绩<=100)
0 0
- 约束总结
- sql2000添加约束总结
- 约束问题总结
- oracle约束总结
- 差分约束 总结
- mysql约束总结
- 总结之约束
- oracle 约束总结
- Oracle之约束总结
- ORACLE约束总结
- Oracle约束总结
- ORACLE约束总结
- 查分约束的总结
- 差分约束系统总结
- 约束总结及创建用户
- Oracle知识点总结—约束
- 差分约束系统总结
- 差分约束小小总结
- C++灵魂所在之---多态的前世与今生
- mac go sublime 3
- 图片宽度为控件宽度,高度按比例缩放
- 生成螺旋线形状的随机点
- C# 使用Parallel并行开发Parallel.For、Parallel.Foreach实例
- 约束总结
- C++之虚函数
- 【Get深一度】高斯白噪声之——散粒噪声(shot noise )
- gulp教程之gulp中文API
- 第十六周阅读程序-7
- SAP中采购订单状态与MRP的关系
- PRO-2 Day1
- 政治哲学与幸福根基 (David Miller )
- PCI 总线及地址空间