实验参考答案 全书实验参考答案.docx
- 文档编号:145387
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:41
- 大小:960.68KB
实验参考答案 全书实验参考答案.docx
《实验参考答案 全书实验参考答案.docx》由会员分享,可在线阅读,更多相关《实验参考答案 全书实验参考答案.docx(41页珍藏版)》请在冰点文库上搜索。
10.1实验一SQLServer数据库基本操作
一.实验目的
本实验主要了解MicrosoftSQLServer2000中各组件的主要功能和基本使用方法;了解SQLServer数据库的逻辑结构和物理结构;了解数据表的结构特点以及索引的基本概念。
通过本实验,读者将学会在“企业管理器”中创建和修改数据库和数据表结构、对数据表进行数据的添加、删除和更新操作以及在数据表上创建字段索引的操作。
二.实验环境
lMicrosoftSQLServer2000企业管理器
三.实验内容
1.创建一个名称为Book的数据库,支持教材订购信息管理,要求:
(1)将主数据库文件Book_Data.MDF放置在的D:
\DBF文件夹中,文件大小为
5MB,最大值为50MB,文件增量为2MB。
实验参考步骤:
1)在D:
\下创建DBF文件夹。
2)在企业管理器窗口右单击“数据库”或任一数据库名,从快捷菜单中选择“新建数据库”命令,出现
“数据库属性”对话框。
3)在“数据库属性”对话框中选择“常规”选项卡,在名称文本框中输入:
Book;
4)在“数据库属性”对话框中选择“数据文件”选项卡,设置数据文件的位置、大小、最大值和文件增量等属性;
5)在“数据库属性”对话框中选择“事务日志”选项卡,设置事务日志文件的位置、大小、最大值和文件增量等属性。
(2)将事务日志文件Book_Log.LDF放置在的D:
\DBF文件夹中,文件大小为5MB,最大值为100MB,文件增量为1MB。
2.在上题所建数据库Book中建立5张数据表结构并分别向数据表插入记录。
实验参考步骤:
在企业管理器中展开Book数据库。
右击数据库文件夹下的“表”项,从弹出的快捷菜单中选择“新建表”命令,弹出“表设计”界面,分别建立5张表的结构,并且为各个表建立主关键字。
实验参考步骤:
:
1)在企业管理器中展开Book数据库。
右击数据库文件夹下的“关系图”项,从弹出的快捷菜单中选择
“新建数据库关系图”命令。
2)通过“创建数据库关系图向导”新建关系图。
3.创建T_Teacher、T_Academy、T_BookInfo、T_Publisher和T_BookOrder5个表之间的关系。
实验参考步骤:
在企业管理器中展开Book数据库中的表文件夹,右单击需插入记录的数据表,从弹出的快捷菜单中选择
“打开表/返回所有行”命令。
在数据表显示界面中依次输入记录。
4.任选两个数据表插入3-5条记录(例如T_BookInfo、T_BookOrder、T_Teacher),各数据表记录如表9-xb)所示。
5.将T-teacher表“TeacherName”字段的类型改为Varchar(16)。
为T_BookOrder表添加
约束条件,使得“StuBookNum”和“TeaBookNum”的取值都大于0;“OrderTime”大于2007
实验参考步骤:
1)在企业管理器中展开Book数据库中的表文件夹,右击T-teacher表,选择“表设计”,进入T-teacher
表结构设计界面,修改“TeacherName”字段的类型。
2)在企业管理器中展开Book数据库表文件夹,右击T_BookOrder表,选择“表设计”,进入
T_BookOrder表结构设计界面,右单击T_BookOrder表结构设计界面,从弹出的快捷菜单中选择
“CHECK约束”命令,在“属性”对话框的“CHECK约束”选项卡中点击“新建”按钮分别设置约束条件。
年。
6.练习记录数据的添加、删除和更新操作。
在T_Teacher表中添加记录“01010117、黄蓉、
实验参考步骤:
在企业管理器中展开Book数据库表文件夹,右击T-teacher表,选择“打开表/返回所有行”,进入T-
teacher表数据行显示界面,进行数据的添加、删除和更新操作。
13、女、1977-9-21、副教授、63478445”。
将T_Teacher表中TeacherCode为“01010113”的记录删除;将TeacherCode为“01010116”记录的title字段内容更新为“教授”。
7.在企业管理器中练习索引的创建和删除。
在“TeacherName”(降序)和“AcadCode”
实验参考步骤:
方法1:
在企业管理器中展开Book数据库表文件夹,右击T_Teacher表,选择“表设计”,进入T_Teacher表结构设计界面,右单击T_Teacher表结构设计界面,从弹出的快捷菜单中选择“索引/键”命令,在“属性”对话框的“索引/键”选项卡中点击“新建”按钮进行“Name_Code”索引的建立。
方法2:
在企业管理器中展开Book数据库表文件夹,右击T-teacher表,选择“所有任务/管理索引”,打开“管理索引”窗口,进行索引的建立和编辑。
(升序)上建立一个名称为“Name_Code”的普通索引。
删除“Name_Code”索引。
10.2实验二T-SQL语言基本操作
一.实验目的
本实验主要了解T-SQL语句以及在查询分析器中执行T-SQL语句的方法。
通过本实验,读者将了解使用T-SQL语句创建数据库和数据表;掌握数据库查询语句Select语句的基本语法及使用方法;掌握对数据表进行数据插入、修改和删除的T-SQL语句;了解T-
SQL语言的各种运算符、控制语句的功能并学会简单的程序编写。
二.实验环境
lMicrosoftSQLServer2000查询分析器和MicrosoftSQLServer2000企业管理器
lBook数据库
三.实验内容
1.利用企业管理器中提供的“生成SQL脚本”命令编写Book数据库中数据表对象
“T_Teacher”、“T_BookOrder”、“T_BookInfo”、“T_Publisher”、“T_Academy”创建的脚本文件D:
\Table.sql。
实验参考步骤:
1)在企业管理器右单击Book数据库,选择“所有任务/生成SQL脚本”菜单,打开“生成SQL脚本”
窗口,点击“全部显示”按钮。
2)按要求添加写入脚本的对象,点击“确定”按钮,打开“另存为”对话框,设置脚本文件名称。
CREATEDATABASEBookON
(NAME=Book_Data,FILENAME='D:
\DBF\BOOK_Data.MDF',SIZE=5MB,
MAXSIZE=50MB,FILEGROWTH=2MB)LOGON
(NAME=Book_log,FILENAME='D:
\DBF\Book_Log.LDF',SIZE=5MB,
MAXSIZE=100MB,
FILEGROWTH=1MB)
2.在查询分析器中使用T-SQL语句完成实验一中的第1题。
3.编写SELECT语句,建立以下查询
SELECT*
FROMT_BookInfo
1)显示T_BookInfo表中所有字段的值。
USEBook
SELECTTeacherCode,TeacherName,EnterDate,TitleFROMT_Teacher
2)查询T_Teacher表中所有记录的TeacherCode、TeacherName、EnterDate和Title字段信息。
SELECTTeacherNameAS姓名
FROMT_Teacher
WHERESex='男'
3)查询男教师的姓名(TeacherName),显示时将字段名TeacherName改为“姓名”。
SELECTBookNameAS教材名称,
PublishDateAS出版日期,StockNumAS库存量
FROMT_BookInfo
WHEREyear(PublishDate)>='2007'
或
SELECTBookNameAS教材名称,
PublishDateAS出版日期,StockNumAS库存量
FROMT_BookInfo
WHEREPublishDate>='2007-01-01'
4)查询2007年以后出版的教材名称(BookName)、出版日期(PublishDate)和库存量(StockNum),显示时字段标题分别为:
教材名称、出版日期和库存量。
SELECTDISTINCTPublisherCode
FROMT_BookInfo
5)查询所有教材的出版社代码(PublisherCode),将重复的记录去掉。
6)查询学生订书量(StuBookNum)最大的3个记录,显示教材代号(BookCode)和学生订书量(StuBookNum)。
SELECTtop3BookCode,StuBookNumFROMT_BookOrder
ORDERBYStuBookNumDESC
图7
SELECTBookCode,TeacherCode,StuBookNum,OrderTimeFROMT_BookOrder
WHERE(StuBookNumBETWEEN150AND250)
7)查询学生订书量(StuBookNum)在150到250之间的教材信息。
SELECTBookCodeAS教材代号,SUM(StuBookNum)AS学生订书数量
FROMT_BookOrder
GROUPBYBookCode
8)查询每一种教材的学生订书总量。
9)查询书名为“VB程序设计”的教材的学生总订量(StuBookNum)和教师总订量
SELECTSUM(StuBookNum)AS学生总订量,SUM(TeaBookNum)AS教师总订量,(SUM(StuBookNum)+SUM(TeaBookNum))AS总订量
FROMT_BookInfo,T_BookOrder
WHERET_BookInfo.BookCode=T_BookOrder.BookCodeANDBookName='VB程序设计'或
SELECTSUM(StuBookNum)AS学生总订量,SUM(TeaBookNum)AS教师总订量,(SUM(StuBookNum)+SUM(TeaBookNum))AS总订量
FROMT_BookInfoINNERJOINT_BookOrder
ONT_BookInfo.BookCode=T_BookOrder.BookCodeWHEREBookName='VB程序设计'
(TeaBookNum)和总订量。
SELECTstr(Max(Price),5,2)AS最高价,str(Min(Price),5,2)AS最低价,str(AVG(Price),5,2)AS平均价,str((Max(Price)-Min(Price)),5,2)AS差值
FROMT_BookInfo
10)显示教材的最高价、最低价、平均价、最高价与最低价之间的差值。
SELECTT_BookInfo.BookName,T_BookInfo.Author,T_BookInfo.Price,T_BookInfo.StockNum,T_Publisher.PublisherCode,T_Publisher.PublisherFROMT_Publisher,T_BookInfo
WHERET_Publisher.PublisherCode=T_BookInfo.PublisherCodeAND
11)查询出版社代号(PublisherCode)为10、02、31的出版社所出版的教材信息。
要求显示教材名称(BookName)、作者(Author)、价格(Price)、库存(StockNum)和出版社名称(Publisher)。
T_Publisher.PublisherCodeIN('10','02','31')
或:
SELECTT_BookInfo.BookName,T_BookInfo.Author,T_BookInfo.Price,T_BookInfo.StockNum,T_Publisher.PublisherCode,T_Publisher.PublisherFROMT_PublisherINNERJOINT_BookInfo
ONT_Publisher.PublisherCode=T_BookInfo.PublisherCode
WHERET_Publisher.PublisherCodeIN('10','02','31')
SELECTT_Teacher.TeacherCode,TeacherName,AcadName,TelephoneFROMT_BookOrder,T_Teacher,T_Academy
WHERET_Teacher.TeacherCode=T_BookOrder.TeacherCode
ANDT_Teacher.AcadCode=T_Academy.AcadCodeANDTakeAway=0ORDERBYAcadNameDESC
或:
SELECTT_Teacher.TeacherCode,TeacherName,AcadName,TelephoneFROMT_AcademyINNERJOIN
(T_TeacherINNERJOINT_BookOrder
ONT_Teacher.TeacherCode=T_BookOrder.TeacherCode)ONT_Academy.AcadCode=T_Teacher.AcadCode
WHERETakeAway=0
ORDERBYAcadNameDESC
12)查询没有领书的教师信息。
要求显示TeacherCode(教师工号)、TeacherName(姓名)、AcadName(学院名称)和Telephone(电话号码),并按学院名称降序排列。
13)查询人文学院教师所订教材的信息。
要求显示教材代码(BookCode)、数量
SELECTBookCode,StuBookNum+TeaBookNumAS数量,OrderTime
FROMT_BookOrder
WHERETeacherCodeIN(SELECTTeacherCodeFROMT_Teacher
WHEREAcadCode=(SELECTAcadCodeFROMT_Academy
WHEREAcadName='人文学院'))
或:
SELECTBookCode,StuBookNum+TeaBookNumAS数量,OrderTimeFROMT_BookOrder
WHERETeacherCodeIN(SELECTTeacherCode
FROMT_TeacherINNERJOINT_Academy
ONT_Teacher.AcadCode=T_Academy.AcadCodeWHEREAcadName='人文学院')
(StuBookNum+TeaBookNum)和订教材日期(OrderTime)。
14)查询姓名字符数大于等于4个字符的作者情况,要求显示作者姓名(Author)、教材名称(BookName)。
SELECTAuthor,BookNameFromT_BookInfo
WHERELEN(Author)>=4
DECLARE@cnsmallint,@textvarchar(100)
SELECT@cn=(SELECTStuBookNum+TeaBookNumFROMT_BookOrder
WHERETeacherCode='01010109')IF@cn>0
SET@text='该教师预订教材数量'+str(@cn)
ELSE
SET@text='该教师没有预订教材'SELECT@text
15)查询教师工号(TeacherCode)为“01010109”的教师是否已预订教材,若已预订则显示所订教材的数量;否则显示:
“该教师没有预订教材”。
4.使用联接关键字(JOIN――ON)建立查询
SELECTTeacherName,AcadName
FROMT_Teacher INNERJOINT_AcademyONT_Teacher.AcadCode=T_Academy.AcadCodeORDERBYT_Teacher.AcadCode
1)查询所有教师姓名(TeacherName)及所属学院名称(AcadName)。
(提示:
本题使用INNER JOIN完成查询)
SELECTAcadName,TeacherName
FROMT_AcademyLEFTOUTERJOINT_TeacherONT_Academy.AcadCode=T_Teacher.AcadCode
2)查询所有学院名称(AcadName)及每个学院的教师姓名(TeacherName)。
(提示:
本题使用LEFT OUTER JOIN完成查询)
SELECTTeacherName,BookCode
FROM T_BookOrderRIGHTOUTERJOINT_TeacherONT_BookOrder.TeacherCode=T_Teacher.TeacherCode
3)查询所有教师姓名(TeacherName)及所订教材代号(BookCode)。
(提示:
本题使用RIGHT OUTER JOIN完成查询)
4)查询所有已订教材的教师姓名(TeacherName)、教材代号(BookCode)及教材名称
SELECTTeacherName,T_BookOrder.BookCode,BookNameFromT_TeacherINNERJOIN
(T_BookOrderINNERJOINT_BookInfo
ONT_BookOrder.BookCode=T_BookInfo.BookCode)ONT_Teacher.TeacherCode=T_BookOrder.TeacherCode
(BookName)。
(提示:
本题使用嵌套的INNER JOIN完成查询)
5.使用SELECT语句复制数据表
1)将T_BookOrder表中的教师编号(TeacherCode)、教材代号(BookCode)、学生用书量
SELECTTeacherCode,T_BookOrder.BookCode,BookName,StuBookNum,TeaBookNumINTONewTable1
FROMT_BookInfo,T_BookOrder
WHERET_BookInfo.BookCode=T_BookOrder.BookCode
或:
SELECTBookName,T_BookOrder.BookCode,StuBookNum,TeaBookNumINTONewTable1
FROMT_BookOrderINNERJOINT_BookInfo
ONT_BookOrder.BookCode=T_BookInfo.BookCode
(StuBookNum)、教师用书量(TeaBookNum)字段及对应的书名(BookName)复制到新表NewTable1中。
SELECTTeacherName,Sex,AcadNameINTONewTable2
FROMT_Teacher,T_Academy
WHERET_Teacher.AcadCode=T_Academy.AcadCode
或:
SELECTTeacherName,Sex,AcadNameINTONewTable2
FROMT_Teacher INNERJOINT_Academy
ONT_Teacher.AcadCode=T_Academy.AcadCode
2)将T_Teacher表中的教师姓名(TeacherName)、性别(Sex)字段及每个教师所属的学院名称(AcadName)复制到新表NewTable2中。
6.使用DELECT语句练习删除操作
DELETEFROMNewTable1
WHEREStuBookNum+TeaBookNum<60
1)删除NewTable1表中学生用书量(StuBookNum)和教师用书量(TeaBookNum)之和低于60的记录。
DELETEFROMNewTable2
WHERELEFT(TeacherName,1)='王'ORLEFT(TeacherName,1)='杨'
或:
DELETEFROMNewTable2
WHERETeacherNameLIKE'王%'ORTeacherNameLIKE'杨%'
2)删除NewTable2表中姓“王”和姓“杨”的记录。
DELETEFROMNewTable1
WHERETeacherCodeIN(SELECTT_Teacher.TeacherCodeFromT_TeacherINNERJOINT_Academy
ONT_Teacher.AcadCode=T_Academy.AcadCode
WhereAcadName='体育部')
3)删除NewTable1中“体育部”教师的订书记录。
7.使用INSERT语句练习插入操作
INSERTINTONewTable2(TeacherName,Sex,AcadName)
VALUES('吴清','女','计算机科学与技术学院')
1)在NewTable2表中添加一条记录,姓名:
吴清、性别:
女、学院名称:
计算机科学与技术学院。
INSERTINTONewTable2
SELECTTeacherName,Sex,AcadName
FROMT_TeacherINNERJOINT_Academy
ONT_Teacher.AcadCode=T_Academy.AcadCode
WHERELEFT(TeacherName,1)='王'ORLEFT(TeacherName,1)='杨'
2)将T_Teacher表中姓“王”和姓“杨”的记录添
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验参考答案 全书实验参考答案 实验 参考答案 全书