1. 查询所有列的数据
用*代表所有列。
select * from 表名
2. 选择列
select 字段1,字段2,字段3… from 表名
3. 选择行
- 等值
select … from 表名 where 字段 = 条件
- 如查询salaries表中salary超过10000的信息
select *
from salaries
where salary > 10000;
- IN:检查一个值是否在一组值中
- 如查询表employees中姓名为kangkang,jack的员工。
select * from employees where name in ('kangkang','jack')
- between … and: 检查一个值是否在一个范围内,常用于数字和日期。
- 如查询salaries表中salary在8000到10000的信息。
select * from salaries where salary between 8000 and 10000;
- like简单模式匹配:’_’来精确匹配一个字符,’%’来匹配任意数量的字符。
如查询employees表中姓常的员工。
select * from employees where name like '常%';
查询姓赵并且名字共2个字的员工。
select * from employees where name like '赵_';
- 正则表达式
可以使用rlike或regexp函数在where子句中使用正则表达式。
如找出名字以字母J开头的员工信息
select * from employees where name rlike '^J';
找出姓名以薇结尾的人员信息
select * from employees where name regexp '薇$';
常用正则表达式表
序号 | 表达式 | 描述 | 序号 | 表达式 | 描述 |
---|---|---|---|---|---|
1 | * | 零次或重复多次 | 11 | [0-9] | 数字0到9 |
2 | + | 一个或多个重复 | 12 | ^…$ | 开始和结束 |
3 | ? | 可选字符 | 13 | \d | 任何数字 |
4 | . | 任意字符 | 14 | \D | 任何非数字字符 |
5 | \. | 区间 | 15 | \s | 任何空格 |
6 | ^ | 以······开始 | 16 | \S | 任何非空白字符 |
7 | $ | 以······结束 | 17 | \w | 任何字母数字字符 |
8 | [abc] | abc三者任选其一 | 18 | \W | 任何非字母数字字符 |
9 | [^abc] | 非a,非b,亦非c | 19 | {m} | m次重复 |
10 | [a-z] | 字符a到z,即任意英文字母 | 20 | {m,n} | m到n次重复 |
4. 限定结果limit
在查询的结尾使用limit来实现该效果。