网站大量收购独家精品文档,联系QQ:2885784924

在SQLServer中常用的约束有.PPTVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在SQLServer中常用的约束有

任务4 设置列的属性和约束 4.1 场 景 引 入 问题:创建如图4.1所示的Products表,将公司中所有产品的信息存储于该表中。要求保证实体完整性,所谓实体完整性就是将行定义为特定的唯一实体,也就是每一行表示一个特定的产品,ProductID的值不允许有重复值。如果输入了ProductID 值为 1 的产品,则数据库不允许其他产品拥有同值的 ID。同时还要求域完整性,所谓域完整性是指特定列的项的有效性。要求UnitPrice 列的值大于或等于0,数据库不接受此范围以外的值。ProductName列必须输入值,不允许有空值。如果向Products表中添加一行数据,但没有给该行的UnitPrice列指定值,则数据库引擎自动将0插入到没有指定值的UnitPrice列中。 任务4 中要完成的主要任务是创建DEFAULT 定义,创建标识符列,创建UNIQUE 约束、 PRIMARY KEY 约束和CHECK 约束。 4.2 设置列的属性 列除了前面已讨论的属性(如名称、数据类型、为空性和数据长度)之外,还具有默认值、精度、小数位数、描述等属性。 4.2.1 设置默认值 1. 在创建表时为列定义默认值 任务4.1 在创建表时为列定义默认值 2. 在现有表中添加新的列并为其定义默认值 任务4.2 添加新的列并为其定义默认值 3. 为已有的列定义默认值 任务4.3 为已有的列定义默认值 4. 删除默认值 任务4.4 删除默认值 5. 修改列的默认值 任务4.5 修改列的默认值 4.2.2 设置精度和小数位数 数值列的精度是指选定数据类型最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。非数值列的精度是指最大列宽或定义的列宽。除 decimal 和 numeric 外,其他数值数据类型的精度自动定义。如果要重新定义数值列的最大位数,可以更改 decimal 和 numeric 数据类型的精度。不允许更改不是这两种指定数值数据类型的列的精度。 numeric 或 decimal 列的小数位数是指该列值小数点右边能出现的最大位数。在选定数值数据类型时,列的小数位数默认设置为 0。对于包含近似浮点数的列,由于小数点右边的位数不固定,故其小数位数并未定义。如果要重新定义小数点右边的位数,可以更改 numeric 或 decimal 列的小数位数。 4.2.2 设置精度和小数位数 1. 在创建表时设置列精度和小数位数 任务4.6 设置列精度和小数位数 问题描述 创建雇员工资表Emp_pay,将commission(销售额)列精度设置为8,将小数位数设置为2。 问题分析 由问题描述可知,要为commission(销售额)列自定义列的精度和小数位数,因此,commission列的数据类型只能选择decimal 和 numeric之一。 4.2.2 设置精度和小数位数 2. 在现有表中设置列的精度和小数位数 任务4.7 修改列的精度和小数位数 问题描述 修改Emp_pay表的commission列,将精度设置为10,小数位数设置为3。 问题分析 由问题描述可知,必须使用修改表的命令修改Emp_pay表的commission列,更改其精度和小数位数。 解决方案 USE NewDataBase; GO ALTER TABLE Emp_pay ALTER COLUMN Commission decimal (10,3) NOT NULL GO 4.2.3 创建标识符列 1.创建自动编号标识符列 1) 在创建表时创建标识符列 2) 在现有表中创建新的标识符列 3) 删除标识符列 2.创建全局唯一标识符列 1) 在创建表时创建全局唯一标识符列 2) 使用ROWGUIDCOL 属性 3) 在现有表中创建新的全局唯一标识符列 4) 删除全局唯一标识符列 4.2.4 使用空值 空值(NULL)通常表示未知、不可用或将在以后添加的数据。空值或 NULL 并不等于零 (0)、空白或零长度的字符串(如),NULL 意味着没有输入。NULL 的存在通常表明值未知或未定义。例如,pubs 数据库的 titles 表中 price 列的空值并不表示该书没有价格,而是指其价格未知或尚未设定。 没有两个相等的空值。 如果插入某行但没有为允许空值的列提供值,则 SQL Server 为该列提供 NULL 值(除非存在 DEFAULT 定义)。用关键字 NULL 定义的列也接受用户的 NULL 显式输入,不论它是何种数据类型或是否有默认值与之关联。NULL 值不应放在引号内,否则会被解释为字符串NULL而不是空值。 指定一列不允许空值而确保行中一列永远包含数据可以保持数据的完整性。因为如果不允许空值,则用户在向表中写数据时必须在列中输入一个

您可能关注的文档

文档评论(0)

zhuwo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档