题目1、查询学生的系别,用小写字母表示。题目2、查询叫“刘%”的学生学号、系别题目3、查询教师姓名第二个字是“一”的教师姓名,所教课程名。题目4、查询没有成绩的学生学号,学号降序排列题目5、查询选修课程的学生人数题目6、各科选修课成绩及格的选修人数。 实验二“查询数据库”主要目的是通过SQL语句来熟悉数据库查询的基本操作,涵盖了SELECT语句的各种基本使用方式,包括简单查询、嵌套查询、连接查询等。以下将逐一解析实验中的各个题目及其对应的SQL实现: 1. 题目1:查询学生的系别并转换为小写。使用SQL的lower()函数将sdept字段转为小写。 SQL 语句:`Select lower(sdept) from s;` 2. 题目2:查询名字以“刘”开头的学生学号和系别。使用LIKE操作符和通配符%匹配以“刘”开头的名字。 SQL 语句:`Select sno, sdept From s Where sname like '刘%';` 3. 题目3:查询教师姓名第二个字是“一”的教师姓名及其所教课程。同样利用LIKE操作符和通配符匹配第二个字为“一”的教师。 SQL 语句:`Select tname, cname From c Where tname like '_一%';` 4. 题目4:查询没有成绩的学生学号,按照学号降序排列。使用NOT EXISTS子查询找出未在sc表中对应的成绩记录。 SQL 语句:`select sno from s where not exists (select * from sc where sc.sno=s.sno) order by sno desc;` 5. 题目5:查询选修课程的学生人数。使用EXISTS子查询判断学生是否选修了课程。 SQL 语句:`Select count(*) from s where exists (select * from sc where sc.sno=s.sno);` 6. 题目6:统计各科选修课成绩及格(60分及以上)的选修人数。通过GROUP BY和HAVING子句对及格人数进行分组计数。 SQL 语句:`Select count(*) From sc Where grade >= 60 Group by cno;` 7. 题目7:按降序列出每个学院男生人数超过2人的学院名和人数。 SQL 语句:`Select ssp, count(*) From s Where ssex='男' Group by ssp Having count(*)>2 Order by count(*) desc;` 8. 题目8:查询IS系的男女学生人数。 SQL 语句: ``` Select count(*) 男 From s Where sdept='IS' and ssex='男'; Select count(*) 女 From s Where sdept='IS' and ssex='女'; ``` 9. 题目9:找出年龄大于23岁且平均成绩不及格的学生学号和平均分。 SQL 语句:`select sno, avg(grade) from sc where sno in (select sno from s where getdate()-sbirth>23) group by sno having avg(grade)<60;` 10. 题目10:显示所有学生信息,如果学生选修过课程,则显示其选修课号和成绩。使用LEFT JOIN连接s和sc表。 SQL 语句:`select * from s left join sc on (s.sno=sc.sno);` 11. 题目11:查询每门课都是80分以上的学生的学号与姓名。通过子查询找出所有课程成绩均大于80分的学号。 SQL 语句:`select sno, sname from s where sno in (select sno from sc group by sno having min(grade)>80);` 12. 题目12:查询学分数比“计算机应用”多的课程号、课程名和学分。 SQL 语句:`Select cno, cname, ccredit From c Where ccredit > all (Select ccredit From c Where cname='计算机应用');` 13. 题目13:查询IS系中没有选修02号课程的学生学号和姓名。使用NOT EXISTS子查询排除选修02号课程的学生。 SQL 语句:`Select sno, sname From s Where sdept='IS' and not exists (Select * From sc Where sc.sno=s.sno and cno='02');` 14. 题目14:找出被全部学生都选修过的课程号和课程名。使用子查询找到所有学生的sno集合,然后与c表的选课记录进行交集操作。 SQL 语句:由于给出的实验内容没有给出具体实现,这里提供一个可能的解决方案: ``` Select cno, cname From c Where cno in ( Select cno From sc Group by cno Having count(distinct sno) = (Select count(*) From s) ); ``` 以上就是实验二“查询数据库”中涉及的所有SQL查询语句的详细解释,这些练习涵盖了基本的SQL查询技巧,有助于提高对SQL语言的理解和实际操作能力。
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Annotations_Train_abstract_v002.zip
- ap5030dn-openwrt-ath79-generic-huawei-ap5030dn-initramfs-kernel
- 华为AP无线接入控制器学习资料
- 金铲铲S13双城之战自动拿牌助手2.0
- Sigrity Power SI 仿真分析教程与实例分析.rar
- 基于Vue和JavaScript的掌上生活超市小程序配送解决方案设计源码
- 基于Java和安卓基础知识的简易记事本设计源码
- 基于SaToken轻量级Java权限认证的XrSaTokenVue Vue设计源码
- 基于Java语言的RxTool设计源码集合
- PHP性能检测扩展XHProf与FirePHP线上调试工具详解