MySQL复杂SQL查询:单表操作详解
46 浏览量
更新于2024-08-30
收藏 81KB PDF 举报
"MySQL常用SQL语句总结,涵盖复杂查询,包括单表查询、大小比较、确定范围、IN和NOT IN操作等。"
在数据库管理中,SQL(结构化查询语言)是用于与关系型数据库交互的语言。MySQL作为一款广泛使用的开源数据库系统,其SQL语法是开发者必须掌握的基础。本文将对MySQL的一些常见SQL语句进行总结,特别是涉及复杂查询的部分。
1. **复杂SQL查询**
- **单表查询**
- **选择指定列**:你可以通过`SELECT`关键字来选择想要显示的列,例如查询全体学生的学号和姓名:
```sql
SELECT Sno AS 学号, Sname AS 姓名 FROM student;
```
或者不指定别名:
```sql
SELECT Sno, Sname FROM student;
```
- **查询全部列**:如果需要获取表中的所有列,可以使用星号`*`:
```sql
SELECT * FROM student;
```
- **列的别名和计算**:可以为列指定别名,并进行简单的计算,如计算出生年份:
```sql
SELECT Sname AS 姓名, (2014 - Sage) AS 出生年 FROM student;
```
- **消除重复行**:使用`DISTINCT`关键字去除重复行,如查询选修了课程的学生唯一学号:
```sql
SELECT DISTINCT Sno AS '选修了课程的学生学号' FROM SC;
```
- **大小比较**
- 可以根据条件筛选数据,例如查询计算机系(IS)全体学生名单:
```sql
SELECT Sname AS '学生姓名' FROM student WHERE Sdept = 'IS';
```
- 查询全体20岁以下的学生姓名和年龄:
```sql
SELECT Sname AS '姓名', Sage AS '年龄' FROM student WHERE Sage < 20;
```
- **确定范围**
- 使用`BETWEEN`关键字可以查询指定范围内的数据,例如查询20到23岁(含20和23)的学生信息:
```sql
SELECT Sname AS '姓名', Sdept AS '系别', Sage AS '年龄' FROM student WHERE Sage BETWEEN 20 AND 23;
```
- **IN和NOT IN操作**
- `IN`用于查询在特定集合内的数据,例如查询IS系和CS系学生姓名和性别:
```sql
SELECT Sname AS '姓名', Ssex AS '性别' FROM student WHERE Sdept IN ('IS', 'CS');
```
- 而`NOT IN`则用于查询不在特定集合内的数据,例如查询既不属于IS系,也不属于MA系的学生姓名和年龄:
```sql
SELECT Sname AS '姓名', Sage AS '年龄' FROM student WHERE Sdept NOT IN ('IS', 'MA');
```
这些SQL语句构成了MySQL查询的基础,熟练掌握它们能帮助你有效地处理和分析数据。在实际应用中,还可以结合`ORDER BY`进行排序,`GROUP BY`进行分组,`HAVING`过滤分组后的结果,以及`JOIN`操作连接多个表,实现更复杂的查询需求。了解并灵活运用这些语句,将极大地提升你的数据库操作能力。
2020-09-09 上传
2009-03-12 上传
2021-01-19 上传
2020-12-16 上传
weixin_38659159
- 粉丝: 6
- 资源: 961
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程