Chapter 3. 数据检索(查询)---select、top...order by、distinct、where条件查询、分组查询、模糊查询、null处理

======select 数据查询======

查询表中全部数据:

select * from 表名  

select 列名1,列名2,列名3 . . .列名n from 表名

给查询出的列起别名:

方式1、原列名 as '别名'   

方式2、原列名 '别名'

方式3、别名=原列名

获取当前系统时间:

select 当前系统时间=getdate()

计算:

select 1+1

======top数据查询======

排序:order by 列名 desc(降序)/asc(升序)  默认为升序

获取前几条数据,top一般都会与order by配合使用:

select top 数值 要查询出的数据 from 表名 order by 要排序的列  asc/desc

Order by

1、  降序 order by 列名 desc

2、  升序 order by 列名 asc

3、  Order by语句必须要放在整个SQL语句的最后

      Select * from 表名inner join … where … group by … having … order by …

4、  根据多列进行排序:

Select * from 表名 order by 列1 desc , 列2 desc

(先按照列1降序排序,当列1中的数据相同时,再按照列2降序排序)

5、  表中的数据是集合,集合是没有顺序的。Order by返回的数据是有顺序的,故此我们把order by 返回的数据集合叫做“游标”

======distinct数据查询======

针对已经查询出的整个结果集进行数据去重处理:

select distinct * from 表名

======带条件查询======

select 列名 from 表名 where 条件

between ... and ...    在...之间(闭区间,包含两个端点)

where 条件 多个数据用:in ... (在...范围之内) / or...(或者)

======分组查询======

在使用select查询的时候,有时需要对数据进行分组汇总(即:将现在有的数据按照某列来汇总统计),这时就需要用到group by语句。

Select语句中可以使用group by语句将行划分为较小的组,然后使用聚组函数返回每一个组的汇总信息。

当使用了分组语句或者是聚合函数的时候,在select的查询列表中不能再包含其他的列名,

除非该列同时也出现在了group by子句中,或者该列也包含在了某个聚合函数中。

对分组以后的数据进行筛选: having

Where是对分组前的每一行数据进行筛选,后可以使用任何列

Having是对分组后的每一组数据进行筛选,后可以使用聚合函数或者分组后的列

======模糊查询======

只针对字符串

 通配符:

 _  : 表示任意的单个字符

select * from 表名 where 列名 like  ' 包含的字符 _ '

% :表示任意的多个字符 

select * from 表名 where 列名 like  ' 包含的字符 % '

[ ] :表示筛选,范围

select * from 表名 where 列名 like  ' 包含的字符 [ 范围 ] '

 ^ :表示非

 not like 不等同于 like ^

通配符放到[ ]中可以转义为普通字符

escape '自己指定的转义符'

======空值处理======

null值无法使用=或<>来进行比较

判断null值必须使用 is null 或者 is not null

任何值和null计算,结果为null

原文地址:https://www.cnblogs.com/xiao55/p/5579213.html