sql 排序_SQL基础语句之检索、排序与过滤

检索数据

SELECT

检索列:SELECT 列名1,列名2,列名3

FROM 表名;

检索全部:SELECT *

FROM 表名;

DISTINCT

用DISTINCT来查找不重复的行。

SELECT DISTINCT Bedrooms,Bathrooms FROM practice1.house_price;

排序检索数据

ORDER BY

多列排序

SELECT 列名1,列名2,列名3 

FROM 表名

ORDER BY 列名3,列名4(可以是非选择中的列名);

注意:先按列名3,再按列名4排序

指定排序方向

SELETC 列名1,列名2 FROM 表名

ORDER BY 列名3 DESC(降序),列名2 ASC(升序,默认);

过滤数据

WHERE

SELECT 列名1,列名2

FROM 表名

WHERE 搜索条件/过滤条件(操作符)

ORDER BY 列名3;

注意:ORDER BY在WHERE之后

操作符总结:

5a6588888009b4daa4fe4172fbed2dfe.png

 WHERE+AND/OR(IN/NOT)

AND操作符

SELECT 列名1,列名2

FROM 表名

WHERE 条件1 AND 条件2;#同时满足两个条件

OR操作符

SELECT 列名1,列名2

FROM 表名

WHERE 条件1 OR 条件2;#满足条件1或条件2

注意:计算次序是先AND再OR,多AND和OR组合时,注意加括号明确分组

IN操作符

SELECT 列名1,列名2

FROM 表名

WHERE 列名4 IN (,,)

ORDER BY 列名3;#相当于OR

NOT操作符

SELECT 列名1,列名2

FROM 表名

WHERE NOT 条件

ORDER BY 列名3;

SELECT * FROM practice1.house_priceWHERE Bedrooms = 2AND NOT Bathrooms = 3; # NOT比AND的优先级高,先执行NOT

WHERE+LIKE+通配符:针对不完全已知的文字查找

百分号%

A%:SELECT 列名1,列名2

FROM 表名

WHERE 列名3 LIKE ‘Fish%’;

注意:搜索模式 Fish%表示匹配任何以Fish开头的值,接受Fish之后任意字符,不管多少字符

%A %:SELECT 列名1,列名2

FROM 表名

WHERE 列名3 LIKE ‘%Fish%’;

注意:搜索模式 %Fish%表示匹配任何位置包含Fish的值,不管它之前之后出现什么字符

A%C:SELECT 列名1,列名2

FROM 表名

WHERE 列名3 LIKE ‘F%h’;

注意:搜索模式 F%h表示匹配以F开头以h结尾的值

下划线(_)通配符:只匹配单个字符,而不是多个

_:匹配一个字符

__:两根,匹配两个字符

SELECT 列名1,列名2

FROM 表名

WHERE 列名3 LIKE ‘__ inch teddy bear’;

  注意:只能搜索出两位数的结果,因为有两根

方括号([])通配符:只匹配单个字符

[JM]%:所有以J或M开头的值

SELECT 列名1,列名2

FROM 表名

WHERE 列名3 LIKE ‘[JM]%’

ORDER BY 列名3;

[^JM]%:所有不以J或M开头的值

注意:并非所有都支持方括号,用NOT也可以

正则表达式

ddfd5a07498c9bcb99760581b06bb755.png

SELECT * FROM practice1.reWHERE 某列 REGEXP 'c$';#匹配字符串末尾带c的,注意是最后一位为c

参考书籍:《SQL必知必会》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值