T-SQL 学习之路之数据库完整性之域完整性(一)

       域完整性是通过CHECK约束,DEFAULT约束,NOT NULL约束,数据类型和规则等实现,包括CREATE TABLE 中所有的列级约束,存储过程以及触发器。

       这里不介绍图形操作。

------------------------CHECK约束 

       -------------------创建

       CHECK约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。

       语法格式:

CREATE TABLE table_name      		 /*指定表名*/
(column_name  datatype
     {
        NOT NULL | NULL 			 /*指定为空性*/
        | [ DEFAULT co nstraint_expression ]        /*指定默认值
        | [ CONSTRAINT constraint_name ] CHECK ( logical_expression )]	
  				               /*CHECK约束表达式*/
       }[,…n]
       [ CONSTRAINT constraint_name ] CHECK ( logical_expression )][,	
) 
      关键字 CHECK表示 CHECK约束, logical_expressionCHECK约束表达式。
    例如,在 stsc数据库中创建表goods,包含有的域完整性定义:

USE stsc
CREATE TABLE goods 
(
     gid int NOT NULL,                                                               /*商品号*/
     gname varchar(100) NOT NULL,                                         /*商品名*/
  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                                                /*批发价格*/  
) <span style="font-family:Microsoft YaHei;font-size:12px;">
</span>

       -------------------修改

        使用ALTER TABLEADD子句在修改表时创建CHECK约束的语法格式如下:

ALTER TABLE table_name     
  ADD [<column_definition>]
    [CONSTRAINT constraint_name] CHECK (logical_expression)
     例如,修改表goods,增加批发价格列的CHECK约束:

USE stsc
ALTER TABLE goods 
ADD CONSTRAINT CK_trade_price CHECK(trade_price<=500)<span style="font-family:Microsoft YaHei;font-size:12px;color:#3333ff;"><strong>
</strong></span>

       -------------------删除

       使用ALTER TABLE语句的DROP子句删除CHECK约束的语法格式如下:  

ALTER TABLE table_name     
    DROP CONSTRAINT check_name  
     例如,删除对goods表中的批发价格列的约束:

USE stsc
ALTER TABLE goods  
DROP CONSTRAINT CK_trade_price
      更多信息,请参考sql server 的联机丛书。

你可能感兴趣的:(sql,数据库,域完整性)