数据库常用操作回顾二

在数据库的常用操作一中,其中的一个概念 “属性名” 使用不严谨,在此之后更改为列名-即数据库中表的“列名”


在数据库常用操作一中,我总结了数据库层面、表层面和记录的插入、删除更新操作的知识。今天总结查询方面的内容。
在关系数据库中查询是使用得比较多也是稍微有点复杂度的操作,根据表的数量可以分为单表查询和多表查询。从条件方面分为有条件和无条件,常用的查询条件分为六种:分别是比较、范围、集合、字符匹配、空值、多重条件。

1.无条件查询

1.1 简单查询
select <列名1>,<列名2>, <列名3>… from <表名>

查询所有列时可以使用
select * from <表名>

要去除列中重复值时可以使用
select distinct <列名1>, <列名2>… from <表名>

1.2 分组结果(group by)
该查询常常和聚合函数配合使用
聚合函数有count()、max()、min()、 sum()、avg()
select <列名1>,<列名2>,<列名3>… from <表名>
group by <列名>
例如要查询不同教育水平的人的平均收入和对应的教育水平
这里写图片描述
其中教育下的数值代表不同的教育水平。但是这样的查询结果显然并不让人满意,我们可能更加希望查询的结果可以按照收入高低或者教育水平高低进行排序或者使用条件进行筛选。

1.3对结果排序(order by)
select <列名1>,<列名2>,<列名3>…
from <表名>
order by <列名1>,<列名2>… ASC|DESC;
其中ASC为升序,DESC为降序,默认情况下按升序排列。
这里写图片描述
从查询的数据结果中我们也可以看出教育水平越高的群体平均收入也越高。

2.有条件查询

有条件的查询需要用where关键字来指明条件
2.1 比较
比较条件通常要用到=, >, <, …常用的数学比较符号
select <列名>
from <表名>
where <列名> <比较关键字> <值>

2.2 范围
确定范围条件通常用到between and、 not between and 关键字
select <列名1>, <列名2>…
from <表名>
where <列名> (not)between <值> and <值>

2.3 集合
确定集合条件需要用到 in和 not in关键字
select <列名1>,<列名2>…
from <表名>
where <列名> in (集合值)

2.4 匹配字符
匹配字符用like 和 not like 关键字,除此之外还需要用通配符和换码字符来辅助筛选。常用的通配符有 ‘%’ 、‘_’, 换码字符是‘\’。
%:表示任意长度字符串
_:表示单个任意字符
\:换码字符,比如‘_’代表‘_’本身而不再是任意单个字符

扫描二维码关注公众号,回复: 4186990 查看本文章

select <列名1>, <列名2>…
from <表名>
where <列名> (not)like ‘<匹配字符串>’ escape ‘\’

其中换码字符‘\’需要用escape指出来,不然无法发挥他的作用

2.5 空值判断
空值条件判断用到 is null 和is not null关键字,用于查询列中值为空或不为空的元组
select <列名1>,<列名2>…
from <表名>
where <列名> is (not) null

2.6 多重条件
多重条件查询用到and 和 or关键字,用来连接多个查询条件
and:同时满足多个条件
or:满足多个条件中的一个条件
select <列名1>,<列名2>…
from <表名>
where <条件> and|or <条件2> and|or <条件3>

3.having关键字

之前我们在回顾group by分组查询时说过,对于分组后的结果我们可能还会需要进行一定的条件筛选操作,而且我们知道了where可以用来指明条件,但是这里where不能用于group对象,它只能用于基本表或者视图,所以我们需要用到having关键字,它的作用对象是组。
select <列名1>,<列名2>…
from <表名>
group by <列名>
having <条件>

猜你喜欢

转载自blog.csdn.net/braveheartm/article/details/82530971