基础查询
语法
SELECT 查询列表 FROM 表名;
特点:
- 查询的列表可以是:表中的字段、常量值、表达式、函数。
- 查询的结果是一个虚拟的表格。
查询表中的单个字段
SELECT last_name FROM employees;
查询表中的多个字段
SELECT last_name,salary,email FROM employees;
- 查询命令中字段的数量和顺序无要求。
查询表中的所有字段
SELECT * FROM employees;
查询常量
SELECT 常量;
查询表达式
SELECT 100+100;
查询函数
SELECT version();
字段起别名
SELECT 100+100 AS 结果; SELECT last_name AS 姓, first_name AS 名 FROM employees;
便于理解
查询字段有重名,可以使用别名区分
AS可以省略,使用空格
SELECT 100+100 结果;
- 若别名中有特殊符号以及关键字时,将别名外加双引号
去重
SELECT DISTINCT department_id FROM employees;
+号的作用
- 再mysql中+号只能作为运算符
- 若+号一边为字符型,则会将字符转换为数值型,若转换失败则会转换为0
- 只要其中一边为null,结果则为null
字符串拼接
SELECT CONCAT(last_name, first_name) as 姓名 FROM employees;
IFNULL();
- 参数一:可能为空值的字段
- 参数二:当字段为空值时显示的内容
SELECT IFNULL(commission_pct, 0) FROM employees;
条件查询
语法
SELECT 查询列表 FROM 表名 WHERE 筛选条件;
- 显示筛选条件成立的所有行
分类
- 按条件表达式筛选
- 条件运算符:> < = != <> >= <=
SELECT * FROM employees WHERE salary>12000;
- 逻辑表达式
- 逻辑运算符:&& || ! and or not
SELECT * FROM employees WHERE salary>=10000 AND salary<=20000;
- 模糊查询
- like
- 一般和通配符搭配使用
- 通配符
- % 任意多个字符,包括0个
- _ 任意单个字符。
SELECT * FROM employees WHERE first_name LIKE '%a%';
- between and
- 可以提高语言的简洁度
- 包含临界值
- 临界值顺序不可调换
SELECT * FROM employees WHERE salary BETWEEN 10000 AND 20000;
- in
- 用于判断字段中的值是否属于in列表中的某一项
- 提高语句简洁度
- in列表中的值必须统一或兼容
- 不可以使用通配符
SELECT * FROM employees WHERE job_id IN('IT_PROG', 'AD_VP', 'AD_PRES');
- is null
- =号不可以判断null值
SELECT * FROM employees WHERE commission_pct IS NULL;
ESCAPE 自定义转义字符
SELECT * FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';
安全等于:<=>
- 可以进行null值判断,也可以进行数值判断