数据库原理实验指导书带SQL语句.docx
《数据库原理实验指导书带SQL语句.docx》由会员分享,可在线阅读,更多相关《数据库原理实验指导书带SQL语句.docx(31页珍藏版)》请在冰豆网上搜索。
![数据库原理实验指导书带SQL语句.docx](https://file1.bdocx.com/fileroot1/2023-2/22/f2294106-ae17-4fb8-9e35-8b4fb4a62d4a/f2294106-ae17-4fb8-9e35-8b4fb4a62d4a1.gif)
数据库原理实验指导书带SQL语句
数据库原理—数据库原理与应用实验指导书
实验一SQLSERVER2000的安装
一、学时:
2学时
二、实验目的
了解安装SQLSERVER2000的软、硬件环境以及安装过程;
三、实验准备
1.SQLSERVER2000安装盘;
2.计算机
四、实验方法及步骤
1.了解SQLSERVER2000的版本介绍
SQLSERVER2000不同版本的软件环境要求
SQLServer版本或组件
操作系统要求
企业版
MicrosoftWindowsNTServer、MicrosoftWindowsNTServer企业版、Windows2000Server、Windows2000AdvancedServer和Windows2000DataCenterServer。
注意:
SQLServer2000的某些功能必须要求在MicrosoftWindows2000Server(任何版本)上运行。
标准版
MicrosoftWindowsNTServer、Windows2000Server、MicrosoftWindowsNTServer企业版、Windows2000AdvancedServer和Windows2000DataCenterServer。
个人版
MicrosoftWindowsMe、Windows98、WindowsNTWorkstation、Windows2000Professional、MicrosoftWindowsNTServer、Windows2000Server和所有更高级的Windows操作系统。
开发版
MicrosoftWindowsNTWorkstation、Windows2000Professional和所有其它WindowsNT和Windows2000操作系统。
桌面引擎
MicrosoftWindowsMe、Windows98、WindowsNTWorkstation、Windows2000Professional、MicrosoftWindowsNTServer、Windows2000Server和所有更高级的Windows操作系统。
仅客户端工具
MicrosoftWindowsNT、Windows2000(所有版本)、WindowsMe和Windows98。
仅连接
MicrosoftWindowsNT、Windows2000(所有版本)、WindowsMe、Windows98和Windows95。
2.SQLSERVER2000的安装
(1)将企业版安装光盘插入光驱后,出现以下提示框。
注意:
如果您的计算机的操作系统是windows95以上,则选择“安装SQLServer2000
组件”,如果操作系统是windows95,则需要选择“安装SQLServer2000的先决条件”。
由于SQLServer2000的某些功能要求在MicrosoftWindows2000Server以上的版本才能运行。
因此安装WindowsServer2000(建议为Advanced版本),可以学习和使用到SQLServer2000的更多功能,以及享受更好的性能。
本安装将在Windows2000AdvancedServer操作系统作为示例,详细介绍安装SQLServer2000企业版的过程。
大家清首先安装Windows2000AdvancedServer。
(2)选择"安装SQLServer2000组件",出现下一个页面。
(3)选择"安装数据库服务器",出现如下界面:
(4)选择"下一步",出现如下界面:
(5)选择’本地计算机’(默认)选项,选择"下一步",出现如下界面:
在"安装选择"窗口,选择"创建新的SQLServer实例..."。
对于初次安装的用户,应选用这一安装模式,不需要使用"高级选项"进行安装。
"高级选项"中的内容均可在安装完成后进行调整。
选择"下一步",出现如下界面:
(6)在"用户信息"窗口,输入用户信息,并接受软件许可证协议。
(7)在"安装定义"窗口,选择"服务器和客户端工具"选项进行安装。
我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作,对于我们学习SQLServer很有用处。
如果你已经在其它机器上安装了SQLServer,则可以只安装客户端工具,用于对其它机器上SQLServer的存取。
(8)在"实例名"窗口,选择"默认"的实例名称。
这时本SQLServer的名称将和Windows2000服务器的名称相同。
例如笔者的Windows服务器名称是"Darkroad",则SQLServer的名字也是"Darkroad"。
SQLServer2000可以在同一台服务器上安装多个实例,也就是你可以重复安装几次。
这时您就需要选择不同的实例名称了。
建议将实例名限制在10个字符之内。
实例名会出现在各种SQLServer和系统工具的用户界面中,因此,名称越短越容易读取。
另外,实例名称不能是"Default"或"MSSQLServer"以及SQLServer的保留关键字等。
(9)在"安装类型"窗口,选择"典型"安装选项,并指定"目的文件夹"。
程序和数据文件的默认安装位置都是"C:
\ProgramFiles\MicrosoftSQLServer\"。
因为C盘是系统区、D盘是应用区,因此选择了D盘。
(10)在"服务账号"窗口,请选择"对每个服务使用统一账户..."的选项。
在"服务设置"处,选择"使用本地系统账户"。
如果需要"使用域用户账户"的话,请将该用户添加至WindowsServer的本机管理员组中。
(11)在"身份验证模式"窗口,请选择"混合模式..."选项,并设置管理员"sa"账号的密码。
如果您的目的只是为了学习的话,可以将该密码设置为空,以方便登录。
如果是真正的应用系统,则千万需要设置和保管好该密码!
如果需要更高的安全性,则可以选择"Windows身份验证模式",这时就只有WindowsServer的本地用户和域用户才能使用SQLServer了。
(12)在"选择许可模式"窗口,根据您购买的类型和数量输入(0表示没有数量限制)。
"每客户"表示同一时间最多允许的连接数,"处理器许可证"表示该服务器最多能安装多少个CPU。
这里选择了"每客户"并输入了100作为示例。
(13)然后就是约10分钟左右的安装时间,单击‘完成’系统安装完毕。
附:
企业管理器和查询分析器的介绍
企业管理器和查询分析器是SQLSERVER2000实验的主要工具,下面分别对这两类工具进行介绍:
1、企业管理器:
(1)按图所示找到SQLSERVER2000中的企业管理器;
(2)用鼠标单击企业管理器菜单项,进入企业管理器管理界面:
根据图形界面,可进行数据库、表等的管理。
2、查询分析器:
所有的SQL语句操作都在查询分析器中运行,对查询分析器的使用要熟练掌握。
(1)按图所示找到SQLSERVER2000中的查询分析器;
(2)用鼠标单击查询分析器菜单项,进入查询分析器界面:
(3)若以Windows身份验证进入,可直接点击‘确定’;若以SQLserver身份验证,可输入登陆用户名及登陆密码;‘sa’是超级用户;身份验证通过后,可进入查询分析器界面如下:
在查询分析器界面中,左边是数据库构成对象;右边分上下两部分:
上面部分是查询分析器的SQL语句编辑部分,实验中的SQL语句在此部分进行编辑;下边部分是SQL语句的执行结果区域,SQL语句的执行结果在此部分显示。
查询分析器的使用注意以下问题:
(a)SQL语句所作的操作都是基于当前数据库的,进入界面的默认数据库是master数据库,如不在master数据上操作,请在界面上部切换到你要操作的数据库。
(b)SQL语句执行时,用鼠标点击界面工具条中的绿色箭头;语句执行完毕后结果显示在界面右部的下面的区域。
(c)SQL语句的执行是从第1句开始执行,为了仅执行部分SQL语句,可采用两重方法:
第一是用鼠标选种执行的部分,然后点击绿色箭头进行执行;
第二是把不执行的SQL语句用注释符号屏蔽掉。
注释符号有两种。
‘--’符号是行注释,仅注释1行;‘/**/’是多行内容注释,把不执行的语句放在‘/*’与‘*/’之间。
(d)SQL语句可保存在磁盘上。
实验二数据库及表的定义
一、学时:
4学时
二、实验目的
熟悉和掌握数据库的创建和连接方法;
熟悉和掌握数据库表的建立、修改和删除;
加深对表的实体完整性、参照完整性和用户自定义完整性的理解;
三、实验准备
1、熟悉SQLSERVER工作环境;
2、复习有关表的建立、修改和删除的SQL语言命令;
四、实验内容
在以下实验中,使用学生-课程数据库,用SQL语句描述学生的基本信息、课程的基本信息及学生选修课程的信息。
1、创建学生-课程数据库(student)
createdatabasestudent
2、创建学生关系表S;
学号
姓名
性别
年龄
所在系
Sno
Sname
Ssex
Sage
sdept
usestudent
createtables
(snochar(8)notnull,
Snamechar(8)notnull,
Ssexchar
(2),
Sageint,
Sdeptchar(30)
)
3、创建课程关系表C;
课程号
课程名
先行课
学分
Cno
Cname
Cpno
ccredit
usestudent
createtablec
(cnochar(3)notnull,
cnamechar(30)notnull,
cpnochar(3),
ccreditdecimal
)
4、创建课程关系表SC;
学号
课程号
成绩
Sno
Cno
grade
usestudent
createtablesc
(snochar(8)notnull,
cnochar(3)notnull,
gradedecimal
)
5、删除表S的“年龄”属性列;
usestudent
altertablesdropcolumnSage
6、增加表S的“年龄”属性列;
usestudent
altertablesaddSageint
7、增加表的其他属性列;
8、删除表的其他属性列;;
9、在表S上,按Sno属性列的唯一值方式建立索引;
usestudent
Createuniqueindexsons(snoasc)
删除此索引:
usestudent
dropindex
10、在表c上,按cno属性列的唯一值方式建立索引;
usestudent
Createuniqueindexconc(cnoasc)
11、在表SC上,按sno、cno属性列建立索引;
usestudent
Createuniqueindexsconsc(snoasc,cnodesc)
12、更改表sc的属性列grade的类型为numeric;
usestudent
altertablescaltercolumngradenumeric
13、保存上面操作的SQL语句到文件中;
点击菜单‘文件’==》‘保存’或‘另存为’
14、删除表;
Droptables
Droptablec
Droptablesc
15、删除数据库;
usemaster
dropdatabasestudent
实验三数据插入、更新、与删除
一、学时:
2学时
二、实验目的
熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用;
加深理解表的定义和数据更新的作用
三、实验准备
1、建立数据库student、表S、C、SC以及索引
2、复习对表中数据的插入、修改和删除的SQL语言命令;
四、实验内容
1、用SQL语句将适量数据分别插入表S、C、SC;
Insertintos(sno,sname,ssex,sage,sdept)Values('','李勇','男','20','cs')
Insertintos(sno,sname,ssex,sage,sdept)Values('','刘晨','女','19','cs')
Insertintos(sno,sname,ssex,sage,sdept)Values('','王敏','女','18','ma')
Insertintos(sno,sname,ssex,sage,sdept)Values('','张立','男','19','is')
..............................
Insertintoc(cno,cname,cpno,ccredit)Values('1','数据库','5',4)
Insertintoc(cno,cname,cpno,ccredit)Values('2','数学',null,2)
Insertintoc(cno,cname,cpno,ccredit)Values('3','信息系统','1',4)
Insertintoc(cno,cname,cpno,ccredit)Values('4','操作系统','6',3)
Insertintoc(cno,cname,cpno,ccredit)Values('5','数据结构','7',4)
Insertintoc(cno,cname,cpno,ccredit)Values('6','数据处理',null,2)
Insertintoc(cno,cname,cpno,ccredit)Values('7','pascal语言','6',4)
..............................
Insertintosc(sno,cno,grade)Values('','1',92)
Insertintosc(sno,cno,grade)Values('','2',85)
Insertintosc(sno,cno,grade)Values('','3',88)
Insertintosc(sno,cno,grade)Values('','2',90)
Insertintosc(sno,cno,grade)Values('','3',80)
..............................
2、求各系学生的平均成绩;
usestudent
selectsdept,avg(grade)
froms,sc
where=
groupbysdept
3、将“CS”系全体学生的成绩置零;
usestudent
updatesc
setgrade=0
froms,sc
where=and='CS'
4、删除“CS”系全体学生的选课记录;
usestudent
DELETEC
FROMS,C,SC
WHERE=AND=and='CS'
5、删除学号为“20080001”的相关信息;
usestudent
deleteswheresno=''
deletescwheresno=''
6、将s表中学号为“20080002”的学生的学号修改为“S002”;
usestudent
updates
setsno='s002'
wheresno=''
7、把平均成绩大于80分的男同学的学号和平均成绩存入另一个表S_Grade(Sno,AVG_Grade);
usestudent
createtableS_Grade
(
snochar(8)notnull,
AVG_Gradedecimal
)
usestudent
insertS_Grade(sno,AVG_Grade)
selectsno,avg(grade)
fromsc
groupbysno
8、把选修了课程名为“数据结构”的学生的成绩提高10%;
usestudent
updatesc
setgrade=grade*
fromc,sc
where=and='数据结构'
9、把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;
usestudent
updatesc
setgrade=grade*
fromsc
where='2'
andgrade<(selectavg(grade)fromscwhere='2')
10、把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;
usestudent
deletesc
fromsc
where='2'
andgrade<(selectavg(grade)fromscwhere='2')
实验四数据查询
一、学时:
4学时
二、实验目的
熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练地使用
SQL语句的各种形式;
三、实验准备
1、熟悉SQLSERVER工作环境;
2、复习对表中数据查询的SQL语言命令;
四、实验内容
1、根据实验二、三建立的SQL语句,建立相关的数据库、表及插入相关信息
2、查询学生的基本信息;
usestudent
select*froms
3、查询“CS”系学生的基本信息;
usestudent
select*fromswheresdept='cs'
4、查询“CS”系学生年龄不在19到21之间的学生的学号、姓名;
usestudent
selectsno,snamefroms
wheresdept='cs'and(sage<19orsage>21)
5、找出最大年龄;
usestudent
selectmax(sage)froms
6、找出“CS”系年龄最大的学生,显示其学号、姓名;
selectsno,sname
froms
wheresdept='cs'andsage=(
selectmax(sage)fromswheresdept='cs'
)
7、找出各系年龄最大的学生的年龄;
selectsdept,max(sage)
froms
Groupbysdept
8、统计“CS”系学生的人数;
9、统计各系学生的人数,结果按升序排列;
10、按系统计各系学生的平均年龄,结果按降序排列;
11、查询每门课程的课程名;
12、查询无先修课的课程的课程名和学时数;
13、统计无先修课的课程的学时总数;
14、统计每位学生选修课程的门数、学分及其平均成绩;
15、统计选修每门课程的学生人数及各门课程的平均成绩;
16、找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排
列;
17、查询选修了“1”或“2”号课程的学生学号和姓名;
18、查询选修了“1”和“2”号课程的学生学号和姓名;
19、查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩;
20、查询每位学生选修了课程的学生信息(显示:
学号,姓名,课程号,课程名,成绩);
21、查询没有选修课程的学生的基本信息;
22、查询选修了3门以上课程的学生学号;
23、查询选修课程成绩至少有一门在80分以上的学生学号;
24、查询选修课程成绩均在80分以上的学生学号;
25、查询选修课程平均成绩在80分以上的学生学号;
实验五视图的定义和使用
一、学时:
2学时
二、实验目的
熟悉掌握对数据表中视图的定义操作和SQL命令的使用;
熟悉掌握对数据表中视图的查询操作和SQL命令的使用;
熟悉掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系;
学习灵活熟练的进行视图的操作,认识视图的作用;
三、实验准备
1、熟悉SQLSERVER工作环境;
2、复习有关视图操作的SQL语言命令;
四、实验内容
以S、C、SC表为基础完成以下视图定义及使用
1、定义“IS”系学生基本情况视图V_IS并查询结果;
2、将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G并查询结果;
3、将各系学生人数,平均年龄定义为视图V_NUM_AVG并查询结果;
4、定义一个反映学生出生年份的视图V_YEAR并查询结果;
5、将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;
6、将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G并查询结果;
7、查询平均成绩为90分以上的学生学号、姓名和成绩;
8、查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;
9、按系统计各系平均成绩在80分以上的人数,结果按降序排列;
10、通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM”并查询结果;
11、通过视图V_IS,新增加一个学生记录(‘S12’,’YANXI’,19,’IS’),并查询结果;
12、通过视图V_IS,新增加一个学生记录('S13','YANXI',19,'MA'),并查询结果;
13、通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果;
14、要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现
15、要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现
实验六数据完整性
一、学时:
2学时
二、实验目的
熟悉和掌握使用SQL查询分析器用PRIMARYKEY、CHECK、FOREIGNKEY……REFERENCES、NOTNULL、UNIQUE等关键字验证SQLSERVER2000的实体完整性、参照完整性及用户定义完整性。
三、实验准备
1、熟悉SQLSERVER工作环境;
2、复习有关建表操作的SQL语言命令;
四、实验内容
1、利用SQL查询分析器用PRIMARY