Sql单表查询语句的各种用法以及注意事项

一、Sql查询基本结构

SELECT  <目标列名序列>   FROM  <数据源>

[WHERE <检索条件表达式>]    [GROUP BY <分组依据列>]   [HAVING <组提取条件>]  [ORDER BY <排序依据列>]

其中[]代表可选项 、<>代表必须项

注意点

1.SELECT 子句中的<目标列名序列>可以是表中存在的列属性、表达式、常量或者函数

2.指定列别名:列名|表达式    [AS]  列别名

二、筛选查询  

1.消除取值相同的行(重复行):DISTINCT关键字

2.查询满足条件的元组

查询条件谓词注意点
比较<,=,>,>=,<=,!=(或者<>)取反操作NOT  x>=10比x<10效率要低
确定范围BETWEEN AND,NOT BETWEEN AND包括边界值
确定集合IN,NOT IN 
字符匹配LIKE,NOT LIKE

1.通配符含义

_:匹配任意一个字符

%:匹配0个或者多个字符

[]:匹配括号中的任意一个字符

[^]:不匹配括号中的任意一个字符

2.如果列定义的数据类型为普通字符串类型,例如char[10],则系统会为该字符分配固定10个字节的空间,不够用空格填空,所以要精确匹配,可以用去尾随空格的函数(RTRIM)

空值IS NULL,IS NOT  NULL 
多重条件AND,OR 

3.对结果进行排序:ASC升序、DESC降序,多字段依次排序

三、聚合函数

COUNT(*):统计表中元组的个数

COUNT([DISTINCT] <列名>):统计本列非空列值个数

SUM(<列名>):对数值型列进行求和

AVG(<列名>):对数值型列求平均值

MAX(<列名>)、MIN(<列名>):求最大最小值

注意点:

1.除COUNT(*)之外,其他函数计算过程中均忽略NULL值(去掉空值之后再进行计算)

2.聚合函数的使用范围可以是WHERE子句条件的记录,也可以对满足条件的组进行计算

3.聚合函数不能出现在WHERE语句中

四、对查询结果进行分组统计

注意点

1.如果使用了GROUP BY子句,那么查询列表中的每个列必须要么是分组依据列(GROUP BY后面的列),要么是聚合函数

2.GROUP BY子句中的分组依据列必须是表中存在的列名,不能是别名

3.使用带WHERE条件的GROUP BY语句,先筛选出满足WHERE条件的记录,再执行分组

4.在HAVING子句中可以使用聚合函数,但是不可以在WHERE子句中

5.建议所有在分组之前进行的搜索条件放在WHERE子句中而不是HAVING子句中,因为WHERE子句在GROUPBY之前执行,因此参与分组的数据比较少

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值