SQL 包你会-------如何检索数据并进行处理?

3.排序检索数据


排序数据
如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有任何意义。

子句
SQL语句由子句构成,子句可以是必须的,也可以是可选的。
子句通常有一个关键字加上所提供的数据组成。


order by子句
order by 子句可以对select语句检索出来的数据进行明确的排序。
order by取一个或多个列的名字,据此对输出进行排序。
在指定一条order by子句时,必须保证它是select语句中的最后一条子句。
用非检索的列排序数据是完全合法的。


按多个列排序
按多个列排序,列名之间用逗号分开即可。
在按多个列进行排序的时候,只会在多行具有相同的第一列值时,才对这些行按照第二个列进行排序。
如果第一列中的所有的值都是唯一的,则不会对第二个列进行排序。


按列位置进行排序
order by 2 表示按select清单中的第二列进行排序
order by 2,3表示按select清单中的第二列进行排序,再按第三个列进行排序。
如果排序的列不在清单中,则不能使用该技术。


按非选择列排序
如果有必要,可以混合匹配使用实际列名和相对列位置。


指定排序方向
默认的排序是升序
为了进行降序排序,必须指定desc关键字
如果想在多个列上进行降序排序,必须对每一列指定desc关键字。
desc是descending的缩写。    


4.过滤数据

使用where子句对数据进行过滤。
只检索出所需要的数据,需要指定搜索条件。搜索条件就是过滤条件。
数据根据where子句中指定的搜索条件进行过滤。
相等检验是检查这一列的值是否为特定值,据此过滤数据。
数据也可以在应用层过滤。
当sql语句为客户端应用检索出超过实际所需的数据时,可以通过客户端代码对返回数据进行循环,提取所需要的行。


where子句操作符
where子句操作符包括=,<>,<,<=,>,>=,!>,!<,between,is null, is not null;
where子句操作符是冗余的。

不匹配检查
如果将值与字符串类型的列进行比较,就需要限定引号。
用来与数值列进行比较的值不用引号。

范围值检查
要检查某个范围的值,可以使用between操作符。
between需要两个值,范围的开始值,和范围的结束值。
范围的开始值和范围的结束值必须用and关注子分隔。
between匹配范围中所有的值,包括制定的开始值和结束值。

空值检查
在一个列不包含值是,称其为包含空值Null。
null的意思是无值,no value
null值与字段包含0,空字符串货仅仅包含空格不同。
只能使用is null来检查具有Null值的列。
通过过滤选择不包含特定值的所有行时,不会返回含null值的行。
过滤数据时,一定要验证被过滤的列中含Null的行确实出现在返回的数据中。

猜你喜欢

转载自blog.csdn.net/weixin_42204641/article/details/84640620