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

来源:互联网 发布:java scanner用法 编辑:程序博客网 时间:2024/06/04 18:24

       域完整性是通过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 stscCREATE 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 stscALTER 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 stscALTER TABLE goods  DROP CONSTRAINT CK_trade_price
      更多信息,请参考sql server 的联机丛书。

1 0
原创粉丝点击