约束与数据库对象规则、默认值的探究

发表于:2012-8-09 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:zhang_xinxiu    来源:51Testing软件测试网采编

  3、默认值,用法同规则,它的作用类似于Default约束,是说在表中插入数据时,如果没有指定值,默认值自动指定数据值。

  接下来我们在语法上分析三者,看图:

  1、约束,创建方法大致有三种:

  ——方法一:在创建表时用字句的方式创建约束

 CREATE TABLE 表名(

            列名数据类型,

            ……

           <SPAN style="COLOR: #009900"> CONSTRAINT 约束名 PRIMARY KEY (列名),                       ——主键约束

            CONSTRAINT 约束名 UNIQUE (列名),                            ——唯一约束

            CONSTRAINT 约束名 FOREIGN KEY (列名) REFERENCES 表名 (列名),  ——外键约束

            CONSTRAINT 约束名 CHECK (检查条件)                           ——Check约束

</SPAN> );

        ——方法二:在创建表时直接定义约束

 CREATE TABLE 表名(

 <SPAN style="COLOR: #009900">           列名数据类型 NOT NULL,                                        ——非空约束

            列名数据类型 NOT NULL PRIMARY KEY,                            ——主键约束

            列名数据类型 NOT NULL UNIQUE,                                 ——唯一约束

            列名数据类型 [NOT NULL] REFERENCES 表名(列名),                ——外键约束

            列名数据类型 [NOT NULL] CHECK (检查条件)                         ——Check约束</SPAN>

 )

       ——方法三:在创建表后,通过更改表来定义

<SPAN style="COLOR: #009900"> ALTER TABLE 表名 ALTER COLUMN 列名 SET NOT NULL;

 ALTER TABLE 表名 ADD PRIMARY KEY (列名1,列名2…);

 ALTER TABLE 表名 ADD UNIQUE (列名1,列名2,……);

 ALTER TABLE 表名 ADD FOREIGN KEY(列名) REFERENCES 表名2 (列名2);

 ALTER TABLE 表名 ADD CHECK (检查条件);
</SPAN>

  删除约束的语法为:ALTER TABLE 表名 DROP CONSTRAINT 约束名

  2、规则。规则的应用操作,首先要创建但只创建是不能应用的要用sp_bindrule将规则绑定到字段或自定义的数据类型上才能起作用。

   ——创建

 <SPAN style="COLOR: #009900">   Create rule 规则名 as 条件表达式
</SPAN>
    ——绑定

   <SPAN style="COLOR: #009900"> Exec sp_bindrule ‘规则名’  , ‘表名.字段名’ | ‘数据类型’

</SPAN>    ——解除绑定

  <SPAN style="COLOR: #009900">  sp_unbindrule  ‘表名.字段名’ | ‘数据类型’
</SPAN>
    ——删除规则

    <SPAN style="COLOR: #009900">DROP RULE {rule_name} [,...n]
</SPAN>

  3、默认值的语法和规则是类似的,只需将规则中的rule改成关键字default即可。

  三者间的关系很清楚了吧。

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号