五、DQL(select)
1、select语法
select colums from tablename;
select * from tablename;
2、查询辅助语句
-
where
-
having
where 与having的区别:
where不能使用聚合函数,having中可以使用聚合函数。where子句在聚合前先筛选记录,也就是说作用在group by子句和having子句前,而having子句在聚合后对组记录进行筛选。
1、where和having的区别
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
where:
where是一个约束声明,使用where来约束来自数据库的数据;
where是在结果返回之前起作用的;
where中不能使用聚合函数。
having:
having是一个过滤声明;
在查询返回结果集以后,对查询结果进行的过滤操作;
在having中可以使用聚合函数。
where和having的执行顺序:where早于group by早于having。
-
order by
asc 升序
desc 降序
-
group by
-
Distinct
-
and 、or
-
like、not like
-
in
-
is null
-
between and
SELECT product_name, standard_cost FROM products WHERE standard_cost NOT BETWEEN 500 AND 600 ORDER BY product_name;
注意:oracle无法直接使用limit,需要借助内置的rownum去计算行数。
SELECT * FROM TABLE_NAME WHERE rownum<20 and rownum>=10;
3、特殊辅助语法(仅能在Oracle 12c以上版本执行)
https://www.w3cschool.cn/oraclejc/oraclejc-ldr72qz5.html
- FETCH(限制显示行数)
- OFFSET(可选择跳过多少行)
- WITH TIES(可选择设置 最后一行的数一致时是否显示)
4、聚合函数
- count() 统计数量
- sum()求综合
- avg()统计平均值
- max()取最大值
- min()取最小值
- stddev()统计数据标准差
- variance() 统计方差