MySQL基础教程:韩顺平讲解SQL查询实践

需积分: 0 3 下载量 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概念对于数据处理至关重要。