Oracle怎么用dql查,Oracle常用SQL语句之三:数据查询(DQL)语句

SELECT语句功能

投影操作:结果集是源表中的部分列。

选择操作:结果集是源表中的部分行。

连接操作:将两张表里的行按某种条件组合成一条长长的行放入结果集。

最基本的用法:SELECT ……FROM……

SELECT子句

用于指定字段名,多个字段名用逗号隔开,*代表所有列。

SELECT后面可以跟列,字符,表达式,DISTINCT关键字(去掉重复行),函数,常量,组标识。完成对数据的处理。

FROM子句

用于指定表名。

例如:

SELECT DISTINCT NAME FROM TEST;

WHERE子句

根据条件过滤出需要处理的数据,对行过滤。后面跟条件表达式(列名,常量,比较运算符,文字值,不能跟列别名),可以用AND,OR连接多个条件表达式。

语法顺序:SELECT……FROM……WHERE……

例如:

SELECT NAME FROM TEST WHERE ID = 10001;

ORDER BY子句

SELECT语句的最后一个子句,也是最后执行的子句,功能是改变记录的输出顺序,排序。

ASC(缺省/默认) 升序,DESC降序。

ORDER BY后面可以跟列名,表达式,列别名,列在结果集中的位置值。

ORDER BY 后面可以跟多列,用逗号隔开。

NULL值在ORDER BY 子句中排序的顺序是:降序排在最上,升序排在最下。

语法顺序:SELECT ——> FROM ——> WHERE ——> ORDER BY

执行顺序:FROM ——> WHERE ——> SELECT ——> ORDER BY

例如:

SELECT * FROM TEST ORDER BY NAME DESC;

GROUP BY子句

功能是根据指定的列对行进行分组

语法顺序:SELECT……FROM……WHERE……GROUP BY……ORDER BY……

执行顺序:FROM……WHERE……GROUP BY……SELECT……ORDER BY……

例如:

SELECT NAME FROM SERVICE GROUP BY NAME;

注意:

在SELECT语句中,如果没有GROUP BY子句,若在SELECT子句中有一个组函数,那么其他都必须是组函数,否则会报错。

在SELECT语句中,如果有GROUP BY子句,SELECT子句中可跟组函数,或GROUP BY后面的表达式、组标识,其他会报错。

GROUP BY中包含多列的情况,用逗号隔开,分组的粒度更细,每组的记录少了,但组多了。

行级信息和组级信息不可以同时显示出来。

HAVING 子句

功能是对组过滤,后面接条件表达式。

语法顺序:SELECT……FROM……WHERE……GROUP BY……HAVING……ORDER BY……

执行顺序:FROM……WHERE……GROUP BY……HAVING……SELECT……ORDER BY……

WHERE和HAVING 的区别:

1、WHERE过滤的是行(记录)

2、HAVING过滤的是分组(组标识,每组数据的聚合结果)

3、WHERE后面可以跟任意列名,单行函数,不能跟组函数

4、HAVING后面只能跟组函数、组标识、GROUP BY后面的表达式

5、WHERE子句执行在前,HAVING子句执行在后

6、WHERE子句和HAVING子句都不允许有列别名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值