SqlServer学习(1)--约束
1.主键 (PRIMARY KEY)
语法:
ALTER TABLE dbo.Employees
ADD CONSTRAINT PK_Employee
PRIMARY KEY(employid)
注意事项:
1.每个表只能定义一个主键
2.主键不能为null
3.主键值是唯一的,不能有重复.创建主键时,SqlServer会在幕后创建一个唯一索引(unique index).唯一索引是Sql Server为了实施唯一约束而采用的一种物理机制.也可以用索引(不一定是唯一索引)来加速查询的处理,避免对整个表进行不必要的扫描(类似于图书的索引).
2.外键(FOREIGN KEY)
语法:
ALTER TABLE dbo.Orders
ADD CONSTRAINT FR_Orders_Employee
FOREIGN KEY(employid)
REFERENCES dbo.Employees(employeeid)
注意事项:
1.外键的目的是为了将外键的值域限定为被引用列中的现有值.
2.引用表中的关联列必须为主键或者唯一约束的列,就是列必须唯一.
3.当试图删除被引用表的的行,或更新被引用的候选键时,如果引用表中存在相关的行,则禁止操作.
3.唯一约束(UNIQUE CONTRAINT)
语法:
ALTER TABLE dbo.Employees
ADD CONSTRAINT UNQ_Employee
UNIQUE(ssn)
注意事项:
1.一列(或一组列)数据唯一.
2.与主键不同,可以为多个列设置唯一约束,且列没要求为not null.
4.检查约束(Check)
语法:
ALTER TABLE dbo.Employees ADD CONSTRAINT Check_Employee_Salary check(salary > 5000)
注意事项:
1.目的是为了向表中插入一条数据或者修改数据之前,必须满足一定的谓词条件.
5.DEFAULT约束
语法:
ALTER TABLE dbo.Employees
ADD CONSTRAINT DEF_Employee_CREATETIME
DEFAULT(CURRENT_TIMESTAMP) FOR CTEATETIME
--CURRENT_TIMESTAMP就是获取当前的时间
注意事项:
1.当插入一条数据时,没有属性的话,设置为默认值