根据提供的文档内容,我们可以归纳出一系列与数据库操作相关的知识点,主要围绕SQL查询语句的应用展开。下面将逐一解析这些知识点: ### 实验四 #### SQL查询基础 **知识点1:查询单个列** - **SQL语句**: ```sql SELECT Cname FROM Course; ``` - **说明**:此语句用于查询`Course`表中的`Cname`列的所有值。 **知识点2:复合条件查询** - **SQL语句**: ```sql SELECT * FROM Student WHERE (Clno = '01311') AND Ssex = '女'; ``` - **说明**:此语句用于查询`Student`表中班级编号为`01311`且性别为女性的学生信息。 **知识点3:计算字段** - **SQL语句**: ```sql SELECT Sname, Ssex, 2019 - Sage AS [YearOfBirth] FROM Student WHERE Clno IN ('01311', '01312'); ``` - **说明**:此语句用于查询指定班级的学生姓名、性别,并计算出生年份。 **知识点4:模糊查询** - **SQL语句**: ```sql SELECT * FROM Student WHERE Sname LIKE '李_'; ``` - **说明**:此语句用于查询`Student`表中名字以“李”开头的学生信息。 **知识点5:子查询与关联查询** - **SQL语句**: ```sql SELECT Number FROM Class WHERE Clno IN (SELECT Clno FROM Student WHERE Sname = '李勇'); ``` - **说明**:此语句用于查找名为“李勇”的学生所在班级的信息。 **知识点6:聚合函数的使用** - **SQL语句**: ```sql SELECT AVG(Gmark) AS 平均成绩, MAX(Gmark) AS 最高成绩, MIN(Gmark) AS 最低成绩 FROM Grade WHERE Cno IN (SELECT Cno FROM Course WHERE Cname = '操作系统'); ``` - **说明**:此语句用于统计所有选修“操作系统”课程的学生的成绩平均分、最高分及最低分。 **知识点7:去重计数** - **SQL语句**: ```sql SELECT COUNT(DISTINCT Sno) AS 选修课程学生人数 FROM Grade; ``` - **说明**:此语句用于统计选修了任何一门课程的不同学生的总人数。 **知识点8:嵌套子查询** - **SQL语句**: ```sql SELECT COUNT(Cno) AS 选修操作系统学生人数 FROM Grade WHERE Cno IN (SELECT Cno FROM Course WHERE Cname = '操作系统'); ``` - **说明**:此语句用于统计选修了“操作系统”这门课程的学生人数。 **知识点9:多表联查与空值处理** - **SQL语句**: ```sql SELECT s.Sname FROM Students s, Class c, Grade g WHERE s.Sno = g.Sno AND s.Clno = c.Clno AND c.Inyear = '2000' AND g.Gmark IS NULL AND c.Speciality = '计算机软件'; ``` - **说明**:此语句用于查询2000年入学的专业为“计算机软件”的学生中,没有成绩记录的学生姓名。 **知识点10:比较查询** - **SQL语句**: ```sql SELECT Sno, Sname, Sage FROM Student WHERE Sage < (SELECT AVG(Sage) FROM Student); ``` - **说明**:此语句用于查询年龄低于全体学生平均年龄的学生信息。 ### 实验五 #### 高级查询与排序 **知识点11:子查询与多层嵌套** - **SQL语句**: ```sql SELECT * FROM Student WHERE Clno IN (SELECT Clno FROM Student WHERE Sname = '李勇'); ``` - **说明**:此语句用于查询与“李勇”相同班级的学生信息。 **知识点12:嵌套子查询与连接** - **SQL语句**: ```sql SELECT * FROM Grade WHERE Cno IN (SELECT Cno FROM Grade WHERE Sno IN (SELECT Sno FROM Student WHERE Sname = '李勇')); ``` - **说明**:此语句用于查询“李勇”所选课程的成绩信息。 **知识点13:条件筛选** - **SQL语句**: ```sql SELECT * FROM Student WHERE Sage BETWEEN (SELECT Sage FROM Student WHERE Sname = '李勇') AND 25; ``` - **说明**:此语句用于查询年龄在“李勇”年龄到25岁之间的学生信息。 **知识点14:嵌套查询优化** - **SQL语句**: ```sql SELECT Sno, Sname FROM Student WHERE Sno IN (SELECT Sno FROM Grade WHERE Cno IN (SELECT Cno FROM Course WHERE Cname = '操作系统')); ``` - **说明**:此语句用于查询选修了“操作系统”这门课程的学生姓名及其学号。 **知识点15:存在性查询** - **SQL语句**: ```sql SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM Course WHERE NOT EXISTS (SELECT * FROM Grade WHERE Student.Sno = Grade.Sno AND Course.Cno = Grade.Cno)); ``` - **说明**:此语句用于查询没有选修任何课程的学生姓名。 **知识点16:排序与分组** - **SQL语句**: ```sql SELECT * FROM Student ORDER BY Clno, Sage DESC; ``` - **说明**:此语句用于按班级编号升序、年龄降序对学生信息进行排序。 **知识点17:分组计数** - **SQL语句**: ```sql SELECT Cno, COUNT(Sno) AS 选课人数 FROM Grade GROUP BY Cno; ``` - **说明**:此语句用于统计每门课程的选课人数。 **知识点18:条件分组** - **SQL语句**: ```sql SELECT Sno, COUNT(Sno) AS 选课数量 FROM Grade GROUP BY Sno HAVING COUNT(Sno) > 3; ``` - **说明**:此语句用于统计选课数量超过3门的学生信息。 ### 实验六 #### 数据更新 **知识点19:更新数据** - **SQL语句**: ```sql UPDATE Grade SET Gmark = 0; ``` - **说明**:此语句用于将`Grade`表中所有成绩设置为0。 以上知识点涵盖了SQL查询语言的基础用法及高级技巧,包括简单的数据查询、复杂条件筛选、子查询、嵌套查询、聚合函数使用、排序与分组等核心概念和技术点。通过这些练习,可以帮助学习者深入理解SQL语言的核心功能,并掌握如何利用SQL来高效地管理和检索数据。
剩余12页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Ashampoo WinOptimizer v27.00.05 阿香婆一款专业的垃圾清理、碎片整理启动项管理系统优化工具.rar
- misc设备驱动 正点原子阿尔法
- youleng-wms JAVA开发的WMS源码可以借签学习 数据库MYSQL
- 385大神asp.net三层设计停车场管理系统毕业课程源码设计+参考论文
- 数据集,训练数据集,深度学习
- 384大神asp.net基于三层汽车进销存销售管理系统毕业课程源码设计
- AutoSAR基础学习资源
- 383大神asp.net软件测试用例库管理系统毕业课程源码设计
- Open-Industry-Project-main C#
- C0858 手机之家(1页).Zip