数据库实验5答案
数据库实验内容-答案

实验内容:实验一:数据库的操作使用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的外部键。
大学 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)查询’科学出版社’的图书中单价比’机械工业出版社’最高单价还高的的图书书名、单价。
参考答案数据库技术实验指导

《数据库技术(SQL Server 2005)》实验指导 / 学年第学期姓名:______________学号:______________班级:______________指导教师:______________计算机科学与工程学院2010目录目录 2实验一 SQl Server 2005常用工具使用 3实验二数据的简单查询 6实验三数据的复杂查询12实验四管理数据库和表错误!未定义书签。
实验五操纵表中数据错误!未定义书签。
实验六 SQL Server程序设计错误!未定义书签。
实验七存储过程和自定义函数错误!未定义书签。
实验八视图和索引错误!未定义书签。
实验九触发器错误!未定义书签。
实验十数据库设计错误!未定义书签。
实验一SQl Server 2005常用工具使用一、实验目的1 . 了解SQl Server 2005包含的主要组件及其功能;2 .了解SQl Server 2005的配置管理工具;3 .熟悉SQl Server管理工作室的界面及基本使用方法;4 .了解联机帮助文档的使用,熟悉示例数据库adventureworks;5. 掌握select语句实现简单查询。
二、实验预习1 .SQL Server 各组件的主要功能是什么?2、如何安装SQL Server 2005?三、实验内容和要求1 .通过“开始”→“程序”→Microsoft SQL Server2005→“配置工具”→SQL Server Configuration Manager,打开“SQL Server配置管理工具”窗口,选择SQL Server 服务.并且通过该窗口“启动”和“停止” SQL Server 服务。
2 .通过“开始”→“程序”→Microsoft SQL Server2005→“SQL Server Management Studio”打开管理工作室窗口。
3 .打开本地服务器的属性对话框,在常规中查看以下信息:产品名称、主机操作系统、产品的版本、操作平台、主机内存等.4 .利用管理工作室访问系统自带的示例数据库adventureworks。
实验5数据库的安全性控制(含答案)

实验五数据库的安全性控制一、实验目的:1. 通过实验加深对数据安全性的理解,并掌握SQL Server中有关用户登录的认证以及管理办法;2. 通过实验加深对数据库存储控制机制的理解,通过自主存取控制进行权限管理,熟悉SQL Server中角色管理;3.通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。
二、实验内容1.设置SQL Server的混合安全认证模式。
在SQL Server中的对象资源管理器中设置安全认证模式。
2.在SQL Server中,利用“对象资源管理器”创建一个名为“U1”的登录用户和数据库用户,密码为111,并允许其登录S-T数据库。
3.在SQL Server中,利用代码创建一个名为“U2”的登录用户,密码为111;其相应的数据库用户名为lucky,并允许其登录S-T数据库。
4.用“u1”用户名登录后,执行对students表的查询操作,说明执行结果,并分析原因(建议:在启动一个SQL Server 2008窗口)。
分析:没有对u1进行其他操作的授权,只能登录而不能进行插入,修改等操作5.将students表的操作权限select和insert赋予数据库用户u1,并允许其向其它用户授权。
6.以“u1”用户名登录,执行对students和teacher表的查询操作,将该运行结果进行分析。
分析:对比第4题,对U1进行授权后可以进行相应的操作7.执行下列代码后,分析用户u2能否对s_t数据库的student表进行select 和update操作,为什么?并用相应的语句验证。
分析:首先grant给public组赋予了查询,插入,更新权限,然后给lucky用户赋予了对S表的所有权限,然后又revoke收回了lucky的权限,但并没有收回public组的权限,而deny却收回了lucky的更新权限,故查询可实现,而更新不可实现8.以sa登录数据库,在s_t数据库的stc表上创建选修了课程B001的视图st_view。
数据库实验五答案

数据库实验五答案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函数,用于连接和操作数据库。
数据库技术实验报告的答案

数据库技术实验报告的答案实验目的:本次实验旨在加深对数据库管理系统(DBMS)的理解,掌握数据库设计、实现和查询的基本技能,并通过实际操作来熟悉SQL语言的运用。
实验环境:1. 操作系统:Windows 102. 数据库管理系统:MySQL 8.03. 开发工具:Visual Studio Code实验内容:1. 数据库的创建与设计2. 数据表的创建与数据类型选择3. 数据的插入、更新与删除4. SQL查询语句的编写与执行5. 数据库的备份与恢复实验步骤与结果:1. 数据库的创建与设计:- 使用MySQL命令行工具创建名为“StudentsDB”的数据库。
- 设计了三个表:Students(学生信息),Courses(课程信息),Enrollments(选课信息)。
2. 数据表的创建与数据类型选择:- 为Students表创建字段:StudentID(INT,主键),Name (VARCHAR(50)),Age(INT),Gender(CHAR(1))。
- 为Courses表创建字段:CourseID(INT,主键),CourseName (VARCHAR(100)),Credits(INT)。
- 为Enrollments表创建字段:EnrollmentID(INT,主键),StudentID(INT),CourseID(INT),Grade(CHAR(2)),并设置StudentID和CourseID为外键。
3. 数据的插入、更新与删除:- 向Students表插入了10条学生记录。
- 向Courses表插入了5门课程记录。
- 通过Enrollments表记录了学生的选课情况,包括成绩。
- 使用UPDATE语句更新了学生的选课成绩。
- 使用DELETE语句删除了某些学生的选课记录。
4. SQL查询语句的编写与执行:- 编写了多条SELECT语句,查询了学生信息、课程信息以及学生的选课情况。
- 使用了JOIN操作查询了学生与其选修课程的关联信息。
数据库上机实验答案5

数据库上机实验答案 5学号:姓名:日期:年月日实验目的:综合练习所学的SQL语言。
学习日期函数。
实验内容:基于提供的食堂交易记录trans表,进行查询,记录SQL语句及查询结果。
食堂交易记录表trans的数据说明如下:trans食堂交易记录(stuID,学生学号posID,刷卡机编号transTime,交易时间transValue,交易金额)1 食物销量大比拼创建一张表格posSummary,表格内容如下: pos机编号,就餐人数,刷卡次数,销售金额,平均每次刷卡金额。
以pos机编号为主键。
利用insert语句填充数据。
选择并展示posSummary中销售金额前10的pos机。
2 评选食堂忠实粉丝创建一个视图stuSummary,视图内容如下:学生ID,刷卡次数,刷卡总金额,刷卡平均金额。
基于创建的视图,分别找出刷卡次数最多、刷卡总金额最多、刷卡平均金额最多的同学。
3 学习日期函数datepart执行如下语句。
将执行结果复制到excel中,绘制散点图。
解释图的意思。
select datepart(hour,transtime)*60+datepart(minute,transtime)as minuteOfDay,count(*) as freq from trans group by datepart(hour,transtime)*60+datepart(minute,transtime) order by datepart(hour,transtime)*60+datepart(minute,transtime)其中,日期函数datepart(hour,transtime)的意思是将transtime中小时的部分取出来。
4 就餐规律研究计算某一天是星期几的方法如下:datepart(weekday,transtime),其计算结果周日为1,周一为2,周六为7。
基于题3中的方法,绘制上课日(周一到周五)学生的就餐规律和休息日(周六、周日)学生的就餐规律图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五:数据库综合查询
一、实验目的
1.掌握SELECT语句的基本语法和查询条件表示方法;
2.掌握查询条件种类和表示方法;
3.掌握连接查询的表示及使用;
4.掌握嵌套查询的表示及使用;
5.了解集合查询的表示及使用。
二、实验环境
已安装SQL Server企业版的计算机(120台);
具有局域网环境,有固定IP;
三、实验学时
2学时
四、实验要求
1.了解SELECT语句的基本语法格式和执行方法;
2.了解连接查询的表示及使用;
3.了解嵌套查询的表示及使用;
4.了解集合查询的表示及使用;
5.完成实验报告;
五、实验内容及步骤
1.利用Transact-SQL嵌套语句实现下列数据查询操作。
1) 查询选修了计算机体系结构的学生的基本信息。
select*from student
where Sno in(select Sno from course
where Cno in(select Cno from sc where Cname='计算机体系结构'))
2) 查询年龄比李勇小的学生的学号和成绩。
select a.sno,grade from student a,course
where a.sno=course.sno and sage<(select sage from student where sname='李勇')
3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。
select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1')
4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。
select*from student where dnum<>'D3'AND SAGE>all(select
sage from student where dnum='D3')
5) 查询‘C1’课程的成绩高于70的学生姓名。
select sname from student where sno in(select sno from course where cno='C1'and grade>70)
6) 查询‘C1’课程的成绩不高于70的学生姓名。
select sname from student where sno in(select sno from course where cno='C1'and grade<=70)
7) 查询没有选修的学生姓名。
select sname from student where sno not in
(select sno from course where course.sno=student.sno)
8)查询学校开设的课程总数。
select count(cno)from sc
9)查询选修两门及两门以上课程的学生姓名。
select sname from student a,course where a.sno=course.sno group by a.sno,sname having count(cno)>=2
10)查询开设的课程和选修该课程的学生的总成绩、平均成绩、最高成绩和最低成绩。
select cno,sum(grade),avg(grade),max(grade),min(grade) from course group by cno
(二)、以数据库原理实验4数据为基础,请使用T-SQL 语句实现进行以下操作(选做题):
1.查询以‘DB_’开头,且倒数第3个字符为‘s’的课程的详细情况;
select*from course
where Cnume like'DB\_%s__'escape'\'
2.查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名;select Sname,student.Sno,o,ame FROM Student,course,sc
WHERE student.Sno=sc.sno and o=o and Sname LIKE '__阳%'
3.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修
课程号及成绩;
SELECT student.Sno,Sname,Sdept,Cno,grade
FROM student,sc
WHERE student.sno=sc.sno and cno IN
(SELECT cno FROM course
WHERE cname='数学'OR cname='大学英语')
4.查询缺少成绩的所有学生的详细情况;
5.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;
select b.*from student a,student b where a.sname='张力'and
a.sage<>
b.sage
6.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成
绩;
7.按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。
其中已修学分为考试已经及格的课程学分之和;
8.列出只选修一门课程的学生的学号、姓名、院系及成绩;
9.查询选修“数据库”或“数据结构”课程的学生的基本信息;
10.列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩;
11.查询只被一名学生选修的课程的课程号、课程名;
12.检索所学课程包含学生‘张向东’所学课程的学生学号、姓名;★
13.检索所学课程包含学生‘张向东’所学全部课程的学生学号、姓名;★
14.使用嵌套查询列出选修了“数据结构”课程的学生学号和姓名;
select sno,sname from student where sno in(select sno from sc where cno in(select cno from course where cname='数据结构'))
15.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和
院系;
SELECT姓名=Sname,年龄=Sage,院系=Sdept
FROM Student
WHERE Sage<
(SELECT max(Sage)
FROM Student
WHERE Sdept='CS')AND Sdept<>'CS'
16.使用ANY、ALL 查询,列出其他院系中比CS系所有学生年龄小的学生;
17.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息;SELECT*
FROM Student
WHERE Sdept=
(SELECT Sdept
FROM student
WHERE Sname='张力')
18.使用集合查询列出CS系的学生以及性别为女的学生名单;
select sname
from student
where Sdept='CS'
union
select sname
from student
where Ssex='女'
19.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;SELECT*
FROM Student
WHERE Sdept='CS'
intersect
select*
from student
where Sage<=19
20.使用集合查询列出选修课程1的学生集合与选修课程2的学生集合的交集;SELECT Sno
FROM SC
WHERE Cno='1'
intersect
SELECT Sno
FROM SC
WHERE Cno='2'。