1、数据库系统SSD7课程实验指引书谭长庚 编写 课程编号 32X1 总 学 时 64 实验学时 20 课外学时 20 中南大学软件学院11月实验1数据库与表基本操作实验学时: 2 每组人数: 1 实验类型: 1 (1:基本性 2:综合性 3:设计性 4:研究性)实验规定: 1 (1:必修 2:选修 3:其他)实验类别: 3 (1:基本 2:专业基本 3:专业 4:其他)一、实验目1纯熟掌握SQL Server用法。2. 纯熟掌握使用SQL Server 200X对象资源管理器以及SQL DDL完毕数据库创立、删除和连接办法;数据表建立、删除;表构造修改。3. 加深对表实体完整性、参照完整性和顾客
2、自定义完整性理解。二、实验内容在如下实验中,使用学生-课程数据库,它描述了学生基本信息、课程基本信息及学生选修课程信息。用对象资源管理器(公司管理器)与SQL语句分别完毕。(1) 创立学生-课程数据库,数据文献名为student_data、大小10M,日记文献名为student_log、大小5M新数据库,该数据库名为student_xxxx。xxxx表达班级学号。1班12号,数据库名为student_0112。(2) 创立学生关系表S :学号姓名性别年龄所在系SnoSnameSsexSagesdept(3) 创立课程关系表C : 课程号课程名先行课学分CnoCnameCpnoccredit(4
3、) 创立学生-课程表SC :学号课程号成绩SnoCnograde(5) 将以上创立表S、C、SCSQL命令以 .SQL文献形式保存在磁盘上。在表中加入至少4个元组,第一种为本人信息。(6) 在表S上增长“出生日期”属性列。(7) 删除表S“年龄” 属性列。(10) 删除表SC,运用磁盘上保存.SQL文献重新创立表SC。(11)备份数据库,再还原。三、实验规定:1预习数据库与表建立办法; 2预习备份数据库,还原数据库办法;3. 预习表构造修改办法。四、实验环节熟悉关于SQL SERVER图形界面工作环境(参见后附录2 SQL Server 使用)。创立数据库或连接已建立数据库。在当前数据库上建立
4、新表。定义表构造。(1)用命令形式(2)用SQL SERVER提供对象资源管理器(公司管理器)以交互方式进行5 将以上表定义以.文献形式保存在磁盘上。6 修改表构造。7 删除表定义。五、实验报告1完毕本项目实验后,学生应提交实验报告。2实验报告格式与规定见附录1。附录1:实验报告格式与规定XXXXX(课程名称)实验报告项目名称 专业班级 学 号 姓 名 实验成绩:批阅教师:年 月 日正文规定实验1XXXXX(项目名称)实验学时: 实验地点: 实验日期: 一、实验目指出本次实验应当达到学习目的。二、实验内容指出本次实验应完毕任务。三、实验办法涉及实验办法、原理、技术、方案等。四、实验环节指出完毕
5、该实验操作环节。五、实验成果记录实验输出数据和成果。六、实验结论对实验数据和成果进行分析描述,给出实验获得成果和结论。注:有程序规定附上程序源代码,有图表要有截图并有相应文字阐明和分析七、实验小结给出本次实验体会,如学会了什么,遇到哪些问题,如何解决这些问题,存在哪些有待改进地方。附录2 SQL Server 使用0.启动SQL server 服务:在程序菜单上选Sql server 配备管理点右键启动 1.在程序菜单中启动SQL sever express点击启动2.点击“连接对象资源管理器”按钮,连接服务器(如设立开机就连接无需做此步)连接对象资源管理器按钮注意:服务器也许是soft-c2
6、3sqlexpress(下拉菜单去选),c23为机位号;或者用.sql3.新建数据库,修改有关参数鼠标指向“数据库”,点右键选“新建数据库”输入数据库名修改数据库文献保存途径(在e盘先建好文献夹)4.新建表,选定新建数据库,指向“表”,点右键,“新建表”,输入各列名及类型,在右属性框修改表名。5.点“新建查询”,在编辑框中输入sql语句,完毕建表、查询语句编辑;点“执行按钮”执行,观测成果。点“存盘”按钮可以对sql脚本存盘。也可通过配备管理器来启动数据库服务器。T-SQL建立数据库:CREATE DATABASE csu_tcg ON PRIMARY ( NAME = csu-tcg,FIL
7、ENAME =e:MSSQLDATAcsu-tcg.mdf ,-文献夹要先建好SIZE = 3072KB ,-单位可以M,KFILEGROWTH = 1024KB ) LOG ON ( NAME = Ncsu-tcg_log,FILENAME = Nc:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATAcsu-tcg_log.ldf , SIZE = 1MB ,FILEGROWTH = 10%)GO /*go为事务提交一段SQL脚本(是隐形事务)结束标志符。SQL Server 应用程序可将多条 Transact-SQL 语句作为一种批解决发给
8、SQL Server去执行。在此批解决中语句编译成一种执行筹划。程序员在SQL Server 实用工具中执行特定语句,或生成Transact-SQL 语句脚本在 SQL Server 实用工具中运营,用 GO 来标记批解决结束*/实验2数据表查询与更新实验学时: 4 每组人数: 1 实验类型: 2 (1:基本性 2:综合性 3:设计性 4:研究性)实验规定: 1 (1:必修 2:选修 3:其他)实验类别: 3 (1:基本 2:专业基本 3:专业 4:其他)一、实验目1. 熟悉和掌握对数据表中数据查询操作和SQL命令使用,学会灵活纯熟使用SQL 语句各种形式,加深理解关系运算各种操作(特别是关系
9、选取,投影,连接和除运算);2. 熟悉和掌握数据表中数据插入、修改、删除操作和命令使用(熟悉使用UPDATE/INSERT/DELETE语句进行表操作);加深理解表定义对数据更新作用。二、实验内容(一)在表S,C,SC上完毕如下查询:1查询学生基本信息;2查询“CS”系学生基本信息;3查询“CS”系学生年龄不在19到21之间学生学号、姓名;4找出“CS”系年龄最大学生,显示其学号、姓名;5找出各系年龄最大学生,显示其学号、姓名;6记录“CS”系学生人数;7记录各系学生人数,成果按升序排列;8按系记录各系学生平均年龄,成果按降序排列;9查询无先修课课程课程名和学时数;10记录每位学生选修课程门数
10、、学分及其平均成绩; 11记录选修每门课程学生人数及各门课程平均成绩;12找出平均成绩在85分以上学生,成果按系分组,并按平均成绩升序排列;13查询选修了“1”或“2”号课程学生学号和姓名;14查询选修了课程名为“数据库系统”且成绩在60分如下学生学号、姓名和成绩;15查询每位学生选修了课程学生信息(显示:学号,姓名,课程号,课程名,成绩);16查询没有选修课程学生基本信息;17查询选修了3门以上课程学生学号;18查询选修课程成绩至少有一门在80分以上学生学号;19查询选修课程成绩均在80分以上学生学号;(二)在表S、C、SC中完毕下列更新:1 将数据分别插入表S、C、SC;2 将表S、C、S
11、C中数据保存在磁盘上。3 在表S、C、SC上练习数据插入、修改、删除操作。(比较在表上定义/未定义主码(Primary Key)或外码(Foreign Key)时状况)4 将表S、C、SC中数据所有删除,再运用磁盘上备份数据来恢复数据。5 如果要在表SC中插入某个学生选课信息(如:学号为“001005”,课程号为“c123”,成绩待定),应如何进行?6 求各系学生平均成绩,并把成果存入数据库;7 将“CS”系全体学生成绩置零;8 删除“CS”系全体学生选课记录;9 删除学号为“S1”有关信息;10将学号为“S1”学生学号修改为“S001”;11把平均成绩不不大于80分男同窗学号和平均成绩存入另
12、一种表SGRADE(SNO,AVG_GRADE);12把选修了课程名为“数据构造”学生成绩提高10%;13把选修了“C2”号课程,且成绩低于该门课程平均成绩学生成绩删除掉。三、实验规定:1 熟悉SQL SERVER 工作环境;2连接到学生-课程数据库3复习对表中数据查询SQL语言命令;复习对表中数据插入、修改和删除SQL语言命令,理解这些更新语句基本语法和用法。四、实验环节查询:1在表、上进行简朴查询、连接查询、嵌套查询;2使用聚合函数查询、对数据分组查询、对数据排序查询。插入:1将数据插入当前数据库表、中;(1)用命令形式;(2)使用SQL Server Management Studio(
13、简称SSMS)(或公司管理器)以交互方式进行;2 将以上插入数据分别以.SQL文献和.txt文献形式保存在磁盘上;3 修改表、中数据;(1)用命令形式(2)用SSMS以交互方式进行4 删除表、中数据。(1)用命令形式(2)用SSMS以交互方式进行五、实验报告1完毕本项目实验后,学生应提交实验报告。2实验报告格式与规定见附件。附录 实例1 对于student表,将所有专业号为001,并且入年份为学生,或是专业号为003,并且年龄不大于20岁学生班级号改为001。环节:新建查询-输入代码:use edudb-假设数据库为edudb goUPDATE studentstudent是 edudb中学生
14、信息表SET classno=001WHERE spno=001 AND entime= or spno=003 and (-birthday)202 对于student表,删掉所有年龄不大于20岁,并且专业号为003学生记录。环节:新建查询-输入代码: use edudbgoDELETE FROM studentWHERE (-birthday)20 and spno=003 3 对于student表,插入一条新记录,它详细信息为,学号:00302、姓名:李伟龙、性别:男、出生日期:19880808、院系编号:001、专业编号:01、班级号:003、入学时间:0901。环节:新建查询-输入代
15、码:INSERT INTO student (sno,sname,sex,birthday,dno,spno,classno,entime)values (00302,李伟龙,男,880808,001,001,003,0901)(注意:要将学号类型改为char(10),否则长度不够无法执行)实验3视图与完整性约束实验学时: 4 每组人数: 1 实验类型: 2 (1:基本性 2:综合性 3:设计性 4:研究性)实验规定: 1 (1:必修 2:选修 3:其他)实验类别: 3 (1:基本 2:专业基本 3:专业 4:其他)一、实验目学习灵活纯熟进行视图操作,结识视图作用;掌握完整性控制办法。1.熟悉
16、和掌握对数据表中视图定义操作和SQL命令使用;2.熟悉和掌握对数据表中视图查询操作和SQL命令使用;3.熟悉和掌握对数据表中视图更新操作和SQL命令使用,并注意视图更新与基本表更新区别与联系;4熟悉SQL语言对数据库进行完整性控制办法。二、实验内容(一)以S ,C ,SC表为基本完毕如下视图定义及使用1定义“SSCH”院学生基本状况视图V_SSCH;2将S,C,SC表中学生学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G;3将各院学生人数,平均年龄定义为视图V_NUM_AVG;4将各位学生选修课程门数及平均成绩定义为视图V_AVG_S_G并查询成果;5 查询平均成绩为90分以上学生学号
17、、姓名和成绩;6 通过视图V_SSCH,新增长一种学生记录 (S12,YAN XI,19,SSCH),并查询成果;7通过视图V_SSCH,删除学号为“S12”学生信息,并查询成果;8将视图V_SSCH中学号为“S12”学生改名“中南人”。 (二)使用SQL进行数据完整性控制:涉及三类完整性、check短语、constrain子句。1. 在创立下列关系表时完毕如下约束:定义实体完整性;参照完整性(外码、在删除S中元组时级联删除SC中相应元组、当更新S中Sno时同步更新SC中Sno);顾客定义完整性:学生年龄1 begin print 此删除操作也许会删除多条人事表数据! rollback tra
18、nsaction enddelete from employeewhere sex=女 /*成果:所影响行数为0*/2、显示女职工工号,姓名(1)声明一种游标语法:DECLARE CURSOR FOR ;(2)打开该游标;语法:open (3)将该游标内容提取到变量中;Fetch Into declare cur_emp_gender scroll cursor for定义游标 select emp_no ,emp_name from employee where sex=F order by emp_noopen cur_emp_gender打开游标declare no,namefetch
19、next from cur_emp_gender into no,name读数据到局部变量 while(FETCH_STATUS=0) begin select no,namefetch next from cur_emp_gender into no,namerend close cur_emp_gender关闭deallocate cur_emp_gender释放附件:实验报告格式与规定XXXXX(课程名称)实验报告项目名称 专业班级 学 号 姓 名 实验成绩:批阅教师:年 月 日正文规定实验1XXXXX(项目名称)实验学时: 实验地点: 实验日期: 一、实验目指出本次实验应当达到学习目的。二、实验内容指出本次实验应完毕任务。三、实验办法涉及实验办法、原理、技术、方案等。四、实验环节指出完毕该实验操作环节。五、实验成果记录实验输出数据和成果。六、实验结论对实验数据和成果进行分析描述,给出实验获得成果和结论。注:有程序规定附上程序源代码,有图表要有截图并有相应文字阐明和分析七、实验小结给出本次实验体会,如学会了什么,遇到哪些问题,如何解决这些问题,存在哪些有待改进地方。