目錄
二、至少兩種方式行轉列
三、分頁
oracle學習(二)中我們學習了92語法,現在我們學習一下99語法
sql 1999語法
1.1.cross join 笛卡爾積
select * from emp cross join dept;
1.2.natural join 自然連線
當兩個表不具有相同列名,進行cross join,具有相同列名,自動匹配
select * from emp e natural join dept d;
1.3.on子句,新增鏈結條件,相當於92語法的等值連線
相當於92語法的等值連線
select * from emp e join dept d on e.deptno=d.deptno
相當於92語法的非等值連線
select * from emp e join salgrade sg on e.sal between sg.losal and sg.hisal
1.4.left outer join
左表中資料全部顯示,游標沒有資料直接顯示空
select * from emp left outer join dept d on e.deptno=d.deptno
1.5.right outer join
右表全部顯示,沒有資料顯示空
select * from emp right outer join dept d on e.deptno=d.deptno
1.6.full outer joinselect * from emp full outer join dept d on e.deptno=d.deptno
1.7.inner outer join
inner join 和 join一樣
select * from emp e inner outer join dept d on e.deptno=d.deptno
1.8.using
除了使用on表示連線條件,也可以使用using
使用using會少一列,因為deptno為連線列,不歸屬任何一張表
select * from emp e join dept d using(deptno)
姓名
語文數學
英語王五
8899
502.1.decode
select ss.name,
max(decode(ss.subject,'語文',ss.score)) 語文,
max(decode(ss.subject,'數學',ss.score)) 數學,
max(decode(ss.subject,'英語',ss.score)) 英語,
from student_score ss group by ss.name
2.2.case when thenselect ss.name,
max(case ss.subject
when '語文' then ss.score
end) 語文,
max(case ss.subject
when 『數學』 then ss.score
end) 數學,
max(case ss.subject
when '英語' then ss.score
end) 英語
from student_score ss group by ss.name
2.3.joinselect ss01.name,ss01.score 語文,ss02.score 數學,ss03.score 英語
from(select ss.name,ss.score
from student_score as
where ss.subject='語文') ss01
join(select ss.name,ss.score
from student_score as
where ss.subject='數學') ss02
join(select ss.name,ss.score
from student_score as
where ss.subject='英語') ss03
on ss01.name = ss03.name;
必須內部放入乙個字段,否則rn是可活動的
select * from (select emp.*,rownum rn from emp) where rn>2 and rn <5
資料庫多表關聯查詢
本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。外連線可分為 左連線 右連線 完全外連線。1 左連線 left join...
資料庫的多表聯查 比較L
三表聯查 首先建立三個資料表 1.user id cid pid 1 1 1 2 2 2 2.user1 cid class 1 數學 2 語文 3 英語 3.user2 pid name 1 孫 2 趙 3 錢 以上是三個表裡的內容 自己隨意填寫 即通過表1裡邊的cid與pid來作為表2和表3的i...
達夢資料庫查詢多表聯查
小結 select 列名列表 from 表 1,表 2 where 兩表關聯列條件表示式 select 列名列表 from 表 1 inner join on 兩表關聯列條件表示式 外連線可分為 左連線 右連線 完全外連線。左外連線 左外連線包含left join左表所有行,如果左表中某行在右表沒有...