【oracle】五、select基本查询用法、select查询顺序


SELECT语法

一、select 基本结构和简单查询

1.1 select结构

select * |字段[,...] from table [表]

select 关键字 后面跟要查询的内容 from 关键字后面跟数据的来源

解析步骤

  1. from找来源
  2. 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 总结

  1. 简单查询(某些列、全部)
select 查询字段1,查询字段2 from 数据来源
  1. 去重
select distinct 查询字段1,查询字段2 from 数据来源
  1. 别名
select distinct 查询字段1 as bm1,查询字段2 as bm2 from 数据来源
  1. 伪列
select distinct 查询字段1 as bm1,查询字段2 as bm2, 表达式 as 别名 from 数据来源
  1. 排序
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 -- 默认升序 
  1. 和null计算时,得到都是null
  2. 字符串拼接 || 如何和null拼接则是自己
  3. nulls first nulls last 根据选择NULL值排序

4.2查询顺序

select .... from .. order by

  • from 数据源 (先确认数据源)
  • select (根据数据源确认要展示的列)
  • order by (根据要展示的列,进行排序或者正序展示。NULL值会影响排序!!!)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM