ORACLE 查詢語句總結

2021-09-22 18:41:09 字數 1982 閱讀 5816

oracle查詢語句這塊有多表查詢和子查詢

,那麼首先我們先來了解下多表查詢,顧名思義多表查詢就是通過多張表去查詢資料,既然是多表查詢那麼就有了多表鏈結這一說法,那麼多表鏈結有以下這幾種寫法,

等值連線、不等值連線、自連線、滿外連線和外鏈結還有乙個自然連線

,那麼外鏈結又分為(

左外連線和右外連線)。

1、下面我們來了解想下各各連線的寫法,等值連線

select * from teacher t,course c where t.tno=c.tno;

等值連線就是把倆張表裡面相同的id連線起來即可

不等值連線

select e.first_name,e.salary,l.location_id

from employees e,locations

where e.first_name between l.street_address  and l.postal_code;

自連線selecte.last_name,e.employees_id,m.last_name,m.employee_id  from employees e,employees m

where e.manager_id =m.employee_id;

外連線之左連線和1999的寫法

oracle語法

selecte.last_name,e.employee_id,m.last_name,m.employee_id    from employees e,employees m

where e.manager_id =m.employee_id(+);

1999語法

selecte.last_name,e.employee_id,m.last_name,m.employee_id    from employees e left join employees m

on e.manager_id =m.employee_id;

以上者倆種寫法得出是資料結果是一樣的,右外連線與上面寫法相反即可,第一種寫法是,(+)在左邊是右連線(+在右邊是左連線),第二種寫法直接把 left join on改為 right join on即可

滿外連線

selecte.last_name,e.employee_id,m.last_name,m.employee_id    from employees e full outer join

employees m   on e.manager_id =m.employee_id;

滿外連線指的是把倆張表的所有資料給查出來

自然連線

select last_name,salary,employee_id,department_id,department_id,job_id,manager_id,email,department_name,commission_pct,hire_date,first_name,location_id from employees natural join departments

下面我們來了解下子查詢:子查詢也分為(單行子查詢和多行子查詢)

注意事項:

子查詢要包含在括號內。

將子查詢放在比較條件的右側。

單行操作符對應單行子查詢,多行操作符對應多行子查詢。

單行子查詢

select last_name,salary from employees

where salary <(select salary from employees where employee_id=100)

單行子查詢也就是說,在子查詢裡面的查詢語句查出來的資料只能是一條的,多於一條資料將不能成立

多行子查詢

select employee_id,last_name,department_id,salary

from employees

where salary 110;

在此說明一下 all和any的意思:any:指的是和子查詢返回的某乙個值比較all:和子查詢返回的所有值比較

oracle 查詢語句總結

查詢某字段為某個值的記錄 select from sales where type 皮夾子 模糊查詢 select from sys users where name like 吳 去重查詢 select distinct type name,table name from menutab 查詢前1...

Oracle查詢語句優化總結

建立表的時候。應盡量建立主鍵,盡量根據實際需要調整資料表的pctfree和pctused引數 大資料表刪除,用truncate table代替delete。合理使用索引,在oltp應用中一張表的索引不要太多。資料重複量大的列不要建立二叉樹索引,可以採用位圖索引 組合索引的列順序盡量與查詢條件列順序保...

Oracle查詢語句

select sysdate from dual dual 臨時的表,使語法結構完整,沒有什麼意義。oracle中的select語句必須要有from 而sql2008中可以沒有。起別名 起別名 as起別名,不用加雙引號.加空格起別名,要加雙引號 select name as 姓名 from stud...