数据库实验答案.docx
- 文档编号:7165777
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:41
- 大小:45.56KB
数据库实验答案.docx
《数据库实验答案.docx》由会员分享,可在线阅读,更多相关《数据库实验答案.docx(41页珍藏版)》请在冰豆网上搜索。
数据库实验答案
数据库原理与应用习题·实验·实训
部分答案
鲁艳霞邵欣欣曹晶华
第8章关系数据库查询语言SQL实验
8.1SQLSERVER2000系统的安装与配置
思考题
1.SQLSERVER2000的版本有几个?
分别是什么?
答:
SQLServer2000有四个版本:
企业版/标准版/个人版/开发版。
企业版和标准版需要安装在服务器操作系统上,如WindowsNTServer/Windows2000Server/Windows2003Server等。
个人版需要安装在个人操作系统上,如Windows98/Windows2000Professional/WindowsXPHome/WindowsXPProfessional等。
开发版可以安装在任何微软的操作系统上。
SQLServer2000企业版
作为生产数据库服务器使用。
支持SQLServer2000中的所有可用功能,并可根据支持最大的Web站点和企业联机事务处理(OLTP)及数据仓库系统所需的性能水平进行伸缩。
SQLServer2000标准版
作为小工作组或部门的数据库服务器使用。
SQLServer2000个人版
供移动的用户使用,这些用户有时从网络上断开,但所运行的应用程序需要SQLServer数据存储。
在客户端计算机上运行需要本地SQLServer数据存储的独立应用程序时也使用个人版。
SQLServer2000开发版
供程序员用来开发将SQLServer2000用作数据存储的应用程序。
虽然开发版支持企业版的所有功能,使开发人员能够编写和测试可使用这些功能的应用程序,但是只能将开发版作为开发和测试系统使用,不能作为生产服务器使用。
2.安装SQLSERVER2000时需要注意哪些问题?
答:
安装SQLSERVER2000的要求如下:
硬件
最低要求
处理器
PentiumII或更高
内存(RAM)
至少64MB,建议128MB或更多。
硬盘空间
需要约250MB的程序空间,以及预留200M的数据空间
显示器
需要设置成至少800x600模式,才能使用其图形分析工具
安装注意事项如下:
(1)关闭所有可能与SQLSERVER2000系统有关的服务和应用程序。
这包括所有利用到ODBC的应用程序,以及WINDOWSNT自带的IIS。
(2)如果正在WINDOWSNT的事件查看器,先关闭该查看器。
(3)如果运行管理或修改注册表的任何程序,如REGEDIT32,请先关闭。
(4)如果是在WINDOWSNT上安装SQLSERVER2000,并且希望以后能运行在服务器之间相互通讯的程序和服务,那么事先创建一个用于分配给MSSQLSERVER服务器、SQLSERVERAGENT服务、和MS-DTC服务的域用户账户(DOMAINUSERACCOUNT),可以为每项服务分别创建一个账号,也可以为创建一个统一的账号。
(5)在安装SQLSERVER2000以前先以拥有管理员权限的账号登录操作系统。
8.2数据库的创建与管理
思考题
1.SQLSERVER数据库由哪两类文件组成?
这些文件的扩展名分别是什么?
答:
每个SQLServer2000数据库(无论是系统数据库还是用户数据库)在物理上都由至少一个数据文件和至少一个日志文件组成。
出于分配和管理目的,可以将数据库文件分成不同的文件组。
主要数据文件的默认文件扩展名是.mdf。
日志文件的默认文件扩展名是.1df。
2.数据文件和日志文件的作用是什么?
答:
数据文件:
分为主要数据文件和次要数据文件两种形式。
每个数据库都有且只有一个主要数据文件。
主要数据文件的默认文件扩展名是.mdf。
它将数据存储在表和索引中,包含数据库的启动信息,还包含一些系统表,这些表记载数据库对象及其他文件的位置信息。
次要数据文件包含除主要数据文件外的所有数据文件。
有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件。
次要数据文件的默认文件扩展名是.ndf。
日志文件:
SQLServer具有事务功能,以保证数据库操作的一致性和完整性。
所谓事务就是一个单元的工作,该单元的工作要么全部完成,要么全部不完成。
日志文件用来记录数据库中已发生的所有修改和执行每次修改的事务。
SQLServer是遵守先写日志再执行数据库修改的数据库系统,因此如果出现数据库系统崩溃,数据库管理员(DBA)可以通过日志文件完成数据库的修复与重建。
每个数据库必须至少有一个日志文件,但可以不止一个。
日志文件的默认文件扩展名是.1df。
建立数据库时,SQI。
Server会自动建立数据库的日志文件。
日志文件记录一切数据库的操作。
包括执行的SQL语句。
8.3数据表的创建
1.createdatabase学生管理数据库/*创建学生管理数据库*/
use学生管理数据库/*打开学生管理数据库*/
2.createtableCourse(/*创建Course表*/
Cnochar(10)primarykey,
Cnamechar(20)notnull,
Ccreditintcheck(Ccredit>0),
Semsterintcheck(Semster>0),
Periodintcheck(Period>0)
)
3.createtableStudent(/*创建Student表*/
Snochar(7)primarykey,
Snamechar(10)notnull,
Ssexchar
(2)check(Ssex='男'orSsex='女'),
Sageintcheck(Sage>=15andSage<=45),
Sdeptchar(20)default'计算机系'
)
4.createtableSC(/*创建SC表*/
Snochar(7),
Cnochar(10),
Gradeintcheck(Grade>=0andGrade<=100)
primarykey(Sno,Cno),
foreignkey(Cno)referencesCourse(Cno),
foreignkey(Sno)referencesStudent(Sno)
)
8.4数据表的维护与管理
1.altertablestudentadd电话号码char(8)
2.altertablestudentdropcolumn电话号码
3.altertablecoursealtercolumncnamechar(40)notnull
4.
(1)insertintostudentvalues('','陈东','男',18,'信管系')
(2)insertintocoursevalues('c08','logidtic',2,1,32)
5.略
6.略
7.
(1)insertintostudentvalues('','张明',null)
(2)insertintoscvalues('','c08',null)
(3)updatestudentsetsage=sage+1
(4)updatescsetgrade=44wheregrade=60
(5)deletefromscwheregrade<60
8.5SQL简单查询功能
1.selectSno,SnamefromStudentorderbySno
2.select*fromCourse
3.selectSnoas学号,Gradeas成绩fromSCwhereGrade<70
4.selectdistinctSnofromSC
5.selectSno,GradefromSCwhereCno='C03'andGrade>70
6.selectSnofromSCwherecno='C03'andGradebetween70and80
7.select*fromStudentwhereSdept='计算机系'orSdept='信管系'
8.selectsno,grade=grade+10fromscwherecno='c03'
9.selectCno,GradefromSCwhereSno=''
10.selecttop3*fromStudent
11.select*fromStudentwhereSnamelike'%王%'
12.select*fromCoursewhereCnamenotlike'%数据%'
13.selectSname姓名,2008-Sage出生年份fromStudent
14.select*fromCoursewhereCnamelike'%DB\_%'escape'\'
15.selectSno,CnofromSCwhereGradeisnull
16.select*fromSCorderbySno,Cnodesc
17.selectSname,Sdept,SagefromStudentwhereSagenotbetween20and23
18.selectSname,SnofromStudentwhereSnamelike'_[小大]%'
19.select*fromStudentorderbySdept,Sagedesc
8.6SQL高级查询功能
1.selectSdept,count(*)fromStudentgroupbySdept
2.selectmax(Sage),min(Sage)fromStudentwhereSdept='信管系'
3.selectsnamefromstudentwheresagein(selectmax(sage)fromstudentwheresdept='信管系')
selectsnamefromstudentwheresagein(selectmin(sage)fromstudentwheresdept='信管系')
4.selectmax(grade)max,min(grade)min,sum(grade)sum,avg(grade)avgfromscgroupbycnohavingcno='c01'
5.selectStudent.Sno,Sname,Cname,GradefromStudent,SC,CoursewhereStudent.Sno=SC.SnoandCourse.Cno=SC.Cno
6.selectCno,count(Sno)fromSCgroupbyCno
7.selectSno,count(Cno),sum(Grade)fromSCgroupbySno
8.selecto,cnamefromsc,coursewheresc.snoisnullando=o
9.selectdistinctsnamefromstudent,scwherestudent.sno=sc.snoandsc.snoin(selectsnofromscgroupbysnohavingavg(grade)>80)
10.selectSdept,SnamefromStudentwhereSnoin
(selectSnofromSCwhereCno='C03')
selectSdept,SnamefromStudent,SCwhereStudent.Sno=SC.SnoandCno='C03'
11.selectSnamefromStudentwhereSnoin(
selectSnofromSCwhereGrade>80andCnoin(
selectCnofromCoursewhereCname='数据库基础'))
selectSnamefromStudent,SC,CoursewhereStudent.Sno=SC.SnoandCourse.Cno=SC.CnoandCname='数据库基础'andGrade>80
12.selectdistinctCnamefromCoursewhereCnoin(
selectCnofromSCgroupbyCnohavingavg(Grade)>70)
13.selectSname,SdeptfromStudentwhereSnoin(
selectSnofromSCgroupbySnohavingavg(Grade)>70)
14.selectStudent.Sno,Sname,Course.Cno,Cname,GradefromStudent,SC,CoursewhereStudent.Sno=SC.SnoandCourse.Cno=SC.Cno
15.selectSno,sum(Grade)fromSCgroupbySno
16.selectSno,sum(Grade)fromSCgroupbySnohavingsum(Grade)>150
17.selectSnofromSCgroupbySnohavingcount(Cno)>=3
18.selectsname,cname,gradefromsc,student,coursewheresdept=’信管系’
8.7视图的创建与管理
1.启动查询分析器
2.createviewIS_StudentASselect*fromstudentwheresdept='信管系'
3.createviewC_courseasselect*fromcoursewhereccredit='4'
4.createviews_student(sno,sname,sage,sdept,grade)as
selectsc.sno,sname,sage,sdept,gradefromstudent,scwherestudent.sno=sc.snoandgrade>90
5.createviewc_student(sno,sname,sage,sdept,grade,cname)
as
selectsc.sno,sname,sage,sdept,grade,cname
fromcourse,sc,student
wheresc.sno=student.snoando=oandgrade>85andcname='DB'
6.createviewSC_student(sno,sname,sage,sdept)
as
selectsc.sno,sname,sage,sdept
fromstudent,sc
wherestudent.sno=sc.snoandstudent.snoin
(selectsnofromscgroupbysnohavingavg(grade)>70
)
7.dropviewc_course
第10章数据库设计实验
10.1数据库设计基础实验
1.设计能够表示出班级与学生关系的数据库。
①确定班级实体和学生实体的属性。
班级(班号,专业名,系名,入学年份,人数)
学生(学号,姓名,年龄)
②确定班级和学生之间的联系,给联系命名并指出联系的类型。
包含类型:
1对多
③确定联系本身的属性。
没有属性
④画出班级与学生关系的E-R图。
⑤将E-R图转化为关系模式,写出各关系模式并标明各自的主码或外码。
班级(班号,专业名,系名,入学年份,人数)
学生(学号,姓名,年龄,班号)
2.设计能够表示出顾客与商品关系的数据库。
①确定顾客实体和商品实体的属性。
顾客(顾客号,顾客姓名,年龄、性别,地址,单位,电话号码)
商品(商品编号,商品名称,型号,单价)
②确定顾客和商品之间的联系,给联系命名并指出联系的类型。
购买多对多
③确定联系本身的属性。
购买(数量、日期)
④画出顾客与商品关系的E-R图。
⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。
顾客(顾客号,顾客姓名,年龄、性别,地址,单位,电话号码)
商品(商品编号,商品名称,型号,单价)
购买(商品编号,顾客号,数量,日期)
3.设计能够表示学校与校长关系的数据库。
①确定学校实体和校长实体的属性。
学生(学号,姓名,年龄,专业名,系名,入学年份)
学校校长(校长姓名,身份证号,婚否,办公室地址)
②确定学校和校长之间的联系,给联系命名并指出联系的类型。
管理1对多
③确定联系本身的属性。
管理(学校名称、地址)
④画出学校与校长关系的E-R图。
⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。
学生(学号,姓名,年龄,专业名,系名,入学年份,学校名称,地址,校长姓名)
学校校长(校长姓名,身份证号,婚否,办公室地址)
4.设计能够表示出房地产交易中客户,业务员和合同三者之间关系的数据库。
1确定客户实体,业务员实体和合同实体的属性。
业务员(业务员编号、业务员姓名、家庭住址、电话)
客户(客户编号,客户姓名,客户地址,电话)
合同(合同编号,签订日期)
2确定客户,业务员和合同三者之间的联系,给联系命名并指出联系的类型。
业务员和客户之间拥有多对多
客户和合同之间签订1对多
3确定联系本身的属性。
拥有(建立联系的时间)
签订(签订时间,签订地点)
4画出客户,业务员和合同三者关系E-R图。
⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。
业务员(业务员编号、业务员姓名、家庭住址、电话)
客户(客户编号,客户姓名,客户地址,电话)
合同(合同编号,签订日期,签订地点,客户编号)
拥有(业务员编号,客户编号,建立联系的时间)
10.2数据库设计综合应用实验
1.根据需求提炼出实体
实体包括:
分支机构贷款客户逐次支付员工账户
2.确定实体间的联系
发放:
分支机构贷款
借贷:
贷款客户
支付:
贷款逐次支付
服务:
客户员工
储蓄:
客户账户
3.确定各个实体和联系的属性
分支机构(名称、地点、电话、法人代表)
贷款(编号、金额、开始时间,结束时间、利率)
客户(客户编号、姓名、联系电话、信用额度、客户级别)
逐次支付(支付的时间、金额、利率)
员工(员工编号、姓名、部门、电话)
账户(账户编号、开立时间、)
发放(发放的时间、金额)
借贷(借代的时间、金额、利率)
支付(支付的时间、金额)
服务(服务的次数)
储蓄(储蓄时间、金额、利率)
4.设计E-R图
5.关系模型
分支机构(机构名称、地点、电话、法人代表)
贷款(贷款编号、金额、结束时间、利率、发放的时间、机构名称)
客户(客户编号、姓名、联系电话、信用额度、客户级别、员工编号、服务的次数)
逐次支付(支付编号、支付的时间、金额、利率、贷款编号)
员工(员工编号、姓名、部门、电话)
账户(账户编号、开立时间)
借贷(贷款编号、客户编号、借代的时间、金额、利率)
储蓄(客户编号、账户编号、储蓄时间、金额、利率)
6.创建表的语句
createtable分支机构(
机构名称char(50),
地点char(100),
电话char(20),
法人代表char(20),
primarykey(机构名称))
createtable贷款(
贷款编号char(50),
金额char(50),
结束时间char(20),
利率char(20),
发放的时间char(20),
机构名称char(50),
primarykey(贷款编号),
foreignkey(机构名称)references分支机构(机构名称))
createtable客户(
客户编号char(50),
姓名char(50),
联系电话char(20),
信用额度char(50),
客户级别char(50),
员工编号char(50),
服务的次数char(0),
primarykey(客户编号),
foreignkey(员工编号)references员工(员工编号))
createtable逐次支付(
支付编号char(50),
支付的时间char(20),
金额char(50),
利率char(50),
贷款编号char(50),
primarykey(支付编号),
foreignkey(贷款编号)references贷款(贷款编号))
createtable员工(
员工编号char(50),
姓名char(50),
部门char(50),
电话char(50),
primarykey(员工编号))
createtable账户(
账户编号char(50),
开立时间char(20),
primarykey(账户编号))
createtable借贷(
贷款编号char(50),
客户编号char(50),
借代的时间char(20),
金额char(50),
利率char(50),
primarykey(贷款编号,客户编号)
foreignkey(贷款编号)references贷款(贷款编号)
foreignkey(客户编号)references客户(客户编号))
createtable储蓄(
账户编号char(50),
客户编号char(50),
储蓄时间char(20),
金额char(50),
利率char(50),
primarykey(账户编号,客户编号)
foreignkey(账户编号)references账户(账户编号)
foreignkey(客户编号)references客户(客户编号))
第12章开发数据库系统实例
12.1使用VisualBasic开发学生管理系统实例
查询代码
DimcnAsConnection
PrivateSubCommand1_Click()
DimcmdAsCommand
DimiAsString
Setcmd=NewCommand
Setrs=NewRecordset
i=Trim(Text1.Text)
With
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)