实验一 数据定义和完整性(带答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据定义和数据库的完整性(4学时)
实验目的:
1、掌握SQL的数据定义功能
2、掌握SQL语言对数据库完整性的支持。
实验内容:
1、建立一个数据库XSCJ,自行规定数据文件和日志文件各项参数。
2、参照课本79页建立Course表,并录入数据库表中相应元组。
3、修改Course表增加一列,开课学期,数据类型自行定义。
4、为Course表的Cname列建立一个唯一索引,索引名Cname_idx。
5、删除唯一索引Cname_idx。
6、删除基本表Student。
7、删除数据库XSCJ
8、创建创建一个名为BSXT的数据库,其初始大小为5MB,最大大小10MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
AR9、将以上BSXT据库的主数据文件的最大大小改为不限制。
10、。在BSXT系统中建立表1至表3共张表,要求采用T-SQL提供的六种约束创建三张表的实体完整性、参照完整性和用户定义的完整性定义
表1 学生表(student)
表2 教师表(Teacher)
表3 毕业设计题目信息表
/*
--建立一个数据库XSCJ,自行规定数据文件和日志文件各项参数
--参照课本79页建立Course表,并录入数据库表中相应元组
CREATE TABLE Course
(Cno CHAR(1) PRIMARY KEY,
Cname CHAR(10),
Cpno CHAR(1),
Ccredit CHAR(1),
FOREIGN KEY(Cpno) REFERENCES Course(Cno)
)
*/
/*
--修改Course表增加一列,开课学期,数据类型自行定义
AlTER TABLE Course ADD Csemester CHAR(10)
*/
/*
--为Course表的Cname列建立一个唯一索引,索引名Cname_idx
CREATE UNIQUE INDEX Cname_idx ON Course(Cname)
*/
/*
--删除唯一索引Cname_idx
DROP INDEX ame_idx
*/
/*
--删除基本表Course
DROP TABLE Course
*/
--删除数据库XSCJ
/*
--创建创建一个名为BSXT的数据库,其初始大小为5MB,最大大小10MB,允许数据库自动增长,增长方式是按10%比例增长;
--日志文件初始为2MB,最大可增长到5MB,按1MB增长
--将以上BSXT据库的主数据文件的最大大小改为不限制
--在BSXT系统中建立表1至表3共张表
--要求采用T-SQL提供的六种约束创建三张表的实体完整性、参照完整性和用户定
义的完整性定义
*/
/*
--表1 学生表(student)
CREATE TABLE student
(Sno CHAR(10) NOT NULL PRIMARY KEY,
Sname CHAR(10) NOT NULL,
Ssex CHAR(2) CHECK(Ssex='男' or Ssex='女'),
Sclass CHAR(10),
Stel CHAR(11) NOT NULL,
Sgroup CHAR(1) NOT NULL,
Spassword CHAR(10) NOT NULL
)
*/
/*
--表2 教师表(Teacher)
CREATE TABLE Teacher
(Tno CHAR(10) NOT NULL PRIMARY KEY,
Tname CHAR(10) NOT NULL UNIQUE,
Tsex CHAR(2) CHECK(Tsex='男' or Tsex='女'),
Tdept CHAR(20) NOT NULL DEFAULT '计算机科学与技术系', Tdegree CHAR(8),
Ttitle CHAR(10),
Tright BIT NOT NULL CHECK(Tright=0 or Tright=1),
Ttel CHAR(11) NOT NULL,
Temail CHAR(50),
Tgroup CHAR(1) NOT NULL,
Tpassword CHAR(10) NOT NULL
)
*/
/*
--表3 毕业设计题目信息表
CREATE TABLE Iteminfo
(Hno CHAR(4) NOT NULL PRIMARY KEY,
Hname CHAR(50) NOT NULL,
Hstatus CHAR(5) NOT NULL,
Hcontent CHAR(200),
dircetion CHAR(200),
Tno CHAR(10) REFERENCES Teacher(Tno),
Sno CHAR(10) REFERENCES student(Sno)
)
*/
补充:
--建立一个“学生”表Student。
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
--建立一个“课程”表Course。
CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40) NOT NULL,
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno) )
--建立学生选课表SC
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) )