1、去重
使用distinct
- DISTINCT department_id是去除department_id字段的重复值,返回department_id字段列
SELECT DISTINCT department_id FROM employees;
-
DISTINCT department_id,salary
是去除department_id
和salary
共同重复的值并且返回
SELECT DISTINCT department_id,salary FROM employees;
2、拼接
SELECT CONCAT('a','b');
3、条件查询
1)按条件表达式筛选(>, < ,= , != , <> , >= ,<=)
SELECT
*
FROM
employees
WHERE
salary>12000;
2)按逻辑表达式筛选
逻辑运算符: and or not (&& || !)
SELECT
*
FROM
employees
WHERE
salary<=10000 AND salary<=20000;
3) 模糊查询
1、like(一般和通配符搭配使用:% 任意多个字符;_ 任意单个字符)
SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%';
如果要查询含有_字符 可以使用转义符 \ ,或者使用ESCAPE 转义
SELECT
*
FROM
employees
WHERE
last_name LIKE '_$_%' ESCAPE '$';
2、between and (包含临界值)
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120;
3、in
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN('IT_PROT','AD_VP');
4、is null 或 is not null
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;
4、排序查询
语法:
select 查询列表
from 表
【where 筛选条件】
order by 排序列表 【asc(升序,默认)|desc(降序)】
SELECT * FROM employees ORDER BY salary;
- 按表达式排序
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
- 按别名排序
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY 年薪 DESC;
- 按函数排序
SELECT LENGTH(last_name) 字节长度,last_name,salary
FROM employees
ORDER BY LENGTH(last_name) DESC;
- 按多个字段排序
5、字符函数
1、length 获取参数值的字节个数
2、concat 拼接字符
3、upper (大写),lower(小写)
4、substr,substring
- 截取从指定索引处后面所有字符
SELECT SUBSTR('测试字符啊哈嗝',4) out_put;
- 截取从指定索引处指定字符长度的字符
SELECT SUBSTR('测试字符啊哈嗝',1,3) out_put;
5、instr 返回子串第一次出现的索引,如果找不到返回0
6、trim 用来移除掉一个字串中的字头或字尾
7、lpad 用指定的字符串实现左填充指定长度
8、rpad 用指定的字符串实现右填充指定长度
9、replace 用指定的字符替换