高级命令
按关键字排序
- 使用ORDER BY语句来实现排序
- 排序可针对一个或多个字段
- ASC:升序,默认排序方式
- DESC:降序
- ORDER BY的语法结构
select * from 表名 order 序列名 asc|desc;
对结果进行分组
- 使用 group by语句来实现分组
- 通常结合聚合函数一起使用
- 可以按一个或多个字段对结果进行分组
- group by的语法结构
select * from info group by name
限制结果条目
- 只返回select查询结果的第一行或前几行
- 使用limit语句限制条目
- limit语法结构
select * from info limit 3,4;
设置别名
- 使用AS语句设置别名,关键字AS可省略
- 设置别名时,保证不能与库中其他表或字段名称冲突
- 别名的语法结构
select name 姓名,nl 年龄 from info
- AS作为连接语句
create table foin as select * from info;
通配符
- 用于替换字符串中的部分字符
- 通常配合like一起使用,并协同where完成查询
- 常用通配符
- %表示零个,一个或多个
- _表示单个字符
- 通配符%的用法
select * from info where name like ‘asd%’;
- 通配符_的用法
select * from info where name like ‘_asd’;
- 子查询
- 也称作内查询或者嵌套查询
- 先于主查询被执行,其结果将作为外层主查询的条件
- 在增删改查中都可以使用子查询
- 支持多层嵌套
- IN语句是用来判断某个值是否在给定的结果集中
select * from info where
NULL值
- 表示缺失的值
- 与数字0或者空白(spaces)是不同的
- 使用IS NULL 或IS NOT NULL进行判断
- NULL值和控值的区别
- 空值长度为0,不占空间;NULL值的长度为NULL,占用空间
- IS NULL无法判断空值
- 空值使用“=”或者"<>”来处理
- COUNT()计算时,NULL会忽略,控值会加入计算
正则表达式
- 根据指定的匹配模式记录中符合要求的特殊字符
- 使用REGEXP关键字指定匹配模式
- 常用匹配模式
- ^匹配开始字符
- $匹配结束字符
- .匹配任意单个字符
- *匹配任意个前面的字符
- +匹配前面字符至少一次
- p1|p2 匹配p1或p2
- […]匹配字符集中的任意一个字符
- [^…]匹配不在中括号内的任何字符
- {n}匹配前面的字符串n次
- {n,m}p匹配前面的字符串至少n次,至多m次