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

     

  • 相关阅读:
    547. Friend Circles
    399. Evaluate Division
    684. Redundant Connection
    327. Count of Range Sum
    LeetCode 130 被围绕的区域
    LeetCode 696 计数二进制子串
    LeetCode 116 填充每个节点的下一个右侧节点
    LeetCode 101 对称二叉树
    LeetCode 111 二叉树最小深度
    LeetCode 59 螺旋矩阵II
  • 原文地址:https://www.cnblogs.com/kingsmart/p/13645174.html
Copyright © 2020-2023  润新知