一、排序数据
按单个列排序
select * from 表名 order by 列名
按多个列排序
select * from 表名 order by 列名1,列名2.. --------先按列名1排序,若列名1中有多个相同值,再按列名2排序
按指定方向排序
select * from 表名 order by 列名1 desc,列名2... --------默认排序方向是升序排列,降序排列需要在列名后加desc关键字,想要多个列降序排列,则要在每个列名后加desc关键字(mysql默认A和a是相同的,不分大小写)
利用order by找最大最小值
select 列名 from 表名 order by 列名 limit 1
二、过虑数据
使用Where关键字,根据指定条件搜索数据
select * from 表名 where 条件语; --------where关键字后的条件语句可以是[=,!=(不等于), >, <, >=, <=, <>(不等于), between(在指定两个值之间)];注意:在比较时,数值不需要使用引号引起来,字符串需要使用引号引起来;使用between时,格式为:where 列名 between 值1 and 值2,检索的值包括初始值和结束值;
过滤空值
select * from 表名 where 列名 is null; --------检测空值,使用is null 关键字
带逻辑操作符[and, or]的where 语句
select * from 表名 where 条件语句1 逻辑操作符 条件语句2; --------注意:如果有一条语句中有多个逻辑操作符,计算优先级为and>or,可以使用小括号分组操作,避免出错
in操作符
**select * from 表名 where 列名 in (值1,值2...); -------- 小括号中为值清单,不是区间,in的作用与or差不多,但是in的语法更清晰直观,执行更快,可以包含其他select语句
not 操作符
select * from 表名 where 列名 not in (值1,值2...); --------not,用来否定跟在后面的条件
三、 使用通配符进行过滤
想要使用通配符进行过滤,必须要使用like操作符,表示后跟的搜索模式为通配符匹配,而不是直接相等匹配进行比较
百分号(%)
select 列名 from 表名 where 列名 like '爱%'; --------表示搜索列名中值为以爱开头的所有值。%,表示任何字符出现任意字数,但不能匹配null。注意:在一条语句中,可以在任意位置使用多个、多次通配符。
下划线 _
-------用法与百分号一致,但仅匹配一个字符。
通配符使用技巧
通配符搜索时间长,不要过度使用
正则表达式匹配
select 列名 from 表名 where 列名 regexp ’正则表达式‘