ORCALE常用的連線

2021-08-20 22:09:24 字數 2251 閱讀 5922

跟上學時記不住數學公式一樣,這個內連線、左連線、右連線、全連線總是記不住。今天寫個demo記下來,sql可以copy直接使用。要用的時候,查下就行。o(∩_∩)o哈哈~

--  這裡主要比較 inner join / left join / right join / full join 區別

drop table l purge;

drop table r purge;

-- 左表

create table l as select 'left_1' as str,'1' as v from dual union all

select 'left_2' ,'2' as v from dual union all 

select 'left_3', '3' as v from dual union all 

select 'left_4','4' as v from dual;

select * from l;

select * from r;

-- 右表 資料

create table r as select 'right_3' as str,'3' as v ,1 as status  from dual union all

select 'right_4' as str,'4' as v ,0 as status  from dual union all

select 'right_5' as str,'5' as v ,0 as status  from dual union all

select 'right_6' as str,'6' as v ,0 as status  from dual ;

/* 第一種 inner join 寫法  內連線 其實就是等值連線

該方式返回兩表匹配的資料,左表的 '1' , '2' 以及右表的 '5','6' 都沒有顯示。

*/select l.str as left_str,r.str as right_str

from l

inner join r on l.v = r.v

order by 1,2;

select l.str as left_str,r.str as right_str

from r

inner join l on l.v = r.v

order by 1,2;

-- 改為等值連線其實就可以用 where 加條件進行

select l.str as left_str,r.str as right_str

from l,r

where l.v = r.v

order by 1,2;

/*left join 連線的方式

該方式以左表為主表,左表返回所有的資料,右表中只返回與左表相匹配的資料。

根據建表的內容,右表的5,6 都不會顯示

*/select l.str as left_str, r.str as right_str 

from l

left join r on l.v = r.v 

order by 1,2;

--  當然oracle  最熟悉的是用+號去代替

-- 第乙個句子,用 + 號實現如下。 記住口訣: 左連線 加號 在右邊

select l.str as left_str,r.str as right_str

from l,r

where l.v = r.v(+)

order by 1,2

/*right join 連線的方式

該方式以左表為主表,左表返回所有的資料,右表中只返回與左表相匹配的資料。

根據建表的內容,左表的1,2 都不會顯示

*/select l.str as left_str, r.str as right_str 

from l

right join r on l.v = r.v 

order by 1,2;

select l.str as left_str,r.str as right_str

from l,r

where l.v(+) = r.v

order by 1,2

/*full join 連線的方式

該方式以左右表均返回所有的資料,但只有資料匹配的才顯示在同一行,非匹配的行,只顯示個表資料

*/select l.str as left_str,r.str as right_str

from l

full join r on l.v = r.v

order by 1,2;

orcale常用指令

建立表空間 create tablespace tbs datafile h oracle oradata tbs dbf size 512m autoextend on next 512m maxsize 512m autoallocate extent management local segm...

python遠端連線orcale資料庫

1.安裝python操作postgresql對應的標準庫psycopg2 pip install psycopg2 import psycopg2 匯入模組 1.建立伺服器鏈結 conn psycopg2.connect database mrdb user mrdbuser password mr...

常用到的orcale資料庫方法

判斷是不是時間格式 create or replace function is date mystr varchar2 return varchar2 isstr varchar2 400 isdate varchar2 10 mydate date begin isdate n str trim ...