1. 程式人生 > >Oracle 基礎查詢

Oracle 基礎查詢

group_by star 執行 ctu 員工 tro tin num 改變

  • SQL (Structured Query Language )結構化查詢語言。

查詢是一種從一個或多個表或視圖中檢索數據的操作,不會改變表中的數據。

查詢數據是數據庫的核心操作,是使用頻率最高的操作。

  • select語句的基本語法格式是:

select [distinct] * | 列名1[as c1],列名2[as c2]..., 列名n , 組函數(...)

from 表名1別名1,表名2別名2...

[where 條件]

[group by 列名1,列名2..., 列名n ]

[having 條件]

[order by 排序列名1 ASC | DESC , 排序列名2 ASC | DESC...]

  • SQL執行計劃

(8)SELECT (9)DISTINCT (11)<Top Num> <select list>
(1)FROM [left_table]
(3)<join_type> JOIN <right_table>
(2)ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH <CUBE | RollUP>
(7)HAVING <having_condition>
(10

)ORDER BY <order_by_list>

例:

1) 查詢出部門表中 所有部門的編號與名稱

selectd.id,d.name

from s_dept d;

2) 查詢出部門表中 所有部門的編號與名稱,位置

Select d.id,d.name,d.region_id

From s_dept d;

3) 查詢出員工表中的 員工的編號,姓名,薪水與職位

selecte.id,e.first_name,e.salary,e.title

froms_emp e;

4) 查詢出員工表中的所有信息

select * from s_emp;

  • 表的別名,列的別名

distinct關鍵字: 去重,必須放在開頭字段前,會作用於後面所有的字段

本身是 二重循環查詢,當數據量較大時,不適用

|| 表示拼接

nvl() 表示空值置換函數

示例:

1) 從s_emp表中查詢公司中所有職位

select distinct title from s_emp;

  • 排序: order by 列名1 asc | desc , 列名2 asc | desc .... [ 默認升序]

示例:

2) 查詢出所有的員工信息,按照他們的薪水的降序排列

select * from s_emp e order by e.salary;

3) 查詢出所有的員工信息,按照他們的薪水的降序排列,若工資相同,根據入職日期的升序排列

select * from s_emp e

order by e.saaryldesc , e.start_dateasc;

Oracle 基礎查詢