数据库上机实验

合集下载

数据库实验指导书

数据库实验指导书

《数据库原理与应用》实验指导书主编:李正茂合肥学院计算机科学与技术系2017年7月前言数据库原理与应用课程实验作为课程实践性环节之一,是教学过程中必不可少的重要内容。

通过实验,使学生加深理解、验证巩固课堂教学内容;增强对数据库管理系统一些知识的感性认识;培养学生理论与实践相结合以及用所学知识分析和解决实际问题的能力。

本书是《数据库原理与应用》课程的实验配套书,实验分为课内必修内容。

指导教师在每次实验前应讲清实验目的、基本原理、实验要求等,并指导学生做好实验预习,并在规定的时间内完成相关课程实验。

在实践教学中着重培养运用所学知识分析和解决实际问题的能力,注重动手能力的提高。

实验课程教学中应在老师指导下,以学生为主体,充分调动学生的积极性和能动性,重视学生动手能力的培养。

课内实验后,学生将实验结果等内容写出实验报告,应符合实验教学的要求,并得到指导教师认可。

实验报告由个人独立完成,每人一份。

报告应字迹整齐,程序代码、运行结果等符合要求。

指导教师对每份实验报告进行审阅、评分。

该实验课程内容是对理论教学内容的应用与验证。

实验成绩=实验报告成绩(50%) +自主学习实验项目1(20%)+自主学习实验项目2(30%)。

本书根据理论课的教学进度,共开设12个课内实验项目(其中2个综合性实验项目)和2个自主学习实验项目。

目录实验准备熟悉上机环境 (4)实验一建立数据库 (19)实验二建立数据表 (22)实验三修改表和数据完整性 (26)实验四数据操作及完整性约束 (29)实验五 SQL数据查询一 (32)实验六 SQL数据查询二 (35)实验七视图的应用 (38)实验八游标的应用 (40)实验九存储过程及应用 (43)实验十触发器及应用 (46)实验十一用户管理和权限管理 (48)实验十二数据库概念数据模型和逻辑数据模型设计 (52)自主实验项目1:实验考核 (54)自主实验项目2:按照要求设计并实现实验方案 (55)实验准备熟悉上机环境一、安装前准备:1.SQL Server 2008 的版本SQL Server 2008 主要有三个版本:精简版(32位),SQL速成版(32位),工作组版(32位和64位),网络版(32位和64位),企业版和开发人员版(32位和64位)。

SQL数据库实验报告

SQL数据库实验报告

湖北国土资源职业学院SQL数据库实验报告2010-2011 学年第二学期实验名称数据库应用技术班级测量0902指导老师侯文平学生姓名杨然系(部)测绘工程系实训时间2011年5月实验一注册服务器与创建数据库一、实验目的1.熟悉SQL Server 2005管理平台的环境2.掌握注册服务器的过程3.了解Microsoft SQL Server中系统数据库中的数据4.掌握创建库5.掌握创建数据表二、实验内容1. 使用联机丛书2.注册服务器3.创建数据库4.创建数据表三、仪器、设备、材料微机四、实验准备1.理论知识预习及要求①服务器组的创建;②服务器的注册;③创建数据库;④创建数据表;2.实验指导书预习及要求上机前先预习第一、二章的内容及附录A中的实验一,理解注册服务器的作用。

3.其他准备无五、实验原理或操作要点简介注意服务器要先启动,才能与服务器建立连接。

六、注意事项要养成为文件取有意义名称的习惯。

要及时保存文件,避免死机或断电造成的文件丢失。

创建过程中,出现问题时,请保存,请老师解答。

创建过程中,若出现找不到相应的问题时,要看联机丛书,逐步学会自学。

七、实验过程与指导1. 使用联机丛书(操作步骤参考教材P273实验一中的操作步骤)2.注册服务器(操作步骤参考教材P8)3.创建数据库(操作步骤参考教材P12,要求将数据库存储在最后一个磁盘,以自己姓名命名的文件夹,如F:\hwp)4.创建数据表以界面方式建立一个学生基本情况表(tblStudent),建立的要求如下表。

以界面方式建立一个班级表(tblClass),建立的要求如下表。

5.往表中插入记录①往tblStudent表中插入记录。

观察:●蔡文姬的性别在输入的时,没有输入,输入完成后,变成了什么?为什么?●曹操的性别误输入为“国”,也成功的存储了。

我们可以在保存数据前做什么工作,防止用户输入错误的发生?继续,往tblStudent表中插入记录。

输入完成,提交更新行时,会出现下面错误提示:思考:该提示的含义是什么,由什么原因引起?②往tblClass表中插入记录。

吕寻才实验指导书

吕寻才实验指导书

《数据库应用程序设计》实验指导书《数据库应用程序设计》是一门理论性和实践性很强的课程,任课教师采用“任务驱动”教学法设计了以下实验内容,把课堂内容巧妙的设计到具体的实验操作中去。

通过实验同学们不但可以巩固和加强课堂教学内容,还可以提高学生实际工作能力和动手能力,并为后续课程和从事实践技术工作奠重要的基础。

上机实验时每人为一组,独立上机。

实验要求1、上机前应事先作好准备工作,以提高上机实验的效率,准备工作至少应包括:复习和掌握与本实验有关的教学内容。

2、上机实验过程中,应服从教师安排。

3、对运行中可能出现的问题应事先作出估计;对操作过程中有疑问的地方,应做上记号,以便上机时给予注意。

4、上机实验完成后,要根据教师的要求及时上交作业。

实验设备与环境1、硬件配置586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于32MB,硬盘自由空间不少于60MB。

推荐配置为内存64MB(或以上),硬盘自由空间500MB以上。

2、软件配置操作系统:Windows 98,Windows 2000以上版本实验环境:SQL server 2000版本。

实验一 SQL Server数据库的安装一、目的与要求1.掌握SQL Server服务器的安装。

2.掌握企业管理器的基本使用方法。

3.掌握查询分析器的基本使用方法。

4.对数据库及其对象有一个基本了解。

二、实验准备1.了解SQL Server各种版本安装的软、硬件要求。

2.了解SQL Server支持的身份验证模式。

3.了解SQL Server各组件的主要功能。

4.对数据库、表和数据库对象有一个基本了解。

5.了解在查询分析器中执行SQL语句的方法。

三、实验步骤1.安装SQL Server 2000根据软硬件环境,选择一个合适版本的SQL Server 2000。

2.利用企业管理器访问系统自带的pubs数据库(1)启动SQL Server服务管理器。

(2)以系统管理员身份登录到企业管理器。

广东海洋大学_计算机科学与技术_数据库实验2

广东海洋大学_计算机科学与技术_数据库实验2

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验2数据的查询、更新课程名称数据库系统原理课程号1620072学院(系) 信息学院专业计算机科学与技术班级 1113学生姓名学号实验地点科技楼实验日期04-12实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。

三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。

sp_addtype char20,'varchar(20)',null2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。

(1) 建立“学生课程数据库”数剧库:CREATE DATABASE学生课程数据库ON PRIMARY(NAME=Student_dat,FILENAME='D:\学生课程数据库.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10%)LOG ON(NAME=Student_log,FILENAME='D:\学生课程数据库.ldf',SIZE=5MB,FILEGROWTH=10%)GO(2)创建学生表CREATE TABLE Student(Sno INT PRIMARY KEY,Sname CHAR(10),Ssex CHAR(2)CHECK(Ssex='男'OR Ssex='女'),Sage SMALLINT CHECK(Sage BETWEEN 15 AND 30),Sdept CHAR(20));插入数据:INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95001','李敏勇','男',20,'CS') INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95002','刘晨','女',19,'IS')INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95003','王敏','女',18,'MA')INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('95004','张立','男', 18 ,'IS');(2)创建课程表CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(10)NOT NULL,Cpno CHAR(4),Credit INT CHECK(Credit>=0 AND Credit<=100), Teacher char20);插入数据:INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(1,'数据库',5, 4,'王芳')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(2 ,'数学',NULL,2,'刘新')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(3 ,'信息系统',1,4,'刘新')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher) VALUES(4,' 操作系统', 6, 3,'高升')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(5 ,'数据结构',7, 4,'宋明')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(6 ,'数据处理',NULL,2,'张彬')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(7,'Pascal语言',6,4,'李磊');(2)创建学生选修表CREATE TABLE SC(Sno INT FOREIGN KEY REFERENCES Student(Sno),Cno CHAR(4)FOREIGN KEY REFERENCES Course(Cno), Grade INT CHECK( Grade>=0 AND Grade<=100 ), PRIMARY KEY(Sno,Cno));插入数据:INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','1',92)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','2',85)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','3',88)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95002','2',90)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95003','2',55)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95004','2',70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95030','谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分UPDATE SCSET Grade=98WHERE SC.Sno IN(SELECT SC.Sno FROM Student,SCWHERE Student.Sno = SC.Sno AND Student.Sname ='李敏勇')ANDo IN(SELECT o FROM SC,CourseWHERE o = o AND ame='数据库')3) 删除学生表Student中谢非的记录并保存DELETE StudentWHERE Student.Sname ='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录? DELETE StudentWHERE Student.Sname ='李敏勇'不能删除李敏勇学生的记录:“DELETE 语句与REFERENCE 约束"FK__SC__Sno__07020F21"冲突。

集美大学数据库SQL实验二 数据库的查询(I)

集美大学数据库SQL实验二 数据库的查询(I)

集美大学诚毅学院实验报告课程名称:数据库系统原理班级:实验成绩:指导教师:姓名:实验项目名称:数据库的查询(I)学号:上机实践日期:实验项目编号:实验2组号:上机实践时间:实验二数据库的查询(I)一.实验目的与要求1.掌握SELECT语句的基本语法。

2.掌握连接查询的方法。

3.掌握数据汇总的方法。

二.实验环境1.PC,CPU:P4 2.0GHz以上,内存:512M,硬盘:40GB以上;2.操作系统:Microsoft Windows 2003/WIN7;3.数据库系统软件:SQL Server 2008三.实验内容与步骤完成以下查询并显示查询结果。

(要求:以“SQL Server 实用教程”的附录A的所有数据作为数据库样本。

)1.查询计算机专业的所有同学的姓名、性别、年龄和总学分。

要求:“年龄”这一列的列标题显示为“年龄”,性别属性的值为0时,显示为“女”,性别属性为1时,显示为“男”。

2、查询姓"张"且全名为三个汉字的学生的所有信息。

3、查询在学生情况表中有备注内容的学生的学号、姓名、专业、备注。

4、查询计算机专业的总学分在50分以下(包括50分)的学生姓名5、查询1990年出生的学生姓名、专业、出生时间及总学分。

龄降序排列。

7、查询已经选修了课程的学生人数。

8、查询选修了“程序设计语言”课程且成绩在80分以上的学生姓名及成绩。

9、查找所有学生情况及他们选修的课程号,若学生未选修任何课,也要包括其情况。

10、查找所有开设的课程及被学生选修的情况(学号及成绩),如某门课程尚未有学生选修时也要列出来。

11、查询选修了101号课程的学生的最高成绩、最低成绩及平均成绩。

12、查询各个课程号及相应的选课人数。

13、查询“离散数学”课程成绩在85分以上的人数。

14、查询选修了3门以上课程的学生学号。

15、查询选修课程超过2门且成绩都在80分以上的学生的姓名、专业及总学分。

四.参考资料1.王珊,萨师煊:数据库系统概论(第四版) ,高等教育出版社,2006.5 2.SQL Server 实用教程,郑阿奇主编。

Oracle10g数据库实验指导书

Oracle10g数据库实验指导书

Oracle10g数据库实验指导书前言ORACLE数据库是属于数据库开发软件及应用领域的专业课,是面向计算机专业本科生开设的一门数据库应用普及型计算机专业课程。

ORACLE数据库是当前应用最为广泛的数据库系统,ORACLE数据库是针对高年级学生的实践性较强的课程。

通过实训,并结合典型系统进行分析,使学生较为系统地掌握ORACLE数据库的基本开发方法,运用数据库设计理论设计出满足一定规范的ORACLE 数据库应用系统。

随着计算机数据库技术的迅速发展和在当今信息社会中的广泛应用,给《ORACLE数据库》课程的教学提出了新的更高的要求。

由于ORACLE数据库是一门实践性较强的技术,课堂教学应该与实践环节紧密结合。

实验要求通过理论学习,能够在ORACLE这个大型的数据库设计实践中,对ORACLE的基本功能有一个初步的了解:通过对SQL*PLUS的简单使用,掌握其基本操作命令和技术;通过PL/SQL编程语言的使用与程序设计的分析,加深学生对SQL*PLUS和PL/SQL技术的理解和掌握,进而为今后再涉及到难度较大的实际应用打下扎实的基础。

总之,通过上述实验环节,使学生加深了解和更好地掌握《ORACLE10g数据库》课程教学大纲要求的内容。

在课程实训过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实训内容的准备,就实验可能出现的情况提前做出思考和分析。

(2)仔细观察上机操作时出现的各种现象,记录主要情况,作出必要说明和分析。

(3)认真书写实验报告。

实验报告包括实验目的和要求,实验情况及其分析。

对需编程的实验,写出程序设计说明,给出源程序框图和清单。

(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。

(5)实验课程不迟到。

目录实践1 Oracle10g的安装与配置及常用工具的使用 (1)实践2 创建数据库、表空间和数据文件 (25)实践3 数据库的安全管理 (27)实践4 管理表结构与表数据 (32)实践5 管理索引、视图、同义词和序列 (36)实践6 PL/SQL编程基础 (38)实践7 PL/SQL高级编程 (42)综合实践一Oracle基本知识与SQL*PLUS简单使用 (46)综合实践二PL/SQL编程语言的使用与程序设计 (57)综合实践三(设计性) JSP+Oracle网上购物系统 (68)附录:员工医疗保险系统表 (69)实践1 Oracle10g的安装与配置及常用工具的使用开发语言及实现平台或实验环境Oracle 10g实践目的(1) 掌握Oracle 10g数据库的安装与配置过程。

Oracle实验报告

Oracle 数据库课程上机实验报告学院名称:专业班级:姓名:学号:实验成绩:任课教师:目录实验一 (3)实验三 ORACLE数据库结构与网络配置 (3)实验四 (8)实验五数据表及其操作 (10)实验六 SQL命令操作 (14)实验七创建索引 (21)实验一实验三 ORACLE数据库结构与网络配置实验内容与数据库结构相关的数据字典查询实验1、查看表空间的名称及大小2、查看表空间物理文件的名称及大小3、查看回滚段名称及大小4、查看控制文件5、查看日志文件6、查看表空间的使用情况7、查看数据库库对象8、查看数据库的版本9、查看数据库的创建日期和归档方式10、查看临时数据库文件常用数据库信息查看命令(1)oracle中怎样查看总共有哪些用户(2)查看oracle当前连接数(3)列出当前数据库建立的会话情况3.2 表空间操作●创建表空间●修改表空间的相关操作1)增加表空间中的数据文件2)删除表空间中的数据文件3)修改表空间文件的数据文件大小4)修改表空间数据文件的自动增长属性。

实验四实验五数据表及其操作实验内容5.1创建基本表以system用户登录sqlplus创建表空间创建Testpace表空间5.2修改表清空表中的数据5.3 删除表5.4聚集表(1)创建聚集(聚集表的创建与操作)引用参照完整性三表定义了suppliers,products,order details三表间的三个级联关系实验六 SQL命令操作实验内容6.1数据查询select创建student,sc,course三表,并且插入数据查询1:查询2:查询3:查询4;实验七创建索引实验内容7.1在emp表中的sal字段上创建一个名为index_sal的b树索引,按字段值的蒋序排序7.2 在dept表的dname字段上创建一个具有唯一性的b树索引,索引值为字母序排序。

7.3在emp表的ename和deptno字段上创建一个复合索引7.10将参数设置为跟踪状态,执行对emp表的查询命令,查看索引应用的跟踪结果。

SQL数据库实验和参考答案

数据库实验和参考答案上机实验七1.声明一个字符串型的局部变量,并对其赋值:‘我的变量’,然后显示出此值。

declare @a char(10)set @a='我的变量'--select @a as 变量的值print @a2.编程实现如下功能:1)声明两个整形的局部变量:@i1和@i2,对@i1赋初值:10,@i2的值为:@i1乘以5,再显示@i2的结果值。

declare @i1 int,@i2 intset @i1=10set @i2=@i1*5print @i22)用While语句实现5000减1,减2,……一直减到50的计算,并显示最终的结果。

declare @sum int,@i intset @sum=5000set @i=1while(@i<=50)beginset @i=@i+1endprint @sum3)输出100以内的素数。

declare @i smallint,@jsmallint,@k smallintset @i=2while(@i<=100)beginset @k=0set @j=2while(@j<@i)beginif(@i%@j=0)beginset @j=@Iendset @j=@j+1endif @k=0print @Iset @i=@i+1end4)将字符数在20以内的字符串变量C的值逆序输出。

要求输出界面为:declare @i varchar(20),@j int,@k varchar(20)set @j=1set @k=''while @j<=len(@i)beginset @k=substring(@i,@j,1) set @j=@j+1endprint '字符串C的值:'+@iprint 'C的逆序字符串:'+@k5)从SC表中查询所有学生的选课成绩情况,分别统计各分数段人数,并输出统计结果。

大学计算机基础access实验

学生实验报告实验课名称:大学计算机实验项目名称:数据库技术基础(Access) 专业名称:班级:学号:学生姓名:教师姓名:2017年11月21日7.查询2000年以前参加工作的所有教师的教师号、姓名和实发工资。

8.查询男女生的最低分、最高分和平均分数。

9.查询男女职工的最低工资、最高工资和平均工资(工资指实发工资)。

10.查询所有党员的教师号和姓名,并且按年龄从大到小排列。

11.查询党员和非党员的人数和平均年龄。

12.查询学号为“110002”的学生的教师的教师号、姓名和性别。

13.查询每个教师的教师号和学生人数。

14.查询每一个教师的教师号以及所教学生的最低分、最高分和平均分。

四.实验设备与软件环境:操作系统:windows xp或 windows 7软件环境:microsoft office 2010中的 microsoft Access 2007五.实验步骤与结果:练习一:表的建立及维护1打开access2010点击新建将文件名命名为“********”。

点击创建,创建一个表。

点击开始、视图、设计视图。

将表名称改为“Teachers”如图所示按照表5.2要求输入字段信息、文本类型、字段宽度。

如图所示将主键设置为教师号,(左键点击教师号,右键、左键点击设置为主键)点击开始,点击数据表视图转化后输入“表5.2”内容。

如图所示:2同理按“表5.3”建立Students的结构。

如图所示3关闭Teachers表,右键“Teachers:表”,点击复制。

粘贴,将表名改为teachers1,同时选择结构和数据选项同理复制“teachers2”4(1)打开teachers1表,设计视图。

点击姓名一栏,在字段属性中将字段4改为6。

(2)按照要求添加新字段,输入信息。

表如图所示(3)点击党员字段名称,长按拖至参加工作年前。

如图5选定表teachers2,然后单击“外部数据”,点击导出文本,后如图6同5将其导出为EXCEL数据簿7打开数据库Testl.acedb 建立个空查询。

数据库原理实验答案

课程结束各班学委统一收实验报告数据库原理及应用(本科)实验指导书1(报告)计算机信息教研室桂林理工大学信息科学与工程学院二○二○年八月目录实验 1 创建数据库与数据表 (2)实验2 简单查询和连接查询 (10)实验3 嵌套查询和集合查询 (12)实验4 数据完整性 (14)桂林理工大学实验报告班级学号姓名同组实验者无实验名称实验1 创建数据库与数据表日期年月日一、实验目的:1.熟悉SQL SERVER环境;2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令;3.掌握数据表的创建和数据记录的插入方法。

二、实验环境:Sqlserve数据库管理系统三、实验内容:1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC 三个数据表,各表中的数据如下所示:学生STUDENT:(注:CS计算机科学,IS信息系统,MA数学)Sno Sname Ssex Sage Sdept95001李勇M20CS95002刘晨F19IS95003王敏F18MA95004张立M18IS课程COURSE:(注:Pcno 先修课课程号)Cno Cname Pcno Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27C语言64选修SC:Sno Cno Grade9500119295001285 95001388 9500229095002 950033380实验步骤:1.创建教学管理“JXGL”数据库。

(注:可采用可视窗体和SQL命令两种方法创建。

以下是SQL命令方法)(1) 创建教学管理“JXGL”数据库。

在命令窗格中输入如下命令,然后单击“运行”功能钮执行该命令。

CREATE DATABASE JXGL;(2) 在JXGL数据库中建立STUDENT表,并插入记录。

CREATE TABLE STUDENT( Sno char(5) not null unique,Sname char(20) not null unique,Ssex char(1),Sage int,Sdept char(20));INSERT INTO STUDENT V ALUES('95001','李勇','M',20,'CS');INSERT INTO STUDENT V ALUES('95002','刘晨','F',19,'IS');INSERT INTO STUDENT V ALUES('95003','王敏','F',18,'MA');INSERT INTO STUDENT V ALUES('95004','张立','M',18,'IS');1(3) JXGL数据库中建立COURSE表,并插入记录。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附录C上机实验C.1第4章上机实验下列实验均使用SQL Server的SSMST具实现。

1. 用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A): 数据库名为:学生数据库主要数据文件的逻辑文件名为:Students_data ,存放在D:\Data文件夹下(若D:盘中无此文件夹,请先建立此文件夹,然后再创建数据库。

),初始大小为:5MB 增长方式为自动增长,每次增加1MB日志文件的逻辑文件名字为:Students」og ,也存放在D:\Data文件夹下,初始大小为:2MB增长方式为自动增长,每次增加10%2•选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。

(注:“说明”部分不作为表定义内容)表C-4Teacher表结构3. 写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。

(1)在Teacher表中添加一个职称列,列名为:Title ,类型为nchar(4)。

(2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。

(3)将Course表中Credit列的类型改为:tinyint 。

(4)删除Student表中的Sid和Sdate列。

(5)为Teacher表添加主键约束,其主键为:Tno。

C.2第5章上机实验本实验均在SQL Server的SSMS工具中实现。

首先在已创建的“学生数据库”中创建本章表5-1~5-3所示的Student、Course和SC表,并插入表5-4~5-6所示数据,然后编写实现如下操作的SQL语句,执行所写的语句,并查看执行结果。

1. 查询SC表中的全部数据。

2. 查询计算机系学生的姓名和年龄。

3. 查询成绩在70〜80分的学生的学号、课程号和成绩。

4. 查询计算机系年龄在18〜20岁的男生姓名和年龄。

5. 查询C001课程的最高分。

6. 查询计算机系学生的最大年龄和最小年龄。

7. 统计每个系的学生人数。

8. 统计每门课程的选课人数和最高成绩。

9. 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。

10. 列出总成绩超过200的学生的学号和总成绩。

11. 查询选了C002课程的学生姓名和所在系。

12. 查询考试成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。

13. 查询与VB在同一学期开设的课程的课程名和开课学期。

14. 查询与李勇年龄相同的学生的姓名、所在系和年龄。

15. 查询哪些课程没有学生选修,列出课程号和课程名。

16. 查询每个学生的选课情况,包括未选课的学生,列出学生的学号、姓名、选的课程号。

17. 查询计算机系哪些学生没有选课,列出学生姓名。

18. 查询计算机系年龄最大的三个学生的姓名和年龄。

19. 列出“VB'课程考试成绩前三名的学生的学号、姓名、所在系和VB成绩。

20. 查询选课门数最多的前2位学生,列出学号和选课门数。

21. 查询计算机系学生姓名、年龄和年龄情况,其中年龄情况为:如果年龄小于18,则显示“偏小”;如果年龄在18-22,则显示“合适”;如果年龄大于22,则显示“偏大”。

22. 统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”;如果此门课程的选课人数在40〜100,则显示“一般”;如果此门课程的选课人数在1〜40,则显示“人少”;如果此门课程没有人选,则显示“无人选”。

23. 查询计算机系选了VB课程的学生姓名、所在系和考试成绩,并将结果保存到新表VB_Grade 中。

24. 统计每个系的女生人数,并将结果保存到新表Girls中。

25. 用子查询实现如下查询:(1)查询选了“ C001 ”课程的学生姓名和所在系。

(2)查询通信工程系成绩80分以上的学生的学号和姓名。

(3 )查询计算机系考试成绩最高的学生的姓名。

(4)查询年龄最大的男生的姓名、所在系和年龄。

26. 查询C001课程的考试成绩高于该课程平均成绩的学生的学号和成绩。

27. 查询计算机系学生考试成绩高于计算机系学生平均成绩的学生的姓名、考试的课程名和考试成绩。

28. 查询VB课程考试成绩高于VB平均成绩的学生姓名和VB成绩。

29. 查询没选VB的学生姓名和所在系。

30. 查询每个学期学分最高的课程信息,列出开课学期、课程名和学分。

31. 查询每门课程考试成绩最高的学生信息,列出课程号、学生姓名和最高成绩,结果按课程号升序排序,不包括没考试的课程。

32. 创建一个新表,表名为test,其结构为(C0L1, COL 2, COL 3),其中,C0L1:整型,允许空值。

COL2普通编码定长字符型,长度为10,不允许空值。

COL3普通编码定长字符型,长度为10,允许空值。

试写出按行插入如下数据的语句(空白处表示是空值)。

成绩插入到VB_Grade表中。

34. 将所有选修C001课程的学生的成绩加10分。

35. 将计算机系所有学生的“计算机文化学”的考试成绩加10分。

36. 修改“VB'课程的考试成绩,如果是通信工程系的学生,则增加10分;如果是信息管理系的学生则增加5分,其他系的学生不加分。

37. 删除成绩小于50分的学生的选课记录。

38. 删除计算机系VB考试成绩不及格学生的VB选课记录。

39. 删除“ VB'考试成绩最低的学生的VB修课记录。

40. 删除没人选的课程的基本信息。

C.3第6章上机实验下列实验均使用SQL Server的SSMS工具实现。

禾U用第4章上机实验创建的“学生数据库”中Student、Course和SC表,完成下列实验。

1. 写出实现下列操作的SQL语句,并执行所写代码。

(1 )在Student表上为Sname列建立一个聚集索引,索引名为:IdxSno。

(提示:若执行创建索引的代码,请先删除该表的主键约束)(2)在Course表上为Cname列建立一个唯一的非聚集索引,索引名为:IdxCN (3)在SC表上为Sno和Cno建立一个组合的聚集索引,索引名为:IdxSnoCno。

(提示: 若执行创建索引的代码,请先删除该表的主键约束)(4)删除Sname列上建立的IdxSno索引。

2. 写出创建满足下述要求的视图的SQL语句,并执行所写代码。

(1 )查询学生的学号、姓名、所在系、课程号、课程名、课程学分。

(2 )查询学生的学号、姓名、选修的课程名和考试成绩。

(3)统计每个学生的选课门数,要求列出学生学号和选课门数。

(4)统计每个学生的修课总学分,要求列出学生学号和总学分(说明:考试成绩大于等于60才可获得此门课程的学分)。

3. 利用第2题建立的视图,完成如下查询。

(1 )查询考试成绩大于等于90分的学生的姓名、课程名和成绩。

(2)查询选课门数超过3门的学生的学号和选课门数。

(3)查询计算机系选课门数超过3门的学生的姓名和选课门数。

(4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。

(5)查询年龄大于等于20岁的学生中,修课总学分超过10分的学生的姓名、年龄、所在系和修课总学分。

4. 修改第3题(4)定义的视图,使其查询每个学生的学号、总学分以及总的选课门数。

C.4第7章上机实验禾U用第5章建立的学生数据库以及Student、Coures和SC表,完成下列操作。

1. 创建满足如下要求的后触发型触发器。

(1)限制学生的考试成绩必须在0-100之间。

(2)限制不能删除成绩不及格的考试记录。

(3)限制每个学期开设的课程总学分不能超过20。

(4)限制每个学生每学期选的课程不能超过5门。

2. 创建满足如下要求的存储过程。

(1)查询每个学生的修课总学分,要求列出学生学号及总学分。

(2 )查询学生的学号、姓名、修的课程号、课程名、课程学分,将学生所在的系作为输入参数,执行此存储过程,并分别指定一些不同的输入参数值。

(3 )查询指定系的男生人数,其中系为输入参数,人数为输出参数。

(4)删除指定学生的修课记录,其中学号为输入参数。

(5)修改指定课程的开课学期。

输入参数为:课程号和修改后的开课学期。

C.5第11章上机实验禾U用第4、5章建立的学生数据库和其中的Student、Course、SC表,并利用SSMS工具完成下列操作。

1. 用SSMS工具建立SQL Server身份验证模式的登录名:Iog1、Iog2和Iog3。

2. 用log1建立一个新的数据库引擎查询,在“可用数据库”下列列表框中是否能选中学生数据库?为什么?3. 用系统管理员身份建立一个新的数据库引擎查询,将log1、log2和log3映射为学生数据库中的用户,用户名同登录名。

4. 在logl建立的数据库引擎查询中,现在在“可用数据库”下列列表框中是否能选中学生数据库?为什么?5. 在logl建立的数据库引擎查询中,选中学生数据库,执行下述语句,能否成功?为什么?SELECT * FROM Course6. 在系统管理员的数据库引擎查询中,执行合适的授权语句,授予logl具有对Course表的查询权限,授予log2具有对Course表的插入权限。

7. 用log2建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?INSERT INTO Course VALUES(' C1001 ','数据库基础',4,5)再执行下述语句,能否成功?为什么?SELECT * FROM Course8. 在logl建立的数据库引擎查询中,再次执行下述语句:SELECT * FROM Course这次能否成功?但如果执行下述语句:INSERT INTO Course VALUES(' C103 ','软件工程',4, 5)能否成功?为什么?9. log3建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?CREATE TABLE NewTable(C1 int,C2 char⑷)10. 授予log3在学生数据库中具有创建表的权限。

11. 在系统管理员的数据库引擎查询中,执行下述语句:GRANT CREATE TABLE TO log3GOCREATE SCHEMA log3 AUTHORIZATION log3GOALTER USER log3 WITH DEFAULT_SCHEMA = log312. 在log3建立一个新的数据库引擎查询中,再次执行第9题的语句,能否成功?为什么?如果执行下述语句:SELECT * NewTable能否成功?为什么?。

相关文档
最新文档