数据库的完整性约束-包含答案.doc

上传人:hw****26 文档编号:3186908 上传时间:2019-05-24 格式:DOC 页数:6 大小:57KB
下载 相关 举报
数据库的完整性约束-包含答案.doc_第1页
第1页 / 共6页
数据库的完整性约束-包含答案.doc_第2页
第2页 / 共6页
数据库的完整性约束-包含答案.doc_第3页
第3页 / 共6页
数据库的完整性约束-包含答案.doc_第4页
第4页 / 共6页
数据库的完整性约束-包含答案.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、实验八:数据库的完整性约束一、实验目的1. 掌握主键约束、外键约束及及 check 约束的用法;2. 掌握默认值约束的应用。二、实验环境已安装 SQL Server 2008 企业版的计算机;具有局域网环境,有固定 IP;三、实验学时2 学时四、实验要求1. 熟悉数据库完整性相关概念及约束;2. 了解约束、默认值;3. 完成实验报告;五、实验准备知识1、创建 primary key约束(1)在创建数据表时创建 primary key约束CREATE TABLE table_name(column_name data_type PRIMARY KEY | unique | NOT NULL ,

2、column_name data_type PRIMARY KEY | unique | NOT NULL.PRIMARY KEY(column ,.n)(2)在修改表时同时创建 primary key约束ALTER TABLE table_nameADD primary key(column ,.n)2、创建 Foreign key约束(1)创建表时同时定义 Foreign key约束CREATE TABLE table_name(column_name data_type FOREIGN KEY REFERNCES ref_table(ref_column), column_name da

3、ta_type FOREIGN KEY REFERNCES ref_table(ref_column).FOREIGN KEY (column) REFERNCES ref_table(ref_column)(2)通过修改表定义 Foreign key约束ALTER TABLE table_nameADD FOREIGN KEY (column)REFERNCES ref_table(ref_column )3、创建 check约束(1)创建数据表时创建 check约束CREATE TABLE table_name(column_name data_type NOT NULL | CHECK

4、(logical_expression).CHECK (logical_expression) )(2)在修改数据表时添加 check约束ALTER TABLE table_nameADD CHECK (logical_expression)4、创建 default约束(1)创建数据表时创建 default约束Create table table_name( column_name datatype not null | DEFAULT (constraint_expression)(2)修改数据表时添加一个字段的同时创建 default约束Alter table table_nameADD

5、column_name datatype not null | DEFAULT (constraint_expression) with values(3)对表中指定的列定义默认值约束Alter table table_nameADD DEFAULT (constraint_expression) For column5、完整性约束命名子句CONSTRAINT PRIMARY KEY 短语FOREIGN KEY 短语CHECK 短语 6、删除 primary key约束或 unique约束ALTER TABLE table_nameDROP CONSTRAINT constraint_name

6、 , .n六、实验内容及步骤使用 T-SQL 语句实现以下操作;1. 请用至少 2 种方法定义 stu 数据库中 student 表的主键 sno;方法 1:CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20), Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20)方法 2:CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20), Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),PRIMARY KEY(Sno)2.

7、将数据库 stu 的表 course 的 cno 字段定义为主键,约束名称为cno_pk;Alter table courseAdd constraint cno_pk primary key (cno)3. 为表 course 中的字段 cname 添加唯一值约束;Alter table courseAdd constraint cname_pk unique (cname)4. 将数据库 stu 的表 sc 的 sno 及 cno 字段组合定义为主键,约束名称为sc_pk;Alter table scAdd constraint sc_pk primary key (sno,cno)5.

8、对于数据表 sc 的 sno、cno 字段定义为外码,使之与表 student 的主码 sno 及表 course 的主码 cno 对应,实现如下参照完整性:1) 删除 student 表中记录的同时删除 sc 表中与该记录 sno 字段值相同的记录;2) 修改 student 表某记录的 sno 时,若 sc 表中与该字段值对应的有若干条记录,则拒绝修改;3) 修改 course 表 cno 字段值时,该字段在 sc 表中的对应值也应修改;4) 删除 course 表一条记录时,若该字段在在 sc 表中存在,则删除该字段对应的记录;Use stuCreate table student(Sn

9、o CHAR(9), Sname CHAR(20),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),PRIMARY KEY(Sno)Create table course (cno char(4), cname char(40), cpno char(4),ccedit smallint,foreign key (cpno) references course(cno),primary key (cno)Create table sc(sno char(9),cno char(4),Grade smallint,foreign key (sno) refer

10、ences student(sno)on delete cascade on update no action,foreign key (cno) references course (cno) on delete cascade on update cascade)6. 定义 check 约束,要求学生学号 sno 必须为 9 位数字字符,且不能以0 开头,第二三位皆为 0;Alter table studentAdd CONSTRAINT sno_ckCheck (sno like 1-900 0-9 0-9 0-9 0-9 0-9 0-9)7. 定义 stu 数据库中 student 表

11、中学生年龄值在 16-25 范围内;CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20), Ssex CHAR(2),Sage SMALLINT Check (sage=16 and sage=25),Sdept CHAR(20)8. 定义 stu 数据库中 student 表中学生性别列中只能输入“男”或“女” ;CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20), Ssex CHAR(2) Check(Ssex in (男, 女),Sage SMALLINT,Sdept CHAR(20)9. 定义 stu 数据库 student 表中学生年龄值默认值为 20;CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20), Ssex CHAR(2),Sage SMALLINT Default 20,Sdept CHAR(20) 七、出现问题及解决办法如:某些操作无法执行,如何解决?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。