1、基础查询
1.1、基础查询
SELECT 查询列表 FROM 表名
-- 查询列表可以是:表中的字段,常量值,表达式,函数
# 查询字段(字段之间使用逗号隔开)
SELECT ${colume1}, ${colume2}... FROM ${table_name}
# 查询表中所有字段
SELECT * FROM ${table_name}
# 查询常量值
SELECT 100;
SELECT 'abc';
SELECT 100*9;
# 查询函数
SELECT ${function_name}();
1.2、起别名
# 起别名有两种方式
-- 使用关键字AS
-- 直接在字段值后面加上别名
# 方式一
SELECT ${colume1} AS ${alias_name1}, ${colume2} AS ${alias_name2}... FROM ${table_name};
-- example:
SELECT employee_id AS id, first_name AS name FROM employees;
# 方式二
SELECT ${colume1} ${alias_name1}, ${colume2} ${alias_name2}... FROM ${table_name};
-- example:
SELECT employee_id id, first_name name FROM employees;
1.3、去重
# 去重主要依靠关键字 DISTINCT
SELECT DISTINCT ${colume} FROM ${table_name};
-- example:
SELECT DISTINCT department_id FROM employees;
1.4、连接
# 连接主要依靠函数 concat()
SELECT concat(${colume1}, ${colume2}) FROM ${table_name};
-- example:
SELECT concat(first_name, ' ' ,last_name) AS name FROM employees;
/*
需要注意的是,
当concat()参数中有为null的值,则返回值也为null
可以使用IFNULL函数判断
IFNULL(${colume, ${result}})
${colume}为可能为null的字段,${result}表示字段值为null时,希望输出的值
*/
/*
DQL中的连接不能使用加号+
+只能用来表示加减法
*/
-- 如果+左右都是数值型,做加减法
-- 如果+两边有一个为字符型,将试图将字符型转换为数值型
-- 如果成功,继续做加减法
-- 如果失败,将字符型转为0,再做加减法
-- 如果一方为null,运算结果为null
2、条件查询
2.1、基本条件查询
# WHERE
SELECT ${colume} FROM ${table} WHERE 条件语句
-- example:
SELECT employee_id FROM employees WHERE salary>10000;
2.2 条件语句
* 1、条件查询
-- 小于 <
-- 大于 >
-- 等于 =
-- 不等于 != 或者 <> (推荐使用<>)
-- 大于等于 >=
-- 小于等于 <=
-- 与 && 或者 and
-- 或 || 或者 or
-- 非 ! 或者 not
-- 按条件查询
SELECT * FROM employees WHERE salary>12000;
-- 逻辑查询
SELECT last_name, salary, commission_pct FROM employees WHERE salary>=1000 AND salary<=2000;
# 需要重点注意的是:如果逻辑查询语句中出现了 or... or... and这样的筛选条件,使用括号和不使用括号的效果是不同的,例如下面两句(第一种甚至可以说是逻辑错误的):
SELECT * FROM employees WHERE commission_pct<>0.4 or commonsion_pct is null and department_id='10';
SELECT * FROM employees WHERE (commission_pct<>0.4 or commonsion_pct is null) and department_id='10';
# 1、LIKE
-- 通常与通配符搭配使用
-- % 表示任意多个字符
-- _ 表示任意一个字符
-- \ 给通配符进行转意(或者使用ESCAPE指定转意字符)
SELECT * FROM employees WHERE last_name LIKE '%A%';
SELECT * FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';
-- 2、BETWEEN AND
-- 包含左右两端
-- 左小右大
SELECT * FROM employees FROM employee_id BETWEEN 100 AND 200;
-- 3、IN
SELECT * FROM employees FROM job_id IN ('IT_PROT', 'AD_VP');
-- 4、IS NULL
-- 不能使用 =null 或者 !=null
SELECT last_name FROM employees WHERE commission_pct IS NULL;
-- 5、安全等于<=>
-- 可用表示为Null的值
-- 可用于表示判断普通数值
SELECT last_name FROM employees WHERE commission_pct <=> NULL;
4、排序查询
4.1、数值排序
SELECT ${colume} FROM ${table_name} WHERE 筛选条件 ORDER BY 排序列表
# asc || desc
-- asc 升序
-- desc 降序
-- 默认升序
-- 支持单个字段,多个字段,表达式,函数,别名
SELECT * FROM employees ORDER BY salary ASC, employee_id DESC;
网友评论