1.基础查询
查询函数(调用函数,获得返回值)
SELECT DATABASE(); #当前正在使用的库
SELECT VERSION(); #当前使用的数据库版本
SELECT USER(); #当前用户名
SELECT IFNULL(字段名,表达式); #字段名为null,执行表达式
#连接字符在一起



SELECT CONCAT(first_name,last_name) ‘姓 名’
FROM employees;
#用 + 号mysql识别非数值型char转化为0;
distinct
https://www.bilibili.com/video/BV12b411K7Zu?p=257
https://www.bilibili.com/video/BV12b411K7Zu?p=258


SELECT CONCAT(employee_id,’,’,first_name,’,’,IFNULL(commission_pct,’’)) AS ‘OUT’
FROM employees;
#首先+拼接碰到非数值型转化为0,所以用concat函数,在拼接中由于某些字段有null值,导致整行为null,解决办法是利用ifnull函数进行判断.
https://www.bilibili.com/video/BV12b411K7Zu?p=259
2.条件查询




% : **0**—-多个字符
between and 包含两个左右临界值.
https://www.bilibili.com/video/BV12b411K7Zu?p=262
https://www.bilibili.com/video/BV12b411K7Zu?p=263
https://www.bilibili.com/video/BV12b411K7Zu?p=264
https://www.bilibili.com/video/BV12b411K7Zu?p=265
https://www.bilibili.com/video/BV12b411K7Zu?p=266
SELECT *
FROM employees
WHERE department_id <> 100 ;
#不是is not !!!

SELECT *
FROM employees
WHERE lastname LIKE ‘|%’ ESCAPE ‘|’;
escape设定字符| 为转义字符,让它后面的 回归原意.

is null 判断null值,is not null判断非空值,空值不能与任何其他值比较
https://www.bilibili.com/video/BV12b411K7Zu?p=267
3.排序查询





order by 后面跟纯数字,就是按列数指向的列排序,第二列是first_name,与下面语句等价.


4.分组查询(当提到”每个”的时候就用分组查询)

的:后面的字段是要查询的,放select后面
的:前面的是条件
分组函数做条件只可能放在having后面!!!
查询列表一定是 分组函数和被分组的字段,select后的字段与group by后的字段有对应关系.
特点:
①查询列表往往是 分组函数和被分组的字段 ★
②分组查询中的筛选分为两类
| 筛选的基表 | 使用的关键词 | 位置 | |
|---|---|---|---|
| 分组前筛选 | 原始表 | where | group by 的前面 |
| 分组后筛选 | 分组后的结果集 | having | group by的后面 |
where——group by ——having
分组函数做条件只可能放在having后面!!!

不确定count里面填什么,填*
分组函数作条件只能放在having后面,根据这个进行填空.
SELECT job_id,MAX(salary)
FROM employees
WHERE commission_pct IS NULL
GROUP BY job_id
HAVING MAX(salary)>6000
ORDER BY MAX(salary);
分组函数做条件只可能放在having后面!!!
查询列表一定是 分组函数和被分组的字段,select后的字段与group by后的字段有对应关系.
多个字段分组,多个字段全部相同才算一组.
SELECT job_id,department_id,MIN(salary)
FROM employees
GROUP BY job_id,department_id
ORDER BY MIN(salary);
https://www.bilibili.com/video/BV12b411K7Zu?p=280
