2022年数据库实习答案可用

上传人:痛*** 文档编号:119321619 上传时间:2022-07-14 格式:PDF 页数:8 大小:152.96KB
收藏 版权申诉 举报 下载
2022年数据库实习答案可用_第1页
第1页 / 共8页
2022年数据库实习答案可用_第2页
第2页 / 共8页
2022年数据库实习答案可用_第3页
第3页 / 共8页
资源描述:

《2022年数据库实习答案可用》由会员分享,可在线阅读,更多相关《2022年数据库实习答案可用(8页珍藏版)》请在装配图网上搜索。

1、数据库实习答案1、E-R图向关系模式的转化。最终答案:职工(职工号,姓名,性别,工资,职称,简历,部门号);部门(部门号,名称,地址,领导人职工号);工程(工程号,工程名,参加人数,预算,部门号,负责人职工号);办公室(编号,地点,电话,部门号);参加(职工号,工程号,日期,具体职务);(红色部分为主键,绿色部分为外键)。2、SQL查询语句练习。/*实验 3 数据库的简单查询实验答案*/【例 3.1】查询全体学生的学号与姓名 SELECT Sno,Sname FROM Students 【例 3.2】查询全体学生的学号、姓名、性别、年龄、所在系。SELECT Sno,Sname,Sname S

2、sex,Sage,Sdept FROM Students【例 3.3】查询全体学生的选课情况,即学号、课程号、成绩,成绩值都加5 SELECT Sno,Cno,Grade+5 FROM Enrollment【例 3.4】查询全体学生的学号、姓名,并为原来的英文列名设置中文列别名。以下三种方法等价。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -SELECT Sno 学号,Sname 姓名 FROM Students SELECT Sno AS 学号,Sname AS 姓名 FROM Students SELECT 学号=Sno ,姓名=Sname FROM Studen

3、ts【例 3.5】查询全体学生的选课情况,其成绩列值都加5,并为各列设置中文的别名SELECT Sno 学号,Cno 课程号,Grade+5 成绩 FROM Enrollment【例 3.6】显示所有选课学生的学号。SELECT Sno 学号 FROM Enrollment 等价于:SELECT ALL Sno 学号 FROM Enrollment【例 3.7】显示所有选课学生的学号,并去掉重复行。SELECT DISTINCT Sno 学号 FROM Enrollment【例 3.8】查询学生选课成绩大于80分的学生学号、课程号、成绩。SELECT*FROM Enrollment WHERE

4、 Grade80【例 3.9】查询数学系全体学生的学号、姓名。SELECT Sno,Sname FROM Students WHERE Sdept=Math【例 3.10】查询学生选课成绩在8090 分之间的学生学号、课程号、成绩。SELECT*FROM Enrollment WHERE Grade BETWEEN 80 AND 90 等价于:SELECT*FROM Enrollment WHERE Grade=80 AND Grade=90【例 3.11】查询学生年龄不在2030 之间的学生学号、姓名、所在系。SELECT Sno,Sname,Sdept FROM Students WHER

5、E Sage NOT BETWEEN 20 AND 30 等价于:SELECT Sno,Sname,Sdept FROM Students WHERE Sage30【例 3.12】查询数学系、计算机系、艺术系学生的学号、姓名。SELECT Sno,Sname FROM Students WHERE Sdept IN(Math,Computer,Art)等价于:SELECT Sno,Sname FROM Students WHERE Sdept=Math OR Sdept=Computer OR Sdept=Art【例 3.13】查询既不是数学系、计算机系,也不是艺术系学生的学号、姓名。SELE

6、CT Sno,Sname FROM Students WHERE Sdept NOT IN(Math,Computer,Art)等价于:SELECT Sno,Sname FROM Students WHERE Sdept!=Math AND Sdept!=Computer AND Sdept!=Art【例 3.14】查找姓名的第二个字符是u 并且只有三个字符的学生的学号、姓名。SELECT Sno,Sname FROM Students WHERE Sname LIKE _u_【例 3.15】查找姓名以 S开头的所有学生的学号、姓名。SELECT Sno,Sname FROM Students

7、 WHERE Sname LIKE S%【例 3.16】查找姓名以 S、D或 J 开头的所有学生的学号、姓名。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -SELECT Sno,Sname FROM Students WHERE Sname LIKE SDJ%【例 3.17】查找姓名不是以S、D或 J 开头的所有学生的学号、姓名。SELECT Sno,Sname FROM Students WHERE Sname LIKE SDJ%等价于:SELECT Sno,Sname FROM Students WHERE Sname NOT LIKE SDJ%【例 3.18】查

8、询无考试成绩的学生的学号和相应的课程号。SELECT Sno,Cno FROM Enrollment WHERE Grade IS NULL 不等价于:SELECT Sno,Cno FROM Enrollment WHERE Grade=0 【例 3.19】查询有考试成绩(即成绩不为空值)的学生的学号、课程号。SELECT Sno,Cno FROM Enrollment WHERE Grade IS NOT NULL【例 3.3.20】查询计算机系年龄在18 岁以上的学生学号、姓名。SELECT Sno,Sname FROM Students WHERE Sdept=Computer AND

9、Sage18【例 3.21】求选修了 C1课程或 C2课程的学生学号、成绩。SELECT Sno,Grade FROM Enrollment WHERE Cno=C1 OR Cno=C2 为了使查询语句的可读性更好,可以将 WHERE 后面的整个条件用括号括起来。等价于:SELECT Sno,Grade FROM Enrollment WHERE(Cno=C1 OR Cno=C2)【例 3.22】求学生的总人数SELECT COUNT(*)FROM Students 【例 3.23】求选修了课程的学生人数SELECT COUNT(DISTINCT Sno)FROM Enrollment【例 3

10、.24】求选修了 C1课程的学生的平均成绩。SELECT AVG(Grade)FROM Enrollment WHERE Cno=C1【例 3.25】求 20010102号学生的考试总成绩之和。SELECT SUM(Grade)FROM Enrollment WHERE Sno=20010102【例 3.26】选修了 C1课程的学生的最高分和最低分SELECT MAX(Grade),MIN(Grade)FROM Enrollment WHERE Cno=C1【例 3.3.27】求选修每门课程的学生人数。SELECT Cno AS 课程号,COUNT(Sno)AS 选修人数 FROM Enrol

11、lment GROUP BY Cno【例 3.28】求每个学生的学号和各门课程的总成绩。SELECT Sno 学号,Sum(grade)总成绩 FROM Enrollment GROUP BY Sno【例 3.29】求选修课程超过2 门课的学生的学号、平均成绩,选修的门数。SELECT Sno,AVG(Grade)AS 平均成绩,COUNT(*)AS 选修门数 FROM Enrollment GROUP BY Sno HAVING COUNT(*)=2【例 3.30】查询所有学生的行,并按学生的年龄值从小到大排序。SELECT*FROM Students ORDER BY Sage【例 3.3

12、1】查询选修了 C1课程的学生的学号和成绩,查询结果按成绩降序排列。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -SELECT Sno,Grade FROM Enrollment WHERE Cno=C1 ORDER BY Grade DESC【例 3.32】查询全体学生信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。SELECT*FROM Students ORDER BY Sdept,Sage DESC【例 3.33】求选修课程超过2 门课的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。SELECT Sno AS 学号,AVG(Grade

13、)AS 平均成绩,COUNT(*)AS 修课门数 FROM Enrollment GROUP BY Sno HAVING COUNT(*)=2 ORDER BY AVG(Grade)DESC/*实验 4 数据库的多表连接查询实验答案*/【例 4.1】查询每个学生的基本信息以及他/她选课的情况。SELECT Students.*,Enrollment.*FROM Students,Enrollment WHERE Students.Sno=Enrollment.Sno 上述是等值连接,改为自然连接,表示如下:SELECT Students.Sno,Sname,Ssex,Sage,Sdept,Cn

14、o,Grade FROM Students,Enrollment WHERE Students.Sno=Enrollment.Sno【例 4.2】查询每个学生的学号、姓名、选修的课程名、成绩。SELECT Students.Sno,Sname,Cname,Grade FROM Students,Courses,Enrollment WHERE Students.Sno=Enrollment.Sno AND Courses.Cno=Enrollment.Cno【例 4.3】查询选修了 C2且成绩大于 90分的学生的学号、姓名、成绩。SELECT Students.Sno,Sname,Grade

15、FROM Students,Enrollment WHERE Students.Sno=Enrollment.Sno AND Cno=C2 AND Grade90【例 4.4】求计算机系选修课程超过2 门课的学生的学号、姓名、平均成绩,并按平均成绩从高到低排序。SELECT Students.Sno,Sname,AVG(Grade)Average FROM Students,Enrollment WHERE Students.Sno=Enrollment.Sno AND Sdept=Computer GROUP BY Students.Sno,Sname HAVING COUNT(*)=2 O

16、RDER BY SUM(Grade)DESC【例 4.5】查询与 Sue在同一个系学习的所有学生的学号和姓名。SELECT S2.Sno,S2.Sname 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -FROM Students S1,Students S2 where S1.Sdept=S2.Sdept AND S1.Sname=Sue【例 4.6】查询所有学生的选修情况,要求包括选修了课程的学生和没有修课的学生,显示他们的学号、姓名、课程号、成绩。SELECT Students.Sno,Sname,Cno,Grade FROM Students,Enrollmen

17、t WHERE Students.Sno*=Enrollment.Sno 上述左外连接可可以用右外连接等价表示:SELECT Students.Sno,Sname,Cno,Grade FROM Students,Enrollment WHERE Enrollment.Sno=*Students.Sno 在 SQLSERVER2000中,以上左外连接还可等价表示为:SELECT Students.Sno,Sname,Cno,Grade FROM Students LEFT JOIN Enrollment ON Students.Sno=Enrollment.Sno-或者表示为:SELECT St

18、udents.Sno,Sname,Cno,Grade FROM Enrollment RIGHT JOIN Students ON Enrollment.Sno=Students.Sno/*实验 5 数据库的子查询、组合查询实验答案*/【例 5.1】查询与 Sue在同一个系学习的学生学号、姓名。SELECT Sno,Sname FROM Students WHERE Sdept=(SELECT Sdept FROM Students WHERE Sname=Sue)【例 5.2】查询其他系中比计算机系任一学生年龄都小的学生基本情况。SELECT*FROM Students WHERE Sdep

19、t!=Computer AND Sage ALL(SELECT Sage FROM Students WHERE Sdept=Computer)【例 5.3】查询其他系中比计算机系某一学生年龄小的学生的基本情况。SELECT*FROM Students WHERE Sdept!=Computer AND Sage 80)【例 5.5】查询选修了课程名为English 的课程并且成绩大于80 分的学生学号、姓名。SELECT Sno,Sname FROM Students 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -WHERE Sno IN(SELECT Sno FR

20、OM Enrollment WHERE Grade 80 AND Cno=(SELECT Cno FROM Courses WHERE Cname=English)【例 5.6】查询选修了 C2课程的学生的学号和姓名。SELECT Sno,Sname FROM Students WHERE EXISTS(SELECT*FROM Enrollment WHERE Sno=Students.Sno AND Cno=C2)【例 5.7】查询没有选修 C2课程的学生的学号、姓名。SELECT Sno,Sname FROM Students WHERE NOT EXISTS(SELECT*FROM En

21、rollment WHERE Sno=Students.Sno AND Cno=C2)【例 5.8】查询选修了 C1课程或选修了 C2课程的学生学号。SELECT Sno FROM Enrollment WHERE Cno=C1 UNION SELECT Sno FROM Enrollment WHERE Cno=C2【例 5.9】查询选修了 C1课程并且也选修了C2课程的学生学号。SELECT Sno FROM Enrollment WHERE Cno=C1 SQLSERVER2000 中不能运行INTERSECT SELECT Sno FROM Enrollment WHERE Cno=C

22、2 上述查询在 SQL SERVER 2000 中应表示为:SELECT Sno FROM Enrollment E1 WHERE Cno=C1 AND EXISTS(SELECT Sno FROM Enrollment E2 WHERE E1.Sno=E2.Sno AND E2.Cno=C2)【例 5.10】查询选修了 C1课程但没有选修了C2课程的学生学号。SELECT Sno FROM Enrollment WHERE Cno=C1 SQLSERVER2000 中不能运行MINUS SELECT Sno FROM Enrollment WHERE Cno=C2 上述查询在 SQLSERV

23、ER2000中应表示为:SELECT Sno FROM Enrollment E1 WHERE Cno=C1 AND NOT EXISTS(SELECT Sno FROM Enrollment E2 WHERE E1.Sno=E2.Sno AND E2.Cno=C2)/*实验 6 数据库的更新实验答案*/名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -【例 6.1】向 Students 表中添加一个学生记录,学生学号为 20010105,姓名为 Stefen,性别为男,年龄 25 岁,所在系为艺术系Art。INSERT INTO Students VALUES(2001

24、0105,Stefen,F,25,Art)【例 6.2】向Enrollment表中添加一个学生的选课记录,学生学号为20010105,所选的课程号为 C2。INSERT INTO Enrollment(Sno,Cno)VALUES(20010105,C2)【例 6.3】假定当前数据库中有一个临时表Temp,见表。把它的所有行一次性地加到 Students 表中。要求先定义 Temp表,输入若干行数据。具体内容表3-7 INSERT INTO Students SELECT*FROM Temp【例 6.4】将所有学生选课的成绩加5。UPDATE Enrollment SET Grade=Grad

25、e+5【例 6.5 将姓名为 Sue的学生所在系改为计算机系。UPDATE Students SET Sdept=Computer WHERE Sname=Sue【例 6.6】将选课了课程名为Database 课程的学生成绩加10。UPDATE Enrollment SET Grade=Grade+10 WHERE Cno=(SELECT Cno FROM Courses WHERE Cname=Database)【例 6.7】删除所有成绩为空值的选修记录。DELETE FROM Enrollment WHERE Grade IS NULL【例 6.8】删除学生姓名为Deepa的学生记录。DE

26、LETE FROM Students WHERE Sname=Deepa【例 6.9】删除计算机系选修成绩不及格的学生选修记录。DELETE FROM Enrollment WHERE Grade 80 GO【例 7.5】查询计算机系选修了课程名为Database 并且成绩大于 90 分的学生的姓名、成绩。SELECT 姓名,成绩 FROM CompStudentView1 WHERE 成绩90【例 7.6】删除 CompStudentView1视图。DROP VIEW CompStudentView1 3、数据库安全与保护内容名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!