模块四表中约束的创建和管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精选课件
Fra Baidu bibliotek
若当前数据库中已经存在表stuInfo,再执行建表命令 会出现什么情况呢?如何解决? Sysobjects表 USE stuDB --将当前数据库设置为stuDB ,以便在
stuDB数据库中建表 GO
IF EXISTS(SELECT * FROM sysobjects WHERE name=’stuInfo’ ) DROP TABLE stuInfo
学号 0010012 0010013 0010014 0010015 0010016
×
0010014
实体完整性
姓名 李山 吴兰 雷铜 张丽鹃 赵可以
地址
….
山东定陶
湖南新田
江西南昌
河南新乡
河南新乡
雷铜
江西南昌
约束方法:唯一约束、主键约束、标识列、唯一索引
精选课件
学号 0010012 0010013 0010014 0010015 0010016
r
专业代码 char 4
否
系部代码 char 2
否
精备选课注件
varcha 50 是
r
一、使用图形界面
二、使用T-SQL语言创建 CREATE TABLE <表名>( <列名> <数据类型> [<列级完整性约束>], <列名> <数据类型> [<列级完整性约束>], ……, [<表级完整性约束>] ) [<其它参数>]
课程号 char 4 否 主键
课程名 char 20 是
备注 varcha 50 是
r
系部表
字段 名称
数据 类型
字段 长度
是否 为空
系部代 char 2
否
码
系部名 varchar 30
否
称
系主任 char 8
是
班级表
字段 名称
数据 字段 是否 约束 类型 长度 为空
班级代码 char 9
否
主键
班级名称 varcha 20 是
模块四 数据的完整性操作
表中约束的创建和使用 表中规则的使用 表中默认的创建和使用 IDENTITY列的应用
精选课件
4. 1 表的创建(复习)
创建表的实质就是定义表结构及约束等属性,完成数据完 整性。
表的列名在同一个表中具有唯一性,同一列的数据属于同 一种数据类型。除了用列名和数据类型来指定列的属性外,还 可以定义其它属性:是否为空、默认值、标识符列、全局唯一 标识符列等。
约束方法:规则、存储过程、触发器
精选课件
4.2.1 使用约束
约束是 SQL Server 提供的自动强制数据完整性的一种方法。 在SQL Server 2008中有6种约束:
CREATE TABLE stuInfo /*-创建学员信息表-*/ ( ….. )
精选课件
4.2 数据完整性
建表以后会对表进行增加、修改等等操作。可能造成数据的破坏或不一致 的现象。为了保证数据的一致性,除了小心操作数据以外,sql server本身也提 供了一些机制来保证数据的完整性(约束、默认值、规则、触发器、存储过程 等)。
….
AV0012
孙悟空
AV378289
AV0013
猪悟能
AV378290
AV0014
沙悟净
AV378291
CV0015
玄痛
AV372133
CV0016
乔峰
AV121322
×
帐号 姓名 信用 ….
00192 孙悟空 7
触发器:检查信用值
00288 猪悟能 6
12333 段誉 8 90111 虚竹 40 93000 岳不群 -10
×
域完整性
姓名 李山 吴兰 雷铜 张丽鹃 赵可以
地址
….
山东定陶
湖南新田
江西南昌
河南新乡
河南新乡
8700000000 李亮
湖北江门
约束方法:限制数据类型、检查约束、外键约束、 默认约束、非空约束等
精选课件
引用完整性
学号
姓名
地址
…
0010012 李山
山东定陶
0010013 吴兰
湖南新田
0010014 雷铜
建表的基本步骤:
确定表中有哪些列
确定每列的数据类型
给表添加各种约束
创建各表之间的关系
精选课件
示例:为选课系统创建表
专业表
字段名称 数据 类型
字段 是否 长度 为空
专业代码 char 4
否
专业名称 varcha 20 否 r
系部代码 char 2
否
课程表
字段名 数据 字段 是否 约束
称
类型 长度 为空
<表名>给出要创建的基本表的名称; <列名>给出列名或字段名; <数据类型> <列级完整性约束> <表级完整性约束> <其它参数>
精选课件
输入的类型是否正确? ——年龄必须是数字
输入的格式是否正确? ——身份证号码必须是18位
是否在允许的范围内? ——性别只能是”男”或者”女”
是否存在重复输入? ——学生信息输入了两次
一 、 完整性的概念:数据完整性就是指存储在数据库中的数据正确无误并且 相关数据具有一致性 。
二 、完整性的分类:
• 实体完整性(行的完整性):要求表中不能存在完全相同的纪录,而且每条纪录都 要具有一个非空且不重复的主键值。
• 域完整性(列的完整性):要求向表中指定列输入的数据必须具有正确的数据类型、 格式以及有效的数据范围。
是否符合其他特定要求? ——信誉值大于5的用户才能够加入 会员列表
……
精选课件
列值要求(约束)
整行要求(约束)
列级完整性约束 用于定义列或字段一级的完整性约束,一般包括:
NOT NULL和NULL约束 PRIMARY KEY约束 UNIQUE约束 FOREIGN KEY约束 DEFAULT定义 CHECK约束 表级完整性约束 用于定义表一级的完整性约束,一般包括: PRIMARY KEY约束(复合属性构成的主关键字说明) FOREIGN KEY约束(外部关键字及参照关系说明) CHECK约束(同时涉及到多个属性的域完整性约束)
江西南昌
0010015 张丽鹃
河南新乡 科目
学号
分数
…
0010016 赵可以
河南新乡 数学
0010012 88
数学 0010013 74
语文 0010012 67
语文 0010013 81
约束方法:外键约束
数学 0010016 98
×
数学
0010021 98
精选课件
自定义完整性
用户编号 用户姓名 会员证
• 参照完整性(引用完整性):指作用于有关联的两个或两个以上的表,通过使用主 键和外键或唯一键和外键之间的关系,使表中的键值在相关表中保持一致。
• 用户定义的完整性:是应用领域需要遵守的约束条件,允许用户定义特定的业务规 则。
精选课件
完整性包括…
域完整性 实体完整性 自定义完整性
引用完整性
精选课件
Fra Baidu bibliotek
若当前数据库中已经存在表stuInfo,再执行建表命令 会出现什么情况呢?如何解决? Sysobjects表 USE stuDB --将当前数据库设置为stuDB ,以便在
stuDB数据库中建表 GO
IF EXISTS(SELECT * FROM sysobjects WHERE name=’stuInfo’ ) DROP TABLE stuInfo
学号 0010012 0010013 0010014 0010015 0010016
×
0010014
实体完整性
姓名 李山 吴兰 雷铜 张丽鹃 赵可以
地址
….
山东定陶
湖南新田
江西南昌
河南新乡
河南新乡
雷铜
江西南昌
约束方法:唯一约束、主键约束、标识列、唯一索引
精选课件
学号 0010012 0010013 0010014 0010015 0010016
r
专业代码 char 4
否
系部代码 char 2
否
精备选课注件
varcha 50 是
r
一、使用图形界面
二、使用T-SQL语言创建 CREATE TABLE <表名>( <列名> <数据类型> [<列级完整性约束>], <列名> <数据类型> [<列级完整性约束>], ……, [<表级完整性约束>] ) [<其它参数>]
课程号 char 4 否 主键
课程名 char 20 是
备注 varcha 50 是
r
系部表
字段 名称
数据 类型
字段 长度
是否 为空
系部代 char 2
否
码
系部名 varchar 30
否
称
系主任 char 8
是
班级表
字段 名称
数据 字段 是否 约束 类型 长度 为空
班级代码 char 9
否
主键
班级名称 varcha 20 是
模块四 数据的完整性操作
表中约束的创建和使用 表中规则的使用 表中默认的创建和使用 IDENTITY列的应用
精选课件
4. 1 表的创建(复习)
创建表的实质就是定义表结构及约束等属性,完成数据完 整性。
表的列名在同一个表中具有唯一性,同一列的数据属于同 一种数据类型。除了用列名和数据类型来指定列的属性外,还 可以定义其它属性:是否为空、默认值、标识符列、全局唯一 标识符列等。
约束方法:规则、存储过程、触发器
精选课件
4.2.1 使用约束
约束是 SQL Server 提供的自动强制数据完整性的一种方法。 在SQL Server 2008中有6种约束:
CREATE TABLE stuInfo /*-创建学员信息表-*/ ( ….. )
精选课件
4.2 数据完整性
建表以后会对表进行增加、修改等等操作。可能造成数据的破坏或不一致 的现象。为了保证数据的一致性,除了小心操作数据以外,sql server本身也提 供了一些机制来保证数据的完整性(约束、默认值、规则、触发器、存储过程 等)。
….
AV0012
孙悟空
AV378289
AV0013
猪悟能
AV378290
AV0014
沙悟净
AV378291
CV0015
玄痛
AV372133
CV0016
乔峰
AV121322
×
帐号 姓名 信用 ….
00192 孙悟空 7
触发器:检查信用值
00288 猪悟能 6
12333 段誉 8 90111 虚竹 40 93000 岳不群 -10
×
域完整性
姓名 李山 吴兰 雷铜 张丽鹃 赵可以
地址
….
山东定陶
湖南新田
江西南昌
河南新乡
河南新乡
8700000000 李亮
湖北江门
约束方法:限制数据类型、检查约束、外键约束、 默认约束、非空约束等
精选课件
引用完整性
学号
姓名
地址
…
0010012 李山
山东定陶
0010013 吴兰
湖南新田
0010014 雷铜
建表的基本步骤:
确定表中有哪些列
确定每列的数据类型
给表添加各种约束
创建各表之间的关系
精选课件
示例:为选课系统创建表
专业表
字段名称 数据 类型
字段 是否 长度 为空
专业代码 char 4
否
专业名称 varcha 20 否 r
系部代码 char 2
否
课程表
字段名 数据 字段 是否 约束
称
类型 长度 为空
<表名>给出要创建的基本表的名称; <列名>给出列名或字段名; <数据类型> <列级完整性约束> <表级完整性约束> <其它参数>
精选课件
输入的类型是否正确? ——年龄必须是数字
输入的格式是否正确? ——身份证号码必须是18位
是否在允许的范围内? ——性别只能是”男”或者”女”
是否存在重复输入? ——学生信息输入了两次
一 、 完整性的概念:数据完整性就是指存储在数据库中的数据正确无误并且 相关数据具有一致性 。
二 、完整性的分类:
• 实体完整性(行的完整性):要求表中不能存在完全相同的纪录,而且每条纪录都 要具有一个非空且不重复的主键值。
• 域完整性(列的完整性):要求向表中指定列输入的数据必须具有正确的数据类型、 格式以及有效的数据范围。
是否符合其他特定要求? ——信誉值大于5的用户才能够加入 会员列表
……
精选课件
列值要求(约束)
整行要求(约束)
列级完整性约束 用于定义列或字段一级的完整性约束,一般包括:
NOT NULL和NULL约束 PRIMARY KEY约束 UNIQUE约束 FOREIGN KEY约束 DEFAULT定义 CHECK约束 表级完整性约束 用于定义表一级的完整性约束,一般包括: PRIMARY KEY约束(复合属性构成的主关键字说明) FOREIGN KEY约束(外部关键字及参照关系说明) CHECK约束(同时涉及到多个属性的域完整性约束)
江西南昌
0010015 张丽鹃
河南新乡 科目
学号
分数
…
0010016 赵可以
河南新乡 数学
0010012 88
数学 0010013 74
语文 0010012 67
语文 0010013 81
约束方法:外键约束
数学 0010016 98
×
数学
0010021 98
精选课件
自定义完整性
用户编号 用户姓名 会员证
• 参照完整性(引用完整性):指作用于有关联的两个或两个以上的表,通过使用主 键和外键或唯一键和外键之间的关系,使表中的键值在相关表中保持一致。
• 用户定义的完整性:是应用领域需要遵守的约束条件,允许用户定义特定的业务规 则。
精选课件
完整性包括…
域完整性 实体完整性 自定义完整性
引用完整性
精选课件