SQL Server 的常见约束

时间:2021-12-17 01:57:50

1.主键约束------我是最常见的哦(PRIMARY KEY)

  •  限制:不能为空,数据唯一,一个表中只有一个 
  • 方法:
    • 建表时直接在列类型后面添加   如:
       CREATE TABLE stuDB
      (
      SID CHAR(12) PRIMARY KEY
      )
    • 建表后通过添加语句添加
      添加语句为:
      ALTER TABLE <表名>
      ADD CONSTRAINT 自定义的约束名 约束类型 具体的约束说明 例:
      ALTER TABLE stuDB
      ADD CONSTRAINT PK_SID PRIMARY KEY

2.外键约束------表与表之间的根深蒂固的链接者(FOREIGN KEY)

  • 效果:用于两表间建立关系,需要指定引用主表的那列
  • 方法:

    1.建表时直接加在类型后面
    
        CREATE TABLE stuDB
    (
    SID CHAR(12) ,
    Sname VARCHAR(12) FOREIGN KEY REFERENCES 从表名(列名)
    ) 2.建表后在后面添加 添加语句为:
    ALTER TABLE 主表名
    ADD CONSTRAINT 自定义约束名 FOREIGN KEY(列名)REFERENCES 从表名(列名) 例:
    ALTER TABLE stuDB
    ADD CONSTRAINT DF_Sname FOREIGN KEY(Sname) REFERENCES sCore(Sname)

3.唯一约束-----这列中只有一个本宝宝(Unique Key)

  •   效果:列值唯一,就算为空值,也要任性的唯一
  • 方法:
    1.建表时直接加在类型后面
    
        CREATE TABLE stuDB
    (
    SID CHAR(12) ,
    Sname VARCHAR(12) ,
    StuNO VARCHAR(12) UNIQUE
    ) 2.建表后在后面添加 添加语句为:
    ALTER TABLE 主表名
    ADD CONSTRAINT 自定义约束名 UNIQUE(列名) 例:
    ALTER TABLE stuDB
    ADD CONSTRAINT DF_StuNO UNIQUE(Stu'NO)

4.默认约束------我就默默的帮你选了哦( DEFAULT)

  • 效果:只是嘿嘿的帮你选了
  • 用法:
    1.建表时直接加在类型后面
    
        CREATE TABLE stuDB
    (
    SID CHAR(12) ,
    Sname VARCHAR(12) ,
    StuNO VARCHAR(12),
    Ssex CHAR(2) DEFAULT '男'
    ) 2.建表后在后面添加 添加语句为:
    ALTER TABLE 主表名
    ADD CONSTRAINT 自定义约束名 DEFAULT (默认的东东) FOR 列名 例:
    ALTER TABLE stuDB
    ADD CONSTRAINT DF_Ssex DEFAULT ('男') FOR Ssex

5.检查约束------你   你  就是你  站住 让我检查通过再走(CHECK)

  • 效果: 站住检查,通过后才可录入表中
  • 用法:
    1.建表时直接加在类型后面
    
        CREATE TABLE stuDB
    (
    SID CHAR(12) ,
    Sname VARCHAR(12) ,
    StuNO VARCHAR(12),
    Ssex CHAR(2) ,
    Sage INT CHECK (Age >= 18 AND Age<=55)
    ) 2.建表后在后面添加 添加语句为:
    ALTER TABLE 主表名
    ADD CONSTRAINT 自定义约束名 CHECK(条件) 例:
    ALTER TABLE stuDB
    ADD CONSTRAINT DF_ Sage CHECK (Age >= 18 AND Age<=55)

6.其他约束

  • 自动增长的约束  
    •   限制:必须在类型是 INT,SMALLINTt等时才可使用
      语法:
      列名 类型 IDENTITY(开始数字,每次加上的数字) 例如:
      stuSeat SMALLINT IDENTITY (1,1)
  •  限制位数
    语法:
    
      列名 NUMERIC(数字位数,小数点位数)
    
    例如:
    
        stuID  NUMERIC(18,0),