SQL语句练习题及答案
### SQL语句强化练习知识点详解 #### 一、简单查询 **知识点1:查询所有记录** - **描述**: 使用 `SELECT * FROM 表名` 可以查询表中的所有记录。 - **示例**: 查询所有学生的信息。 - **SQL语句**: `SELECT * FROM 学生` **知识点2:条件查询** - **描述**: 使用 `SELECT 列1, 列2 FROM 表名 WHERE 条件` 可以查询满足特定条件的记录。 - **示例**: 查询软件专业所有学生的学号及姓名。 - **SQL语句**: `SELECT 学号, 姓名 FROM 学生 WHERE 专业 = '软件'` **知识点3:去重查询** - **描述**: 使用 `SELECT DISTINCT 列名 FROM 表名` 可以查询某列中不重复的数据。 - **示例**: 查询所有必修课的课号。 - **SQL语句**: `SELECT DISTINCT 课号 FROM 必修课` **知识点4:排序查询** - **描述**: 使用 `SELECT 列1, 列2 FROM 表名 WHERE 条件 ORDER BY 列名 DESC/ASC` 可以查询并排序数据。 - **示例**: 查询1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低排序。 - **SQL语句**: `SELECT 学号, 成绩 FROM 选课 WHERE 课号 = '1' AND 成绩 > 80 ORDER BY 成绩 DESC` **知识点5:非条件查询** - **描述**: 使用 `WHERE 条件 <> '条件值'` 或者 `WHERE NOT 条件 = '条件值'` 或者 `WHERE 条件 != '条件值'` 来排除特定条件的记录。 - **示例**: 查询非软件专业学生的名单。 - **SQL语句**: - 方法一: `SELECT 姓名 FROM 学生 WHERE 专业 <> '软件'` - 方法二: `SELECT 姓名 FROM 学生 WHERE NOT 专业 = '软件'` - 方法三: `SELECT 姓名 FROM 学生 WHERE 专业 != '软件'` **知识点6:区间查询** - **描述**: 使用 `BETWEEN` 或者 `>=` 和 `<=` 进行区间查询。 - **示例**: 查询成绩在70~80分之间的学生选课得分情况。 - **SQL语句**: - 方法一: `SELECT * FROM 选课 WHERE 成绩 >= 70 AND 成绩 <= 80` - 方法二: `SELECT * FROM 选课 WHERE 成绩 BETWEEN 70 AND 80` **知识点7:多条件查询** - **描述**: 使用 `OR` 或 `IN` 来进行多条件查询。 - **示例**: 查询选修1号课或3号课的全体学生的学号和成绩。 - **SQL语句**: - 方法一: `SELECT 学号, 成绩 FROM 选课 WHERE 课号 = '1' OR 课号 = '3'` - 方法二: `SELECT 学号, 成绩 FROM 选课 WHERE 课号 IN ('1', '3')` **知识点8:模式匹配查询** - **描述**: 使用 `LIKE` 进行模式匹配查询,其中 `%` 代表任意多个字符,`_` 代表单个字符。 - **示例**: 查询所有98级学生的学生成绩情况。 - **SQL语句**: - 方法一: `SELECT * FROM 选课 WHERE 学号 LIKE '98%'` - 方法二: `SELECT * FROM 选课 WHERE 学号 LIKE '98____'` **知识点9:空值查询** - **描述**: 使用 `IS NULL` 或 `IS NOT NULL` 来查询空值或非空值。 - **示例**: 查询成绩为空值的学生的学号和课号。 - **SQL语句**: `SELECT 学号, 课号 FROM 选课 WHERE 成绩 IS NULL` **知识点10:聚合函数查询** - **描述**: 使用 `SUM()` 来计算总和。 - **示例**: 查询所有学生的总成绩。 - **SQL语句**: `SELECT SUM(成绩) AS 总成绩 FROM 选课` **知识点11:分组查询** - **描述**: 使用 `GROUP BY` 进行分组查询,可以配合 `HAVING` 进行条件筛选。 - **示例**: 查询每个学生的平均成绩。 - **SQL语句**: `SELECT 学号, AVG(成绩) AS 平均成绩 FROM 选课 GROUP BY 学号` **知识点12:多表关联查询** - **描述**: 使用 `JOIN` 或者 `WHERE` 条件来关联多个表。 - **示例**: 查询选修1号课的学生姓名及成绩。 - **SQL语句**: `SELECT 姓名, 成绩 FROM 学生 S JOIN 选课 X ON S.学号 = X.学号 WHERE 课号 = '1'` **知识点13:自连接查询** - **描述**: 在一个表中进行两次别名引用以实现自连接查询。 - **示例**: 查询那些专业相同的学生相应的姓名及专业信息。 - **SQL语句**: `SELECT A.姓名, B.姓名, A.专业 FROM 学生 A, 学生 B WHERE A.学号 <> B.学号 AND A.专业 = B.专业` #### 二、连接查询 **知识点14:简单连接查询** - **描述**: 连接两个表以获取所需信息。 - **示例**: 查询选修1号课的学生姓名及成绩。 - **SQL语句**: `SELECT 姓名, 成绩 FROM 学生, 选课 WHERE 学生.学号 = 选课.学号 AND 课号 = '1'` **知识点15:条件分组查询** - **描述**: 使用 `GROUP BY` 对结果进行分组后,再使用 `HAVING` 进行筛选。 - **示例**: 求出总分大于150的学生的学号、姓名及总成绩。 - **SQL语句**: `SELECT 学生.学号, 姓名, SUM(成绩) AS 总成绩 FROM 学生, 选课 WHERE 学生.学号 = 选课.学号 GROUP BY 选课.学号 HAVING SUM(成绩) > 150` 以上这些练习题覆盖了SQL语言的基础部分,包括简单的查询、条件查询、排序查询、去重查询等,以及更高级的连接查询和分组查询等内容。通过这些练习题,可以帮助学习者更好地理解和掌握SQL的基本用法和技巧,为实际工作中的数据库操作打下坚实的基础。
剩余9页未读,继续阅读
- 粉丝: 14
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 纯 Java git 解决方案.zip
- (源码)基于Spring Boot和Vue的后台管理系统.zip
- 用于将 Power BI 嵌入到您的应用中的 JavaScript 库 查看文档网站和 Wiki 了解更多信息 .zip
- (源码)基于Arduino、Python和Web技术的太阳能监控数据管理系统.zip
- (源码)基于Arduino的CAN总线传感器与执行器通信系统.zip
- (源码)基于C++的智能电力系统通信协议实现.zip
- 用于 Java 的 JSON-RPC.zip
- 用 JavaScript 重新实现计算机科学.zip
- (源码)基于PythonOpenCVYOLOv5DeepSort的猕猴桃自动计数系统.zip
- 用 JavaScript 编写的贪吃蛇游戏 .zip
- 1
- 2
- 3
- 4
- 5
前往页