Oracle 的連線查詢記錄

2021-08-23 14:37:31 字數 1795 閱讀 9575

先 兩張表 建表語句如下:

create table a (

id number primary key,

name varchar2(20),

class varchar2(40),

homeaddress varchar2(200)

);create table b (

classid number primary key,

student varchar2(90)

);insert into a values(12,'蘋果筆記本','電腦','加州');

insert into a values (2,'聯想筆記本','電腦','北京');

insert into a values (3,'華為筆記本','電腦','深圳');

insert into a values (4,'榮耀手機','手機','深圳');

insert into a values (5,'華為手機','手機','深圳');

insert into a values (6,'恆大俱樂部','足球俱樂部','廣州');

insert into a values (7,'魯能足球俱樂部','足球俱樂部','青島');

insert into a values (8,'青島啤酒','飲料','青島');

insert into a values (9,'河南燴麵','主食','河南');

insert into a values (10,'少林寺','寺廟','鄭州');

insert into a values (11,'龍門石窟','景區','洛陽');*/

insert into b values (1,'少林寺');

insert into b values (2,'泰山');

insert into b values (3,'龍門石窟');

insert into b values (4,'華山');

insert into b values (5,'衡山');

insert into b values (6,'恆山');

insert into b values (7,'九華山');

insert into b values (8,'黃山');

insert into b values (9,'恆大足球俱樂部');

--  全連線  一共出線了108 條資料 a 表資料數目 * b表資料數目即出現了笛卡爾積

select * from a,b;

-- 左連線 即以左表為準,並把b表符合 條件的進行顯示,不符合的以null 代替

select * from a left join b on a.name=b.student order by a.id;

--右連線 即以右表為準,並把a表符合 條件的進行顯示,不符合的以null 代替

select * from a right join b on a.name=b.student order by b.classid;

-- 內鏈結 僅僅顯示符合條件的記錄a、b表中資訊均顯示

select * from a inner join b on a.name=b.student order by a.id desc ;

-- 顯示所有記錄,符合條件不符合條件的均顯示,並且沒有笛卡爾積

select * from a full join b on a.name=b.student order by a.id desc;

Oracle的連線查詢

連線查詢指基於兩個或兩個以上表或檢視的查詢,在實際應用中,可能僅僅查詢單個表無法滿足應用程式的實際需求,例如顯示sales部門位置以及雇員名,這種情況就需要進行連線查詢 dept和emp表 相等連線 用 指定連線條件 select e.name,e.sal,d.dname from emp e,de...

oracle的連線查詢

oracle的連線查詢分如下幾種 內連線 inner join 外連線 全連線 full join 左連線 left join 右連線 right join 交叉聯接 cross join 外連線與內連線不一樣,外連線返回的查詢結果中不僅包含符合條件的行,還包括左表 左外連線 右表 右外連線 或者兩...

oracle的連線查詢

連線查詢指基於兩個或兩個以上表或檢視的查詢,在實際應用中,可能僅僅查詢單個表無法滿足應用程式的實際需求,例如顯示sales部門位置以及雇員名,這種情況就需要進行連線查詢 dept和emp表 相等連線 用 指定連線條件 select e.name,e.sal,d.dname from emp e,de...