SQL Server 的常见约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 的常见约束相关的知识,希望对你有一定的参考价值。

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

  •  限制:不能为空,数据唯一,一个表中只有一个 
  •    方法:
    • 建表时直接在列类型后面添加   如: 
      1 CREATE TABLE stuDB
      2 (
      3 SID CHAR(12) PRIMARY KEY
      4 ) 
      5

       

    • 建表后通过添加语句添加
      添加语句为:
          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(StuNO)       

     

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), 
        

     

     

 

以上是关于SQL Server 的常见约束的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 的常见约束

Microsoft SQL Server 代码片段收集

缺少 SQL SERVER 2014 代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

SQL Server 全文索引的管理

Sql Server——运用代码创建数据库及约束