1、计算机 1406 班 宋世波 | 学号:20143753 | 2017 年 5 月 1 日数据库实验报告一熟练掌握 SQL 语言 1实验题目:熟练掌握 SQL 语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。实验内容及要求:具体包括如下三部分。一、 熟悉上机环境。客户/服务器结构,数据库服务器在一台 NT 服务器上,同学们通过客户机(操作系统为 Windows 2000)上安装的 SQL Server 客户端程序, 使用 SQL Server 数据库服务器。具体包括:1. 了解 SQL Server 环境。鼠标点击开始,进入“Microsoft S
2、QL Server企业管理器”,点击 SQL Server 组下的数据库服务器(服务器名称为 NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。点击服务器(NEUC-201S(Windows NT))下的数据库,可以 看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。2. 鼠标点击开始,进入“Microsoft SQL Server查询分析器”,输入用户名和口令,进入 SQL 查询分析器。如:你登录的客户机为 27 号,那么请以用户
3、名 user27,口令为 user27 登录,登录后缺省连到数据库user27 上,user27/user27 是数据库 user27 的创建者,因此用户user27/ user27 具有在数据库 user27 上创建表等一切权力。3. 在 SQL 查询分析器环境下,你就可进行 SQL 命令语句操作了。二、 在数据库 useri 上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。1. 描述学生、课程情况的 E-R 图如下,请将其转化为用关系数据模型描述的关系模式22. 在数据库中定义这些关系模式,并向基本表中插入如下数据:3. 插入相应的数据,试着插入重复的元组,结果如何?4. 在已
4、建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于 14 岁,不大于 35 岁),如果约束不能建立,请分析原因,修改后建立上述约束。5. 如果约束建立后,请试着插入重复元组,结果如何?实验过程:二、1. 描述学生、课程情况的 E-R 图如下,请将其转化为用关系数据模型描述的关系模式.答:关系模型如下所示:Student (Sno, Sname, Ssex, Sage, Sdept )Course ( Cno, Cname, Cpno, Ccredit,Ctime)SC (Sno, Cno, Grade)2. 在数据库中定义这些关系模式,并向基本表中插
5、入如下数据:关系模式的建立:1.CREATE table Students (Sno char(11) primary key, Sname char(20), Sage int, sdept char(20)2.create table Courses (Cno char(4), Cname char(40), Ccredit int, Ctime int, Cpno char(4),primary key (cno), Foreign key (Cpno) references Courses(Cno) 3.create table SC (Sno char(11), Cno char(4
6、), Grade int, primary key(Sno,Cno), foreign key(Sno) references Students(Sno), foreign key(Cno) references Courses(Cno) 学生课程选修学号 姓名 年龄所在系成绩课号课程名 学时学分先行课号3insert into Courses values (0000,数据库,2,60,null) insert into Courses values (0001,C语言,2,60,null)insert into Courses values (0002,C+语言,4,60,null)ins
7、ert into Courses values (0003,JAVA,1,60,null)insert into Courses values (0004,数据结构,4,60,null)insert into Courses values (0005,高数,4,60,null)insert into Courses values (0006,离散数学,2,60,null)insert into Courses values (0007,计算原理,1,60,0005)insert into Courses values (0008,算法设计,3,60,0004)insert into Cours
8、es values (0009,文本信息检索,1,60,null) insert into Courses values (0010,信息安全,1,60,0009) insert into SC values (20143753,0001,92) insert into SC values (20143751,0007,85)insert into SC values (20143752,0008,84) insert into SC values (20143744,0005,88) insert into SC values (20143754,0009,66) insert into S
9、C values (20143746,0006,99)insert into SC values (20143759,0002,61)insert into SC values (20143740,0002,73)insert into SC values (20143757,0003,67) insert into SC values (20143777,0010,1) 4insert into Students values (20143753,宋世波,21,计算机) insert into Students values (20143751,撒占斌,23,电子) insert into
10、Students values (20143752,尚明宇,21,通信)insert into Students values (20143744,李林峰,22,自动化) insert into Students values (20143754,孙何奇,20,软件)insert into Students values (20143746,李峰,26,数学)insert into Students values (20143759,席冲,27,物联网)insert into Students values (20143740,安羽,28,生物) insert into Students va
11、lues (20143757,周昌福,21,计算机)insert into Students values (20143777,白百何,20,动作)3. 插入相应的数据,试着插入重复的元组,结果如何?5可以插入,表中数据出现重复元祖。4. 在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于 14 岁,不大于 35 岁),如果约束不能建立,请分析原因,修改后建立上述约束。建立主键约束 alter table Courses add primary key(Cno)结果如下:6原因分析:主键约束无法建立,由于表中目前存在重复元祖,无法满足主键约束,删除重复元祖即可解决问题。7对重复元祖进行删除,再次尝试进行主键约束,成功而后尝试建立用户约束alter table Students add check(Sage=14 and Sage=35) 成功5. 如果约束建立后,请试着插入重复元组,结果如何?尝试插入重复元祖,发生错误,违反了主键约束。无法进行插入。