T-SQL 学习之路之数据库完整性之实体完整性

         实体完整性通过 PRIMARY KEY约束、 UNIQUE约束等实现。
         通 PRIMARY KEY约束定义主键,一个表只能有一个 PRIMARY KEY约束,且 PRIMARY KEY约束不能取空值。

         通过UNIQUE约束定义唯一性约束,为了保证一个表非主键列不输入重复值,应在该列定义UNIQUE约束。

         1. 使用T-SQL语句在创建表时创建PRIMARY KEY约束、UNIQUE约束

语法格式:

CREATE TABLE table_name          		   /*指定表名*/
 (   column_name  datatype            		    /*定义字段*/
   [ CONSTRAINT constraint_name ]      	    /*约束名*/
   { PRIMARY KEY | UNIQUE }         	    /*定义约束类型*/
    [ CLUSTERED | NONCLUSTERED ]     	    /*定义约束的索引类型*/
    [,…n]
 )
       说明:
       PRIMARY KEY | UNIQUE:定义约束的关键字,PRIMARY  KEY为主键,UNIQUE为唯一键。
       CLUSTERED | NONCLUSTERED:定义约束的索引类型,CLUSTERED表示聚集索引,NONCLUSTERED表示非聚集索引,与CREATE INDEX语句中的选项相同。

       例如:对stsc数据库中goods2表的商品号列创建PRIMARY KEY约束,对商品名称列创建UNIQUE约束 

USE stsc
CREATE TABLE goods2 
(
    gid int NOT NULL CONSTRAINT PK_gid PRIMARY KEY,
 gname varchar(100) NOT NULL CONSTRAINT UK_gname UNIQUE,
 gprice float NOT NULL CHECK(gprice<=500),
 gclass varchar(60) DEFAULT 'articles of everyday use',
    gamount int NOT NULL,
 gdate date NULL, 
 trade_price float NOT NULL
)

     2,使用T-SQL语句在修改表时创建PRIMARY KEY约束或UNIQUE约束

     修改表时创建PRIMARY KEY约束或UNIQUE约束的语法格式如下: 

ALTER TABLE table_name     
     ADD[ CONSTRAINT constraint_name ]{ PRIMARY KEY | UNIQUE }
             [ CLUSTERED | NONCLUSTERED]
             ( column [ ,...n ] ) 
     例如:在stsc数据库中创建goods3表后,通过修改表,对商品号列创建PRIMARY KEY约束,对商品名称列创建UNIQUE约束。

USE stsc
ALTER TABLE goods3 
ADD
   CONSTRAINT PK_gdid PRIMARY KEY (gid),
   CONSTRAINT UK_gdname UNIQUE (gname)
     

          3. 使用T-SQL语句删除PRIMARY KEY约束、UNIQUE约束

ALTER TABLE table_name     
     DROP CONSTRAINT constraint_name [,…n]
     例如:删除上例创建的PRIMARY KEY约束、UNIQUE约束

USE stsc
ALTER TABLE goods3 
  DROP CONSTRAINT PK_gdid, UK_gdname

你可能感兴趣的:(sql,t-sql,数据库实体完整性)