数据库实验五题目答案

合集下载

数据库实验内容-答案

数据库实验内容-答案

实验内容:实验一:数据库的操作使用Management Studio和sql语句分别完成以下操作:1.创建一个名为“SM”的数据库,数据文件初始大小为3MB,最大为50MB,数据库自动增长,增长方式按10%;日志文件初始大小为2MB,数据大小不受限制,按1MB增长。

create database smon(name='smdata',filename='e:\smdata.mdf',size=3,maxsize=50,filegrowth=10%)log on(name='smlog',filename='e:\smlog.ldf',size=2,maxsize=unlimited,filegrowth=1)2.修改数据库“SM”,将数据文件名改成“sm_data”,初始大小改成5MBalter database smmodify file( name='smdata',newname='sm_data',size=5)3.分别查看数据库“SM”,该数据库中的文件和文件组。

exec sp_helpfile smexec sp_helpfilegroup sm4.删除数据库“SM”。

drop database sm实验二:创建表1. 在数据库SM中创建学生表student,课程表course,选课表scstudent(sid,sno,clno,sname,ssex,sage,sbir)说明:sid int identity(1,1) 序号sno 为主关系键,为字符类型学号clno 字符类型,班级号sname 字符类型,并不为空ssex 字符类型,check的值的范围为男女sbir 日期类型出生日期sage int;use smcreate table student( sid int identity(1,1),sno char(10) constraint pk_st primary key,clno char(10),sname varchar(20) not null,ssex char(2) constraint ck_ssex check(ssex in('男','女')),sbir datetime,sage int)course(cno,cname,ccredits,ctno,cpno,ctime)说明:cno 字符类型,主关系键cname 字符类型,唯一键ccredits 学分,精确数值型,精确长度为2,小数位为1ctno ,cpno 字符类型ctime 整型create table course(cno char(4) constraint pk_c primary key,cname varchar(20) constaint uk_cname unique,ccredit decimal(2,1),ctno char(2),cpno char(4),ctime tinyint)sc(sno,cno,score)说明:sno+cno为主键,并且sno是student的外部键,cno是course的外部键。

数据库实验题目及答案

数据库实验题目及答案

数据库实验
一、题目
药品(编号,名称,价格,厂商)
处方(药品编号,数量,医生编号)
医生(编号,姓名,科室,职称)
根据上面基本表的信息完成下列查询。

1 列出医生“张力”开的所有药品名称。

2 列出比“北方制药”所有药品都贵的药品信息。

3 列出内科所有处方的医生姓名、药品名称、金额
二、答案
题目一
连接查询
select 名称
from Yao ,Chu,Dr
where Yao.编号=Chu.药品编号and Chu.医生编号=Dr.编号and 姓名='张力'
嵌套查询
select 名称
from Yao
where 编号in(select 药品编号
from Chu
where 医生编号in(select 编号
from Dr
where 姓名= '李丽'))
题目二
select *
from Yao
where 价格>all(select 价格from Yao where 厂商='北方制药')
题目三
select 姓名,名称,价格
from Yao ,Chu,Dr
where Yao.编号=Chu.药品编号and Chu.医生编号=Dr.编号and 科室='内科'。

大学 mysql实验报告(五)附答案

大学 mysql实验报告(五)附答案

实验报告(五)专业:班级:学号:姓名:实验名称:数据库的子查询、组合查询实验报告内容:1、写出习题3第75页第6题的2)3)5)6)小题的SQL语句2)查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。

SELECT 读者.读者号,姓名,书名,借出日期,归还日期FROM 读者, 图书,借阅WHERE 读者.读者号= 借阅.读者号AND 图书.图书号=借阅.图书号3)查询借阅了机械工业出版社出版,并且书名中包含’数据库’三个字的图书的读者,显示读者号、姓名、书名、出版社,借出日期、归还日期。

SELECT 读者.读者号,姓名,书名,出版社,借出日期,归还日期FROM 读者,图书,借阅WHERE 读者.读者号= 借阅.读者号AND 图书.图书号=借阅.图书号AND 出版社=‘机械工业出版社’ AND 书名LIKE’%数据库%’5)查询与’王平’的办公电话相同的读者的姓名。

SELECT R2.姓名FROM 读者R1, 读者R2where R1.办公电话= R2.办公电话AND R1.姓名='王小平'此语句等价与:SELECT 姓名FROM 读者WHERE 办公电话=(SELECT 办公电话FROM 读者WHERE 姓名='王小平')6)查询办公电话为’88320701’的所有读者的借阅情况,要求包括借阅了书籍的读者和没有借阅的读者,显示他们的读者号、姓名、书名、借阅日期。

SELECT 读者.读者号,姓名,图书号,借出日期FROM 读者, 借阅WHERE 读者.读者号*=借阅.读者号AND 办公电话=‘88320701’上述左外连接可可以用右外连接等价表示:SELECT 读者.读者号,姓名,图书号,借出日期FROM 读者,借阅WHERE 借阅.读者号=* 读者.读者号AND 办公电话=‘88320701’在SQLSERVER2000中,以上左外连接还可等价表示为:SELECT 读者.读者号,姓名,图书号,借出日期FROM 读者LEFT JOIN 借阅ON 读者.读者号= 借阅.读者号WHERE 办公电话=‘88320701’或者用右连接表示为:SELECT 读者.读者号,姓名,图书号,借出日期FROM 借阅RIGHT JOIN 读者ON 借阅.读者号= 读者.读者号WHERE 办公电话=‘88320701’2、写出习题3第75页第7题的1)2)4)8)小题的SQL语句1)查询所有单价小于平均单价的图书号、书名、出版社SELECT 图书号,书名,出版社FROM 图书WHERE 单价< (SELECT A VG(单价)’平均单价’ FROM 图书)2)查询’科学出版社’的图书中单价比’机械工业出版社’最高单价还高的的图书书名、单价。

数据库第五章习题及答案

数据库第五章习题及答案

数据库第五章习题及答案本文档为数据库第五章的习题及答案,帮助读者巩固数据库相关知识。

习题1. 数据库的优点有哪些?数据库具有以下优点: - 数据共享:多个用户可以同时访问和共享数据库中的数据。

- 数据一致性:数据库提供事务管理能力,保证了数据的一致性。

- 数据持久性:数据在数据库中是永久存储的,不会因为系统关机或程序结束而丢失。

- 数据冗余度低:数据库通过规范化设计,减少了数据的冗余性,提高了数据的存储效率。

- 数据独立性:数据库支持数据与应用程序的独立性,提高了系统的灵活性和维护性。

- 数据安全性:数据库提供了用户权限管理和数据备份机制,保证了数据的安全性。

2. 数据库的三级模式结构是什么?数据库的三级模式结构包括: - 外模式(视图层):外模式是用户所看到的数据库的子集,用于描述用户对数据库的逻辑视图。

每个用户可以有不同的外模式来满足自己的需求。

- 概念模式(逻辑层):概念模式是全局数据库的逻辑结构和组织方式,描述了数据的总体逻辑视图。

概念模式独立于具体的应用程序,是数据库管理员的角度来看待数据库的。

- 内模式(物理层):内模式是数据库的存储结构和物理组织方式,描述了数据在存储介质上的实际存储方式。

3. 数据库的完整性约束有哪些?数据库的完整性约束包括: - 实体完整性约束:确保表的主键不为空,每个实体都能够唯一标识。

- 参照完整性约束:确保外键的引用关系是有效的,即外键值必须等于被引用表中的主键值或者为空。

- 用户定义完整性约束:用户可以自定义额外的完整性约束,如检查约束、唯一约束、默认约束等。

4. 数据库的关系模型有哪些特点?数据库的关系模型具有以下特点: - 数据用二维表的形式进行组织,表由行和列组成,每一行表示一个实体,每一列表示一个属性。

- 表与表之间通过主键和外键建立关联关系,形成关系。

- 关系模型提供了一种数据独立性的设计方法,使得应用程序与数据的逻辑结构相分离,提高了系统的灵活性和可维护性。

数据库原理及应用实验答案

数据库原理及应用实验答案

数据库原理及应用实验答案1. 数据库原理数据库原理指的是数据库系统的内部机制和运行原理。

以下是数据库原理的相关内容:- 数据库模型:定义数据的组织方式和约束条件,包括层次模型、网状模型、关系模型、面向对象模型等。

- 数据库结构:描述数据库中数据组织的方式,包括表、视图、索引、存储过程等。

- 数据操作:定义对数据库中数据进行操作的方式,包括增删改查等。

- 数据库事务:保证数据库操作的一致性和完整性的机制,包括ACID(原子性、一致性、隔离性、持久性)属性等。

- 数据库并发控制:处理多个用户同时访问数据库产生的冲突问题,包括加锁、事务隔离级别等。

- 数据库恢复与备份:保证数据库数据不丢失和可恢复的机制,包括日志、回滚、快照等。

2. 数据库应用实验答案以下是数据库应用实验中的相关问题和答案:问题1:什么是数据库?答案:数据库是存储、管理和操作结构化数据的系统。

它提供了数据的组织方式和数据操作的接口,用户可以通过数据库来存储和访问数据。

问题2:数据库的优点是什么?答案:数据库的优点包括:数据共享性高,数据冗余度低,数据一致性好,数据安全性高,数据的集中管理和维护方便等。

问题3:什么是关系数据库?答案:关系数据库是基于关系模型的数据库系统。

它使用表描述数据之间的关系,在关系数据库中,数据以行和列的形式存储,并通过主键和外键来建立关联关系。

问题4:什么是SQL语言?答案:SQL(Structured Query Language)是用于访问和操作关系数据库的标准语言。

它包括数据查询语言(SELECT)、数据定义语言(CREATE、ALTER、DROP)、数据操作语言(INSERT、UPDATE、DELETE)和数据控制语言(GRANT、REVOKE)等。

问题5:什么是数据库调优?答案:数据库调优是指对数据库系统进行性能优化的过程。

它包括优化数据库结构、调整数据库参数、优化查询语句、优化索引和表分区、优化物理存储等方法,以提高数据库的性能和响应速度。

数据库实验指导书答案

数据库实验指导书答案

实验五查询数据库1)启动SQL Server查询分析器,打开“SQL查询分析器”窗口。

2)在“SQL查询分析器”窗口中选择要操作的数据库,如“XSCJ”数据库。

3)在KC表中查询学分低于3的课程信息,并按课程号升序排列。

select *From KCWhere 学分<=34)在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列。

Select学号,avg(成绩)From XS_KCGroup by学号Order by学号5)在XS_KC表中查询选修了3门以上课程的学生学号。

Select学号From XS_KCGroup by学号Having count(*)>=36)按学号对不及格的成绩记录进行明细汇总。

Select学号,成绩From XS_KCWhere成绩<607)分别用子查询和连接查询,求107号课程不及格的学生信息。

Select*From XSQKWhere学号in(select学号From XS_KCWhere课程号='107'and成绩<60 )8)用连接查询在XSQK表中查询与杨颖住在同一寝室的学生,即其联系电话相同Select*From XSQKWhere联系电话in(Select联系电话From XSQKWhere姓名='杨颖')9)查询XSQK表中所有的系名。

10)查询有多少同学选修了课程。

select count(distinct 学号)From XS_KC11)查询有多少同学没有选课。

select count(*)from xsQK left join xs_KC on xs_KC.学号=xsQK.学号where成绩is null12)查询与杨颖同一个系的同学姓名。

select 姓名From xsQKWhere13)查询选修了课程的学生的姓名、课程名与成绩。

14)统计每门课程的选课人数和最高分。

select 课程号,count(学号),max(成绩)from xs_kcgroup by 课程号15)统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列。

数据库实验五答案

数据库实验五答案

数据库实验五答案1.创建一个存储过程,查看001号课程的选修情况,包括学生学号、姓名和成绩,然后执行该过程;create procedure s11asselect student.sno,sname,scorefrom student join sc on student.sno=sc.snowhere cno='001'goexecute s112.创建一个存储过程,通过学生学号来查询学生选修情况,包括学生学号、姓名和成绩,然后执行该过程;create procedure s12 @cnumber char(5)asselect student.sno,sname,scorefrom student join sc on student.sno=sc.snowhere student.sno= @cnumbergoexecute s12 '00001'3.创建一个存储过程,通过学生学号来查询学生选修情况,默认查询学号为00001的选修情况,包括学生学号、姓名和成绩,然后执行该过程;create procedure s13 @cnumber char(5)='00001'asselect student.sno,sname,scorefrom student join sc on student.sno=sc.snowhere student.sno= @cnumbergoexecute s13 '00005'execute s134.创建一个存储过程,获得选修某门课程的总人数,然后在执行该过程后把总人数显示出来;create procedure s14 @cnumber char(5),@ccount int outputasselect @ccount=count(*) from sc where o=@cnumbergodeclare @ccount intexecute s14 '001' ,@ccount outputselect @ccount5.创建一个存储过程,通过学号和课程号进行成绩查询,如果查询结果为空,则显示“该学生没有选这门课”,返回0,如果查询结果低于60分,则显示“该学生考试成绩不及格”,返回1,如果查询结果在60-85之间,则显示“该学生考试成绩为良”,返回2,如果查询结果大于85,则显示“该学生考试成绩为优秀”,返回3,然后执行该过程查询学号00001的选课成绩,并把返回结果显示出来。

数据库原理及应用实验指导书答案

数据库原理及应用实验指导书答案

数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。

它允许用户创建,读取,更新和删除数据库中的数据。

常见的数据库管理系统有MySQL,Oracle,SQL Server等。

问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。

以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。

2. 运行安装程序,按照向导的指示进行安装。

3. 选择是否要安装MySQL 服务器和MySQL工具。

4. 设置密码以保护数据库的安全。

5. 完成安装程序并启动MySQL服务。

数据库是一个组织和存储数据的容器。

在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。

每行代表一个记录,每列代表一个字段。

问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。

常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。

问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。

ODBC驱动程序充当应用程序和数据库之间的翻译器。

问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。

在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。

在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。

具体步骤如下: 1. 加载ODBC接口库。

2. 初始化ODBC环境。

3. 建立数据库连接。

4. 执行SQL语句。

5. 关闭数据库连接。

6. 释放ODBC环境。

问题九ODBC接口库是一组API函数,用于连接和操作数据库。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五
实验5.1 数据查询
1)要求
以School数据库为例,在该数据库中存在四表格,分别为:
●表STUDENTS(sid, sname, email, grade);
●表TEACHERS(tid, tname, email, salary);
●表COURSES(cid, cname, hour);
●表CHOICES(no, sid, tid, cid, score)
在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。

在表CHOICES中保存学生的选课记录。

按以下要求对数据库进行查询操作:
(1)查询年级为2001的所有学生的名称并按编号升序排列。

程序:Select sname
from students
where grade='2001'
order by sid asc;
(2)查询学生的选课成绩合格的课程成绩。

程序:Select score
from choices
where score>'59';
(3)查询课时是48或60的课程的名称。

程序:select cname
from courses
where hour='48'or hour='60';
(4)查询所有课程名称中含有data的课程编号。

程序:select cid
from courses
where cname like'%data%';
(5)查询所有选课记录的课程号(不重复显示)。

程序:select distinct cid
from choices;
(6)统计所有教师的平均工资。

程序:select avg(salary)
from teachers;
(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。

程序:select tid,avg(score)
from choices
GROUP BY tid
order by avg(score)desc;
(8)统计各个课程的选课人数和平均成绩。

程序:select count(distinct sid),avg(score)
from choices
group by cid;
(9)查询至少选修了三门课程的学生编号。

程序:select sid
from choices
group by sid
having count(cid)>=’3’;
(10)查询编号800009026的学生所选的全部课程的课程名和成绩。

程序:select distinct cname ,score
from courses,choices
where sid='800009026'and courses.cid=choices.cid
(11)查询所有选修了database的学生的编号。

程序:select sid
from choices ,courses
where cname='database'and choices.cid=courses.cid;
(12)求出选择了同一个课程的学生对。

程序:Select x.sid,y.sid
From choices x,choices y
Where x.cid=y.cid and x.sid<>y.sid
(13)求出至少被两名学生选修的课程编号。

程序:select cid
from choices
group by cid
having count(sid)>=2;
(14)查询选修了编号800009026的学生所选的某个课程的学生编号。

程序:select sid
from choices
where cid in(select cid
from choices
where sid='800009026')and sid<>'800009026';
(15)查询学生的基本信息及选修课程编号和成绩。

程序:select students.sid,sname,email,grade,cid,score
from students,choices
where students.sid=choices.sid;
(16)查询学号850955252的学生的姓名和选修的课程名及成绩。

程序:select sname,cname,score
from students,courses,choices
where choices.sid='850955252'and students.sid=choices.sid
and courses.cid=choices.cid;
(17)查询与学号850955252的学生同年级的所有学生资料。

程序:select*
from students
where grade=(select grade
from students
where sid='850955252');。

相关文档
最新文档