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.当插入一条数据时,没有属性的话,设置为默认值

 

posted @ 2020-09-10 13:37  留下成长的足迹  阅读(148)  评论(0编辑  收藏  举报