数据库管理与应用创建“学生表”中的约束
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创建“学生表”中的约束
例4:创建“学生表”中的约束
(1)打开SSMS窗口,在“对象资源管理器”窗格中展开“数据库”,展开“students”,展开“表”。
(2)右键单击“学生表”,选择“设计”。
(3)右键单击“学号”行选择器,然后选择“设置主键”。此时,学号列建立了主键约束,如图3-5所示。
图3-5 “学生表”主键的添加
(4)右键单击“性别”列的行选择器,然后选择“CHECK约束”,弹出“CHECK约束”对话框。如图3-6所示。
图3-6 学生表的CHECK约束对话框
(5)单击“添加”按钮,如果希望为约束指定一个不同的名称,请在“标识-名称”框中键入名称。单击“常规”→“表达式”栏目右侧的按钮,弹出“CHECK约束表达式”对话框,在对话框中输入:性别=’男’ or 性别='女',如图3-7所示。
图3-7 学生表性别字段的“CHECK约束表达式”对话框
(6)单击“确定”按钮,返回到CHECK约束对话框,如图3-8所示。
图3-8 学生表CHECK约束设置
(7)接受缺省的约束名称。
(8)展开表设计器类别以设置在何时强制约束:
✓若要在创建约束前对现有数据测试约束,请选中“在创建或启用时检查现有数据”。
✓若要每当复制代理对此表执行插入或更新操作时强制约束,请选中“强制用于复制”。
✓若要每当在此表中插入或更新行时强制约束,请选中“强制用于INSERT 和UPDATE”。
(9)单击对话框底部的“关闭”按钮。
(10)选择“工具栏”的“保存”按钮。
(11)关闭表设计器。
附:使用T-SQL代码创建“学生表”约束
--添加主键约束
ALTER TABLE 学生表ADD CONSTRAINT PK_学生表
PRIMARY KEY CLUSTERED (学号)
GO
--添加CHECK约束
ALTER TABLE 学生表ADD CONSTRAINT CK_学生表
CHECK (性别='男' OR 性别='女')
GO
例5:创建“课程表“中的约束
(1)打开SSMS窗口,在“对象资源管理器”窗格中展开“数据库”,展开“students”,展开“表”。
(2)右键单击“课程表”,选择“设计”。
(3)右键单击“课程代码”行选择器,然后选择“设置主键”。此时,“课程代码”列建立了主键约束,如图3-9所示。
图3-9 “课程表”主键的添加
(4)右键单击“课程名称”行选择器,然后选择“索引/键”。
(5)单击“添加”按钮,在“常规-类型”选择下拉菜单“唯一键”。在“常规-列”选择课程名称(升序),如图3-10所示。
图3-10 “课程表”唯一键的添加
(6)接受缺省的约束名称。
(7)单击对话框底部的“关闭”按钮。
(8)右键单击“课程类型”行选择器,在底部“列属性”中,选择“常规-默认值或绑定”,输入’考查’,如图3-11所示。
图3-11 “课程表”默认值的添加
(9)选择“工具栏”的“保存”按钮。
(10)关闭表设计器
提示:由于一个表只能有一个主键,要限制课程名称不能重复只能选择唯一性约束。
附:使用T-SQL代码创建“课程表”约束。
--添加主键约束
USE students
GO
ALTER TABLE 课程表ADD CONSTRAINT PK_课程表
PRIMARY KEY CLUSTERED (课程代码)
GO
--添加唯一键约束
USE students
GO
ALTER TABLE 课程表ADD CONSTRAINT uq_课程表
UNIQUE NONCLUSTERED
(
课程代码ASC
)
GO
--添加默认值约束
USE students
GO
ALTER TABLE 课程表ADD CONSTRAINT DF_课程表_课程类型DEFAULT ('考查') FOR 课程类型
GO
例6:创建“成绩表”中的约束
(1)打开SSMS窗口,在“对象资源管理器”窗格中展开“数据库”,展开“students”,展开“表”。
(2)右键单击“成绩表”,选择“设计”。
(3)右键单击“课程代码”行选择器,然后选择“设置主键”,如图3-12所示。
图3-12 “成绩表”主键的添加