mysql select
select distinct user from user; 检索唯一,使用关键字,他必须放在列名前面.
select user from user limit 2; 检索单个列,指定显示前几行.
select user from user limit 1,2; 表中第一行代表是0,指定从第1行开始,显示往下的2行, 10,2 同理,显示第10行开始的下2行.
select user.user from user; 完全限定列名.(同时使用表名和列名)
select user from user order by user; 数据排序,指定列名
select user,host from user ORDER BY user,host; 检索多个列,进行多个列数据排序,
SELECT user,host FROM user ORDER BY user DESC,host; 检索多个列,数据排序, DESC关键字对数据降序排序(z-a,大到小),默认是升序排序 ASC (a-z,小到大).
SELECT user FROM user ORDER BY user DESC limit 1; 使用数据排序和指定行组合,可以显示出一个列中最高或者最低的值.
SELECT user FROM user ORDER BY user limit 1; 使用数据排序和指定行组合,可以显示出一个列中最高或者最低的值.
子句位置定义:FROM-WHERE-ORDER BY-LIMIT 使用顺序不对,会导致执行不成功.
SELECT user,host FROM user WHERE host = 127; 检索多个列,显示指定列的值(数字值不需要引号),相等测试
SELECT user,host FROM user WHERE user = 'root' ORDER BY user LIMIT 1; 检索多个列,相等测试(字符串需要引起来),对user列数据排序,显示第一行.
< > != <> <= >=
SELECT id FROM user WHERE id BETWEEN 5 AND 10; BETWEEN操作符,指定两个值,所需范围低值和高值,值之间用AND关键字分隔.BETWEEN操作符表示范围中所有的值(起始和结束).
SELECT user FROM user WHERE host IS NULL; 检索空值.
SELECT id,name FROM user WHERE nianji = 10 AND id >= 5; 显示id,name列,但是你nianji要等于10,id>=5. 可以添加多个过滤的条件,没添加一条就要使用一个AND. AND可以理解为 并且
SELECT user FROM user WHERE host = 127 OR host = 'localtion'; 显示检索匹配任一条件的行.
WHERE 子句的关键字 AND和OR,可以理解为检索匹配 并且,或者. WHERE可包含任意数目的AND和OR操作符.
计算次序, sql 在处理操作符时,优先处理AND操作符,在处理OR操作符, () 圆括号具有较AND和OR操作符高的计算次序. 在使用OR,AND操作符时,应该使用 () 明确分组操作符,不能过分依赖计算次序.
SELECT user,host FROM user WHERE (host = 127 OR host = 12) AND user = 'root'; 检索匹配 () 内的条件,然后计算AND操作.
SELECT user,host FROM user WHERE id IN (1,10) ORDER BY user; IN 关键字和OR关键字功能相当,取列内指定范围的清单值,整个清单必须括在圆括号中
SELECT user,host FROM user WHERE id NOT IN (1,10) ORDER BY user; NOT 关键字否定了跟在它之后的条件,检索条件不匹配1到10 之间的id列,而是匹配1,10值之外的id.(IN 关键字也可以换成OR来使用)
WHERE子句关键字:
AND OR IN ( ) NOT LIKE‘%’ LIKE ‘_’ REGEXP ‘ ’
SELECT user,host FROM user WHERE user LIKE 'r%'; LIKE操作符,模糊搜索,LIKE后跟搜索模式 %代表任意字符出现任意次数.(搜索值需要引起来) %不可以匹配NULL值.
SELECT user,host FROM user WHERE host LIKE '_2%'; _ 代表匹配一个字符.
SELECT user,host FROM user WHERE host REGEXP '127'; REGEXP正则匹配,显示包含127的所有行.
SELECT user,host FROM user WHERE host REGEXP 't.l'; 正则匹配, . 匹配任意一个字符。
SELECT user,host FROM user WHERE host REGEXP '1|local|:'; 正则匹配,| 表示或者,和OR 用法类似,可以匹配多个 | 。
SELECT user,host FROM user WHERE host REGEXP '[1:l]o'; 正则匹配,[ ]括号内定义一组字符,意思是匹配括号内任一字符,因此,显示匹配到有1o :o lo的行。
SELECT user,host FROM user WHERE host REGEXP '[^127.0.0.1]'; 正则匹配,[^]括号内^号否定括号内内容,显示匹配不是括号内容的行,类似于grep –v。
SELECT user,host FROM user WHERE host REGEXP '[1-5]7'; 正则匹配,[1-5]定义范围,括号内1到5的任意字符,也可以是[3-7],[a-z],[c-e].
SELECT user,host FROM user WHERE host REGEXP '\\.'; 正则匹配,\\ 转义字符,.是代表任意字符,但是\\.就代表.本身,\\.表示查找. 同理 \\-代表查找- \\\代表查找\
\\也用来表示元字符:
\\f 换页
\\n 换行
\\r 回车
\\t 制表符
\\v 纵向制表