【Oracle】子查詢、偽列、分頁查詢、表連線
阿新 • • 發佈:2020-09-08
子查詢、偽列、分頁查詢、表連線
①. 子查詢 子查詢可代替表、屬性值 ①子查詢結果是1行1列 例:查詢工資最高的員工資訊 select * from employees where salary = (select max(salary) from employees); ②子查詢結果是n行1列 例:查詢和“king”一個姓的並且在同一部門的員工的資訊 select * from employees where department_id in(select department_id from employees where last_name = ‘king’); ③子查詢結果是n行n列 例:查詢工資前五位到前十位之間的員工資訊 select * from (select employee_id, first_name, last_name,rownum as rn from (select * from employees order by salary desc)) where rn >= 5 and rn <= 10 ②. 偽列、分頁查詢 偽列: rowid 行的實體地址,不存在於任何表,可查詢 rownum 對查詢滿足條件的結果資料進行編號(從1開始) 用法: select rowid,rownum,其他欄位 from 表; 分頁: 利用子查詢,將查詢所有表資料再加上序列(rownum)作為一個臨時表 例如: ①查詢薪資從第五到第十位的員工資訊 **先按工資降序排序,在加上序號欄位形成臨時表 select * from (select employees_id, first_name, last_name, salary, rownum as rn from (select * from employees order by salary desc)) where rn >= 5 and rn <= 10 ②對錶加序號 select employees.*, rownum as rn from employees; ③. 表連線 將多張表連線為一張表進行處理(放在from後) 1.內連線 關鍵詞:…(inner)join … on inner可以省略 語法:表1 (inner)join 表2 on 表1.xxx = 表2.xxx 特點:①合併表1存在且表2也與之對應存在的資料②不保留表1存在且在表2中對應不存在的元組資料(與外連線對比) 2.外連線 ①左外連 關鍵詞:left (outer) join … on outer可以省略 語法:表1 left join 表2 on 表1.xxx = 表2.xxx 特點:合併表1和表2,並且會保留表1存在且表2對應不存在的元組,並對其補充為空 ②右外連 語法:表1 right join 表2 on 條件 3.擴充套件 如果有兩張以上的表進行連線時,先連線兩個後成為一個表,再連線下一個,依次連線