MySQL基础教程:韩顺平讲解SQL查询实践
需积分: 0 149 浏览量
更新于2024-08-05
收藏 9KB MD 举报
"该资源是韩顺平老师的MySQL教程,旨在帮助初学者在一周内掌握MySQL基础知识。视频链接指向 BV1H64y1U7GJ 的第90部分,内容涵盖了SQL查询的基本操作,如查看表结构、选择与过滤数据、排序以及处理特定条件的查询。"
在这一部分的学习中,主要涉及以下MySQL知识点:
1. **查看表结构**:
使用`DESC`命令可以查看MySQL数据库中表的结构,包括字段名、字段类型、是否允许为空(NULL)、键信息等。例如,`DESC dept;` 和 `DESC emp;` 分别用于查看`dept`和`emp`表的结构。
2. **选择数据**:
- `SELECT`语句用于从数据库中选择数据。例如,`SELECT dname FROM dept;` 显示所有部门名称,`SELECT ename, (sal + IFNULL(comm, 0)) * 13 AS '年收入' FROM emp;` 显示所有雇员名及其全年收入(工资加补助)。
- `IFNULL`函数用于当`comm`字段值为NULL时将其替换为0。
3. **过滤数据**:
- 使用`WHERE`子句可以设置查询条件。如:`SELECT ename, sal FROM emp WHERE sal > 2850;` 显示工资超过2850的雇员姓名和工资。
- 复合条件可以用`AND`和`OR`连接,例如:`SELECT ename, sal FROM emp WHERE sal < 1500 OR sal > 2850;` 显示工资不在1500到2850之间的雇员。
- `IN`和`NOT IN`可以用来匹配一组值,如:`SELECT ename, job FROM emp WHERE deptno IN (10, 30) AND sal > 1500;` 显示部门10和部门30中工资超过1500的雇员。
4. **排序数据**:
- `ORDER BY`语句用于对查询结果进行排序,如:`SELECT ename, hiredate FROM emp WHERE hiredate BETWEEN '1991-02-01' AND '1991-05-01' ORDER BY hiredate;` 按照雇佣日期排序显示1991年2月1日至5月1日雇佣的员工。
- 可以指定升序(`ASC`)或降序(`DESC`),默认为升序。
5. **更复杂的查询**:
- 使用`AND`和`OR`组合复杂条件,如:`SELECT ename, job FROM emp WHERE mgr IS NULL;` 查找没有管理者的员工。
- `BETWEEN`操作符用于指定一个范围,例如:`SELECT ename, job, hiredate FROM emp WHERE hiredate BETWEEN '1991-02-01' AND '1991-05-01';`
- `LIKE`和通配符(`%`和`_`)用于模式匹配,例如:查找名字以特定字符开头的员工。
- `IN`操作符用于匹配列表中的值,例如:找出部门10的经理和部门20的办事员。
6. **聚合函数和分组**:
虽然这部分未提及,但`GROUP BY`通常与聚合函数(如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`)一起使用,用于对数据进行汇总。
7. **联接查询**:
当需要从多个表中获取数据时,`JOIN`操作是必需的。例如,可以使用`INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN` 或 `FULL OUTER JOIN` 连接`emp`和`dept`表以获取员工和其所在部门的信息。
通过这些基本操作,你可以开始构建复杂的查询,满足不同的业务需求。在实际工作中,理解并熟练运用这些SQL概念对于数据处理至关重要。
2021-11-09 上传
2019-07-23 上传
2012-10-26 上传
2018-06-21 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
一只可爱狗勾
- 粉丝: 365
- 资源: 2
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构