基础查询★
条件查询★
排序查询★
常见函数★
分组函数★
分组查询★
连接查询★
子查询√
分页查询★
union联合查询√
myemployees库是尚硅谷网课附带的数据库文件。
右键单击root@localhost ➡ 执行SQL脚本。

找到sql文件所在位置,执行。

手动刷新。

可以看到其中有四张表:

语法:
SELECT 要查询的东西【FROM 表名】;
类似于Java中:System.out.println(要打印的东西);。
特点:
SELECT 字段名 FROM 表名;SELECT 字段名,字段名 FROM 表名;
多条命令存在时,要执行哪个命令就先选中哪个命令,以后都是这样。
SELECT * FROM 表名;
缺点:这样无法改变表中字段顺序,可以采用手动输入所有字段的方式自己决定顺序,当然这样很麻烦。
SELECT 常量值;SELECT 表达式;SELECT 函数名(实参列表);SELECT DISTINCT 字段名 from 表名;注意:不像Java中的+还有连接字符串的功能。
SELECT 数值+数值;:直接运算。

SELECT 字符+数值;:先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算。


SELECT NULL+任意值;:结果都为null。

功能:拼接字符,实现Java中+的功能:SELECT CONCAT(字符1,字符2,字符3,...);。

【补充】IFNULL函数:SELECT IFNULL(expr1,expr2) FROM 表名;
功能:判断某字段或表达式(expr1)是否为null,如果为null返回指定的值(expr2),否则返回原本的值。

所以正确的解法:

语法:
SELECT
查询列表
FROM
表名
WHERE
筛选条件;
分类:
一、按条件表达式筛选
简单条件运算符:> < = <>(相当于!=) >= <=
示例:salary>10000
二、按逻辑表达式筛选
逻辑运算符:and or not(&& || !)
示例:salary>10000 && salary<20000
三、模糊查询
like、between and、in、is null
示例:last_name like ‘a%’
模糊查询的特点:
%任意多个字符,包含0个字符;_任意单个字符;
如果要查询的字段含有通配符(_、%等),使用转义字符来失效通配符的功能。
SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '_$_%' ESCAPE '$';
# 意思是:第一个任意,第二个是_,后面的任意。
比如:
department_id>=100 AND department_id<=110;
可以用department_id BETWEEN 100 AND 110;
作用:判断某字段的值是否属于in列表中的某一项
=或<>不能用于判断null值,只能进行数字上的判断。is null或is not null可以判断null值

安全等于:<=>,既可以判断空值,又可以判断数字。
commission_pct <=>NULL;
相当于
commission_pct IS NULL;
salary <=> 12000;
相当于
salary = 12000;
比较:
IS NULL:仅仅可以判断NULL值,可读性较高,建议使用。
<=>:既可以判断NULL值,又可以判断普通的数值,但是可读性较低,不推荐。
语法:
SELECT
查询列表
FROM
表名
【WHERE 筛选条件】
ORDER BY 排序的字段或表达式【 ASC / DESC 】 ;
#1、按单个字段排序
SELECT
*
FROM
employees
ORDER BY salary DESC ;
#2、添加筛选条件再排序
#案例:查询部门编号>=90的员工信息,并按员工编号降序
SELECT
*
FROM
employees
WHERE department_id >= 90
ORDER BY employee_id DESC ;
#3、按表达式排序
#案例:查询员工信息 按年薪降序
SELECT
*,
salary * 12 * (1+ IFNULL(commission_pct, 0))
FROM
employees
ORDER BY salary * 12 * (1+ IFNULL(commission_pct, 0)) DESC ;
#4、按别名排序
#案例:查询员工信息 按年薪升序
SELECT
*,
salary * 12 * (1+ IFNULL(commission_pct, 0)) 年薪
FROM
employees
ORDER BY 年薪 ASC ;
#5、按函数排序
#案例:查询员工名,并且按名字的长度降序
SELECT
LENGTH(last_name),
last_name
FROM
employees
ORDER BY LENGTH(last_name) DESC ;
#6、按多个字段排序
#案例:查询员工信息,要求先按工资降序,再按employee_id升序
#最终效果:工资相同的人按员工id降序
SELECT
*
FROM
employees
ORDER BY salary DESC,
employee_id ASC ;