检索数据
-
简单查询
select * from 表名;
select 列名 from 表名;
select 列名1,列名2 from 表名;
select 列名1,列名2 from 表名 limit 行数;
select 列名1,列名2 from 表名 limit 起点数,行数;
select 列名1,列名2 from 表名 limit 行数 offset 起点; -
排序检索数据
关键词ORDER BY
select * from 表名 ORDER BY 列名;(默认为降序(ASC)进行排序)
select * from 表名 ORDER BY 列名 DESC;(进行降序排序)
select * from 表名 ORDER BY 列名1,列名2;(按照列名的先后顺序进行排序,当列名1唯一时才会使用列名2进行排序)
与limit结合在某几行内进行排序。limit和order by的先后顺序是limit在前
select * from 表名 limit 行数 ORDER BY 列名; -
过滤数据
关键词WHERE、BETWEEN…AND
连接词有=、>、<、!=
select * from 表名 where 列名=确定的值;
select * from 表名 where 列名!=确定的值;(不匹配检查)
select * from 表名 where 列名 between 值1 and 值2;(能写的只有数值,目前这么理解一下) -
数据过滤(组合where子句)
关键词AND、OR、IN、NOT
select * from 表名 where 列名1=确定的值1 and 列名2=确定的值2;(两个条件同时满足才可以)
select * from 表名 where 列名1=确定的值1 and 列名2=确定的值2;(两个条件满足其中一个就可以)
select * from 表名 where 列名1 in (数值1,数值2);(在范围内进行查找)
select * from 表名 where 列名1 not in (数值1,数值2);(不在范围内进行查找) -
用通配符进行过滤
关键词LIKE
使用的相应符号 %、_
select * from 表名 where 列名1 like “值%”;(进行模糊查询,值后面可以跟多个字符)
select * from 表名 where 列名1 like “%值”;(进行模糊查询,值前面可以跟多个字符)
select * from 表名 where 列名1 like “%值%”;(进行模糊查询,值前后均可以跟多个字符)
select * from 表名 where 列名1 like “值1%值2”;(进行模糊查询,两值中间可以跟多个字符)
select * from 表名 where 列名1 like “_值”;(进行模糊查询,值前只能跟1个字符) -
用正则表达式进行搜索
关键词REGEXP
基本匹配:select * from 表名 where 列名1 regexp “值”;
like和regexp的区别:如果被匹配的文本在列值中出现,like将不会找到它。regexp将会返回。
“OR”匹配 :select * from 表名 where 列名1 regexp “值1|值2”;
匹配几个字符:select * from 表名 where 列名1 regexp “[值1值2]”;
匹配范围:select * from 表名 where 列名1 regexp “[值1-值2]”;
匹配特殊字符(转义字符):select * from 表名 where 列名1 regexp “\.”;
元字符 | 说明 |
---|---|
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 制表 |
\v | 纵向制表 |
在MySQL中两给双斜杠,MySQL自己解释一个,正则表达式库解释一个。
定位符 :^、$
元字符 | 说明 |
---|---|
^ | 文本的开始 |
$ | 文本的结尾 |
[[:<:]] | 词的开始 |
[[:>:]] | 词的结尾 |
通过一起使用^和$可以是regexp和like有一样的效果。