SQL数据库技术实验报告.docx
- 文档编号:23912906
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:33
- 大小:860.85KB
SQL数据库技术实验报告.docx
《SQL数据库技术实验报告.docx》由会员分享,可在线阅读,更多相关《SQL数据库技术实验报告.docx(33页珍藏版)》请在冰豆网上搜索。
SQL数据库技术实验报告
实验须知
⒈实验前,请认真阅读本次实验的全部内容,明确实验目的和实验任务,做好必要的实验准备。
遇到较为复杂的程序应事先设计算法,可能的话,应写出程序代码。
⒉实验前,应注意收集平时学习中遇到的疑点,留作实验中验证、解决。
⒊提前五分钟以上进入实验室,不得迟到。
⒋实验中积极思考、及时记录,有新的发现、新的收获或新的疑问的,及时记录,争取当堂完成实验报告。
⒌珍惜实验时间,不开小差、不做与实验无关的事,更不得打游戏、或上网聊天;如需要上网查阅资料的,应事先征得实验老师的同意。
⒍保持实验室安静和清洁卫生,不得大声喧哗;不得在实验室吃东西。
⒎实验结束时,整理好台桌和凳子,关闭电脑及显示器,安排值日同学,打扫实验室卫生。
⒏实验报告应字迹工整,标点符号准确无误;书写程序时应使用缩进格式,必要时还可以添加适当的注释,增强程序的可读性。
⒐如实认真填写问题解决与实验收获两部分,如果问题还未解决,也应将问题记下,留作今后解决。
实验一、SQLServer2005的认识
实验日期:
______年______月______日成绩:
_____________
一、实验目的
1.了解SQLServer2005特点
2.了解SQLServer2005的安装
3.学习配置SQLServer服务器
二、实验内容
1、SQLServer2005对硬件环境的要求
(1)处理器、内存要求
32位平台上需要PentiumⅢ兼容处理器或更高速度的处理器,最低处理器速度为600MHZ(推荐1GB或者更快),最小内存512MB(推荐1GB或者更大)。
64位平台,IA64的需要Itanium或更高级的处理器,最低处理器速度1GB或者更快,最小内存512MB(推荐1GB或者更大)。
X64需要AMDOpteron、AMDAthlon64、支持IntelEM64T技术的IntelXenon或支持EM64T技术的InterlPentiumⅣ处理器,最小处理器速度1GHz或者更大,最小内存512MB(推荐1GB或者更大)。
(2)磁盘空间要求
在安装SQLServer2005的过程中,WindowsInstaller将在系统驱动器上创建临时文件。
在运行安装程序以安装或升级到SQLServer2005前,请验证系统的驱动器上有1.6GB的可用磁盘空间来容纳这些文件,即使将SQLServer组件安装到非默认驱动器上,此要求同样适用。
2、对操作系统的要求
3、对Internet的要求
4、基本安装过程
(1)将SQLServer2005安装光盘插入光驱后,将出现如图5-1所示的安装启动对话框。
(2)单击“安装”下的“服务器组件、工具、联机丛书和示例”,出现如图5-2所示的对话框,选择“我接受许可条款和条件”选项。
(3)单击“下一步”按钮,出现如图5-3所示的对话框。
在对话框中列出了安装SQLServer2005前必先安装的4个组件(如果已经安装则不会显示)。
单击“安装”按钮,开始安装和
配置这4个组件。
(4)全部安装成功后,会出现如图5-4所示的对话框。
(5)单击“下一步”按钮,打开如图5-5所示的对话框。
(6)单击“下一步”按钮,在如图5-6所示的对话框中,将检查系统中是否有潜在的安装问题(例如检查操作系统、计算机的硬件配置等是否满足安装的最低要求),并对不满足安装要求的软硬件配置发出警告。
如果符合要求就显示“成功”;若不满足要求则显示“警告”,但是不影响继续安装;若显示“错误”,对话框中的“下一步”按钮不能单击,也就是无法安装数据库系统。
(7)单击“下一步”按钮,安装程序进行一些必要的准备工作后,出现如图5-7所示的对话框,填写注册信息。
(8)单击“下一步”按钮,出现如图5-8所示的对话框,在此选择要安装的组件。
(9)单击“下一步”按钮,出现如图5-9所示的对话框,用于设置服务器的实例名,一般情况下选择“默认实例”,但也可以选择“命名实例”,表示为服务器命名。
(10)单击“下一步”按钮,出现如图5-10所示的对话框。
可以为每个服务定义不同的账户,也可以为所有的账户定义统一的登录账户;可以使用系统内置的账户,也可以使用域用户账户。
(11)单击“下一步”按钮,出现如图5-11所示的对话框。
(12)在排序规则设置时,指定SQLServer实例的排序方式。
一般采用默认设置,单击“下一步”按钮,打开如图5-12所示的对话框,取消选择复选框将禁止向Microsoft发送错误报告,或者任意选择一个。
(13)单击“下一步”按钮,打开如图5-13所示的对话框,列出用户选择的安装组件。
(14)单击“安装”按钮,打开如图5-14所示的对话框,开始安装SQLServer2005的选定组件。
安装过程可能持续比较长的时间。
(15)单击“下一步”按钮,打开如图5-15所示的对话框。
这时单击“完成”按钮就成功安装了SQLServer2005。
5、启动SQLServerManagementStudio
操作步骤如下:
(1)选择“开始”菜单上的“程序”|MicrosoftSQLServer2005|SQLServerManagementStudio命令,弹出“连接到服务器”对话框,如图5-23所示。
(2)SQLServerManagementStudio提供数据库引擎、AnalysisServices、ReportingServices、SQLServerMobile和IntegrationServices五种服务器类型,这里选择服务器类型为“数据库引擎”。
(3)如果是第一次启动SQLServerManagementStudio,需要选择登录账户。
单击“服务器名称”文本框后面的下拉箭头,选择“浏览更多”命令,弹出“查找服务器”对话框。
如图5-24所示,在“本地服务器”选项卡中,选择“数据库引擎”选项的登录账户COMPUTER(本地计算机名称COMPUTER),或打开“网络服务器”选项卡查找网络上服务器并进行选择。
(4)选择“身份验证”方式,Windows身份验证或SQLServer身份验证,输入登录名和密码。
(5)单击“连接”按钮,进入MicrosoftSQLServerManagementStudio窗口,如图5-25所示。
三、实验思考
安装完SQLServe后,系统创建哪两个系统管理员登录账户?
安装完SQLServe后,会自动创建两个系统管理员登录账户:
一个是基于Windows认证模式的账户BUILTIN\Administrators,另一个是基于SQLServer认证模式的账户sa,sa拥有最高的管理权限,可以执行服务器范围内的所有操作。
sa也把全部权限赋给BUILTIN\Administrators账户,使BUILTIN\Administrators与sa具有同等权限。
四、实验小结
实验二数据库创建
实验日期:
______年______月______日成绩:
_____________
一、实验目的
1.掌握修改数据库的逻辑名和物理名
2.掌握向数据库中增加文件、删除文件
3.掌握把数据库文件备份和还原
二、实验内容
1、创建学生信息数据库
要求创建学生信息数据库。
数据库选项采取默认设置。
CREATEDATABASEstudent
ON
(NAME=student_data,
FILENAME='c:
\student_data.mdf'
)
LOGON
(NAME=student_log,
FILENAME='c:
\student_data.ldf')
2、创建职工信息数据库
要求创建职工信息数据库,并把数据库文件和事务日志文件放在指定目录下。
CREATEDATABASEemployee
ON
(NAME=employee_data,
FILENAME='d:
\mssql\data\employee_data.mdf'
)
LOGON
(NAME='employee_log',
FILENAME='d:
\mssql\data\employee_data.ldf')
3.修改学生信息数据库
在上次创建学生信息数据库时,除了数据库名需要指定外,其他均采用SQLSever2000默认设置,其数据文件属性默认设置为按10%增长,现在要将其修改为按1MB进行增长。
ALTERDATABASEstudent
MODIFYFILE(NAME='student_data',
filegrowth=1mb)
GO
4.修改职工信息数据库
修改上次创建的数据库employee,添加一个次数据库文件。
次数据库文件名为“employee_Data2.NDF”。
该文件的扩充增容模式采取按10%增长,即采取默认设置。
USEMASTER
GO
ALTERDATABASEEmployee
ADDFILE
(NAME=employee2_Data2,
FILENAME='D:
\MSSQL\Data\employee2_Data2.ndf',
FILEGROWTH=10%)
GO
5.Drop语句删除数据库(Dropdatabase数据库名)
删除Student1数据库
DropdatabaseStudent1
三、实验思考
数据文件分为哪几类?
分别有何作用?
数据文件分为下述3类。
(1)主要数据文件(.MDF):
主要存放数据库的启动信息,并用于存储数据。
每个数据库有且仅有一个主要数据文件。
(2)次要数据文件(.NDF):
次要数据文件也是用来存储数据的,它含有不能置于主要数据文件中的所有数据。
如果主要数据文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。
如果数据库很大,主要数据文件的容量超过了系统的限制,就需要设置一个或多个次要数据文件,并将它们放在不同的磁盘上。
(3)事务日志文件(.LDF):
主要包含用于恢复数据库的所有日志信息,这使得数据库出现故障或崩溃时可以把它恢复到最近状态,从而最大限度的减少由此带来的损失。
每个数据库中必须至少包含一个日志文件,也可以有多个日志文件。
四、实验小结
实验三数据表结构的建立与维护
实验日期:
______年______月______日成绩:
_____________
一、实验目的
1.熟悉SQLSERVER中的数据类型。
2.掌握表结构的建立和维护方法。
3.掌握索引的建立与删除
二、实验内容
1、利用SQL语句完成创建“stu_info”(学生基本信息表)。
CREATETABLEstu_info
(
stu_idCHAR(7)NOTNULLPRIMARYKEY,
nameVARCHAR(8)NOTNULL,
sexCHAR
(2)CHECK(sex='男'orsex='女'),
borndateSMALLDATETIME,
peop_idVARCHAR(18)NULLUNIQUE,
class_idCHAR(5)NOTNULL)
2、利用SQL语句完成创建学生成绩表(result_info),
CREATETABLEresult_info
(
term_noCHAR(8)NOTNULL,
stu_idCHAR(7)NOTNULL,
course_noCHAR(3)NOTNULL,
resultSMALLINTCHECK(resultbetween-1and100)DEFAULT-1,
PRIMARYKEY(term_no,stu_id,course_no),
FOREIGNKEY(stu_id)REFERENCESstu_info(stu_id)
)
3、向stu_info数据表中添加“comedate”(入学日期)字段。
ALTERTABLEstu_infoADDcomedateSMALLDATETIMENULL
4、将stu_info数据表中的“name”字段的数据类型修改为varchar(10),完整性约束修改为“允许为空”。
ALTERTABLEstu_infoALTERCOLUMNnameVARCHAR(10)NULL
5、将stu_info数据表中的“comedate”字段删除。
ALTERTABLEstu_infoDROPCOLUMNcomedate
6、删除stu_info表
DROPTABLEstu_info
7、为学生基本信息表(stu_info)建立索引,要求按学号升序建立唯一索引。
CREATEUNIQUEINDEXstu_inONstu_info(stu_id)
8、为学生成绩表(result_info)建立索引,要求按学期编号升序、课程编号和学号降序建立唯一索引。
CREATEUNIQUEINDEXres_inONresult_info
(term_noASC,course_noDESC,stu_idDESC)
9、删除学生成绩表(result_info)中的索引“res_in”。
DROPINDEXresult_info.res_in
三、实验思考
1、唯一性约束有什么什么作用?
与主键约束有何区别?
唯一性约束指定表的一列或多列的组合的值在表中具有唯一性,以防止在列中输入重复的值。
主键约束与唯一性约束的区别是:
(1)在一个表中只能定义一个主键约束,但可定义多个唯一性约束。
(2)指定为主键约束的列不能取空值,但指定为唯一性约束的列允许取空值。
2、CHECK约束有什么作用?
CHECK约束用于限制输入到一列或多列的值的范围,保证数据库的数据完整性。
四、实验小结
实验四数据查询
实验日期:
______年______月______日成绩:
_____________
一、实验目的
1.掌握SELECT语句的参数的含义
2.掌握SELECT语句的各参数的设置
3.掌握SELECT数据查询的使用
二、实验内容
1、显示“stu_info”表中的“stu_id”、“class_id”和“name”字段。
SELECTstu_id,class_id,nameFROMstu_info
2、显示“stu_info”表中的所有字段。
SELECT*FROMstu_info
3、显示“stu_info”表中的“stu_id”、“name”和“sex”字段。
字段名称分别指定为“学号”、“姓名”和“性别”。
SELECTstu_idAS学号,name姓名,性别=sexFROMstu_info
4、显示“stu_info”表中的所有学生的姓名和年龄。
SELECTnameAS姓名,year(getdate())-year(borndate)as年龄fromstu_info
5、显示“stu_info”表中的所有学生的姓名和身份证号。
SELECTnameAS姓名,'身份证号:
',peop_idAS身份证号
FROMstu_info
6、显示“stu_info”表中的所有学生的班级编号。
SELECTALLclass_idFROMstu_info
(或者)SELECTclass_idFROMstu_info
去掉重复记录的语句为:
SELECTDISTINCTclass_idFROMstu_info
只显示前三个班级的编号的语句:
SELECTTOP3class_idFROMstu_info
7、显示“stu_info”表中所有男生的记录。
SELECT*FROMstu_infoWHEREsex='男'
8、显示“stu_info”表中所有班级编号不是“07001”的学生记录。
SELECT*FROMstu_infoWHEREclass_id<>'07001'
9、显示“stu_info”表中所有1988年出生的男生记录。
SELECT*FROMstu_infoWHEREsex='男'andyear(borndate)=1988
10、显示“stu_info”表中班级编号为“07001”或者性别为女生的学生记录。
SELECT*FROMstu_infoWHEREsex='女'ORclass_id='07001'
11、显示“stu_info”表中户籍不是天津市的学生记录。
SELECT*FROMstu_infoWHERENOTsubstring(peop_id,1,3)='120'
12、显示“stu_info”表中所有姓“张”的学生记录。
SELECT*FROMstu_infoWHEREnameLIKE'张%'
13、显示“stu_info”表中所有姓“张”和姓“李”的学生记录。
SELECT*FROMstu_infoWHEREnamelike'张%'ornamelike'李%'
(或者)SELECT*FROMstu_infoWHEREnamelike'[张,李]%'
14、显示“stu_info”表中年龄在18至20岁之间的学生的姓名和性别。
SELECTname,sexFROMstu_info
WHEREyear(getdate())-year(borndate)BETWEEN18AND20
15、显示“stu_info”表中身份证号码内容为空的学生记录。
SELECT*FROMstu_infoWHEREpeop_idISNULL
16、显示“stu_info”表中班级编号为“07001”和“07002”的学生记录。
SELECT*FROMstu_infoWHEREclass_id='07001'ORclass_id='07002'
(或者)SELECT*FROMstu_infoWHEREclass_idIN(07001,07002)
17、显示“stu_info”表中班级编号不是“07001”和“07002”的学生记录。
SELECT*FROMstu_infoWHEREclass_idNOTIN(07001,07002)
(或者)SELECT*FROMstu_infoWHERENOTclass_idIN(07001,07002)
18、显示“stu_info”表中的学生记录,查询结果按姓名进行升序排序。
SELECT*FROMstu_infoORDERBYname
19、显示“stu_info”表中的学生记录,查询结果按班级编号进行升序排序,同一班级的学生按照学号降序排序。
SELECT*FROMstu_infoORDERBYclass_id,stu_idDESC
20、统计“stu_info”表中各班的人数,在查询结果中显示班级编号和该班人数。
SELECTclass_idas班级编号,count(class_id)as人数
FROMstu_infoGROUPBYclass_id
21、将“stu_info”表中总人数大于或等于2人的班级编号和人数显示出来。
SELECTclass_idas班级编号,count(class_id)as人数
FROMstu_infoGROUPBYclass_idHAVINGcount(class_id)>=2
22、查询每个学生的基本情况和每门课程的成绩。
SELECTstu_info.*,result_info.*
FROMstu_info,result_info
WHEREstu_info.stu_id=result_info.stu_id
23、查询每个学生每门课程的成绩,结果表中要显示“course_info”(课程信息表)中的课程名称等内容。
SELECTstu_info.*,course_info.*,result_info.*
FROMstu_info,course_info,result_info
WHEREstu_info.stu_id=result_info.stu_idAND
result_info.course_no=course_info.course_no
24、查询每个学生每门课程的成绩,结果表中只显示学号、姓名、学期编号、课程编号和成绩几个字段。
SELECTstu_info.stu_id,name,term_no,course_no,result
FROMstu_info,result_info
WHEREstu_info.stu_id=result_info.stu_id
25、查询选修了课程编号为“001”的课程的学生的基本信息。
SELECT*FROMstu_info
WHEREstu_idIN
(SELECTstu_idFROMresult_info
WHEREcourse_no='001')
26、查询与“张三”同班的学生信息。
SELECT*FROMstu_info
WHEREclass_id=(SELECTclass_idFROMstu_infoWHEREname='张三')
三、实验思考
嵌套查询有何特点?
(1)每级查询的from子句一般只包含一个表名。
(2)一个嵌套查询总可以分解为若干个单表查询,总可以改写成连接查询。
(3)若查询结果显示的属性名来自一个表,才可以写成嵌套查询。
(4)子查询不能使用orderby子句,orderby只能用于最顶层的查询。
四、实验小结
实验五数据表的操作
实验日期:
______年______月______日成绩:
_____________
一、实验目的
1、掌握记录插入的方法。
2、掌握记录修改的方法。
3、掌握记录删除的方法。
二、实验内容
1、在student表中插入一行新记录,学号为95006,姓名为李光荣,性别为男,年龄为21,系为CS。
INSERTINTOstudentVALUES('95006','李光荣','男','21','CS')
2、95006号学生选修了4号课程,但尚无成绩。
在sc表中插入该信息。
INSERTINTOsc(sno,cno)VALUES('95006','4')
3、建立一个表student1,其结构与student表相同。
将表student表中CS系的学生信息复制到student1表中。
INSERTINTOstudent1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库技术 实验 报告