目錄
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值會影響排序!!!)