ms sql入门基础-创建和使用约束--

ms sql入门基础-创建和使用约束--

ID:9508391

大小:66.50 KB

页数:8页

时间:2018-05-01

ms sql入门基础-创建和使用约束--_第1页
ms sql入门基础-创建和使用约束--_第2页
ms sql入门基础-创建和使用约束--_第3页
ms sql入门基础-创建和使用约束--_第4页
ms sql入门基础-创建和使用约束--_第5页
资源描述:

《ms sql入门基础-创建和使用约束--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、MSSQL入门基础:创建和使用约束>>  约束(Constraint)是MicrosoftSQLServer提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9章)。在SQLServer中有5种约束:主关键字约束(PrimaryKeyConstraint)、外关键字约束(ForeignKeyConstraint)、惟一性约束(UniqueConstraint)、检查约束(CheckConstraint)和缺省约束(DefaultConstraint)。  7.2.1主关键字约束  主关键字约束指定表的一列或几列的组合的值在表中具有

2、惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主关键字,且IMAGE和TEXT类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL属性。  定义主关键字约束的语法如下:  CONSTRAINTconstraint_name  PRIMARYKEY[CLUSTERED

3、NONCLUSTERED]  (column_name1[,column_name2,,column_name16])  各参数说明如下:constraint_name  指定约束的名称约束的名称。在数据库中应是惟一的。如果不指定,则系统会自动生成一个约束名。CLUSTERED

4、NONCLUSTERED  

5、指定索引类别,CLUSTERED为缺省值。其具体信息请参见下一章。column_name  指定组成主关键字的列名。主关键字最多由16个列组成。例7-3:创建一个产品信息表,以产品编号和名称为主关键字  createtableproducts(  p_idchar(8)notnull,  p_namechar(10)notnull,  pricemoneydefault0.01,  quantitysmallintnull,  constraintpk_p_idprimarykey(p_id,p_name)  )on[primary]  7.2.2外关键字约束  外关键字约束定义了表之间的关

6、系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。这样,当在定义主关键字约束的表中更新列值,时其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时,系统会拒绝插入数据。与主关键字相同,不能使用一个定义为TEXT或IMAGE数据类型的列创建外关键字。外关键字最多由16个列组成。  定义外关键字约束的语法如下:  CONSTRAINTconstraint_name 

7、 FOREIGNKEY(column_name1[,column_name2,,column_name16])  REFERENCESref_table[(ref_column1[,ref_column2,,ref_column16])]  [ONDELETE{CASCADE

8、NOACTION}]  [ONUPDATE{CASCADE

9、NOACTION}]]  [NOTFORREPLICATION]  各参数说明如下:REFERENCES  指定要建立关联的表的信息。ref_table  指定要建立关联的表的名称。ref_column  指定要建立关联的表中的相关列的名称。ONDELETE{

10、CASCADE

11、NOACTION}  指定在删除表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在删除父表数据行时会将子表中对应的数据行删除;如果指定的是NOACTION,则SQLServer会产生一个错误,并将父表中的删除操作回滚。NOACTION是缺省值。ONUPDATE{CASCADE

12、NOACTION}  指定在更新表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在更新父表数据行时会将子表中对应的数据行更新;如果指定的是NOACTION,则SQL

13、Server会产生一个错误,并将父表中的更新操作回滚。NOACTION是缺省值。NOTFORREPLICATION  指定列的外关键字约束在把从其它表中复制的数据插入到表中时不发生作用。  例7-4:创建一个订货表,与前面创建的产品表相关联  createtableorders(  order_idchar(8),  p_idchar(8),  p_namechar(10),  constraintpk_or

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。