目录
SELECT语法
一、select 基本结构和简单查询
1.1 select结构
select * |字段[,...] from table [表]
select 关键字 后面跟要查询的内容 from 关键字后面跟数据的来源
解析步骤
- from找来源
- select 挑数据
二、去重、别名和排序
2.1 去重
select distinct [字段][,...] from [表]
注意:去掉重复是去掉一行的记录,按照一行记录去去重的
2.2 别名
select [字段] [别名] from [表]
-- 字段和别名跟一个空格即可
-- 使用as方式.也可以加一个as进行别名的
select [字段] as [别名] from [表]
2.3 排序
-- 降序
select [字段] from [表名] order by [要排序的字段] desc;
-- 升序
select [字段] from [表名] order by [要排序的字段] asc;
2.4 多字段排序
select [字段] from [表名] order by [要排序的字段] desc, [要排序的字段] asc;
select [字段] from [表名] order by [要排序的字段] asc, [要排序的字段] desc;
三、伪列和虚表
3.1伪列
查询不存在的列即伪列,当需要的结果,不能直接从表里得到,是需要额外计算的就称之为伪列
-- 这里的1 就相当于伪列
select ename,1 from emp;
3.1.1 NULL处理
如果表里存在NULL值,就会影响我们计算,因为NULL和任何数计算都是NULL
-- 如果表达式值为true,则取表达式值,否则就取set值
NVL(表达式,set值)
-- 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
-- 如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
nulls first
nulls last
3.1.2 字符串拼接
字符串拼接,是为了伪列,中有些需要拼接 的列产生的
select [字段]||‘xx’ as [拼接的列] from [表名]
虚表3.2
虚表是dual;其实是为了满足,某些数据的计算而产生的的
-- 计算 231*21
select 231*21 from dual;
四、select 执行顺序
4.1 总结
- 简单查询(某些列、全部)
select 查询字段1,查询字段2 from 数据来源
- 去重
select distinct 查询字段1,查询字段2 from 数据来源
- 别名
select distinct 查询字段1 as bm1,查询字段2 as bm2 from 数据来源
- 伪列
select distinct 查询字段1 as bm1,查询字段2 as bm2, 表达式 as 别名 from 数据来源
- 排序
select distinct 查询字段1 as bm1,查询字段2 as bm2, 表达式 as 别名 from 数据来源 order by 要排序的字段 asc -- 默认升序
select distinct 查询字段1 as bm1,查询字段2 as bm2, 表达式 as 别名 from 数据来源 order by 要排序的字段 desc -- 默认升序
- 和null计算时,得到都是null
- 字符串拼接 || 如何和null拼接则是自己
- nulls first nulls last 根据选择NULL值排序
4.2查询顺序
select .... from .. order by
- from 数据源 (先确认数据源)
- select (根据数据源确认要展示的列)
- order by (根据要展示的列,进行排序或者正序展示。NULL值会影响排序!!!)