1. 程式人生 > >SQL Server 的常見約束

SQL Server 的常見約束

style lin num create 表名 key arc 空值 alt

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 的常見約束