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