Oracle知識筆記

[TOC]

PS:本博客收錄自己工作中遇到學(xué)到的一些Oracle技能,有時間就更新整理一下

(1)Oracle正則匹配使用

PS:這條SQL可以通過正則匹對查詢一下,表A的字段a是否有非數(shù)字的數(shù)據(jù)油讯,有時候數(shù)據(jù)表的一些字段是varchar類型的塔拳,如果sql里用to_number的話欠橘,就肯定會報無效數(shù)字的錯誤

select * from 表A where not regexp_like(字段a,'^[[:digit:]]+$');

(2)Oracle修改有數(shù)據(jù)的數(shù)據(jù)字段類型

有些時候摄悯,我們是要修改一些數(shù)據(jù)字段的類型的赞季,mysql是可以支持的,不過Oracle對一些有數(shù)據(jù)的數(shù)據(jù)字段是不予許修改的奢驯,這時候申钩,可以通過下面sql進行修改,大概思路就是創(chuàng)建一個臨時的瘪阁,負責轉(zhuǎn)運數(shù)據(jù)撒遣,然后再切換

alter table 表A add new_temp varchar2(50);
update 表A set new_temp = a;
commit;
update 表A set a = '';
commit;
alter table 表A modify a varchar2(50);
update 表A set a = new_temp;
commit;
alter table 表A drop column new_temp;

(3)Oracle表數(shù)據(jù)回滾語句

【表數(shù)據(jù)恢復(fù)回N分鐘之前】

alter table 表名 enable row movement; 
flashback table 表名 to timestamp systimestamp - interval 'N' minute; 

(4)sql篩選出記錄數(shù)大于2的記錄

select id,count(*) from A a
where a.test like '%'
group by id
having count(*)>=2

(5)oracle同義詞

創(chuàng)建同義詞:
create public synonym tablename for user.tablename;
synonyms

(6)oracle內(nèi)外連接

Oracle左右連接可以使用(+),+號在左表示右外連接管跺,在右表示左外連接

(7)oracle去重關(guān)鍵字

Oracle關(guān)鍵字:
distinct:過濾掉多余的重復(fù)記錄只保留一條

(8)Oracle不等于符號

oracle不等于有下面三種表示:
!=义黎、^=、<>
<>可移植性好

(9)1=1和1=0

select * from t where 1=1
1=1條件始終為true豁跑,是為了避免負責的條件查詢出現(xiàn)錯誤
1=0條件始終未false廉涕,結(jié)果不會返回任何數(shù)據(jù),所以可以用于建表艇拍,create table newtable as select * from oldtable where 1=0;

(10)創(chuàng)建表空間

--創(chuàng)建表空間
CREATE SMALLFILE
TABLESPACE "WORKFLOW01"
LOGGING
DATAFILE
'D:\app\Administrator\oradata\oanet\WORKFLOW01.ora' SIZE
245M EXTENT MANAGEMENT LOCAL SEGMENT SPACE Management AUTO

(11)Oracle in關(guān)鍵字和等于符號

oracle in 和 =的區(qū)別
in可以有多條記錄狐蜕,=只有一條記錄
=性能更好,因為使用=符合能更好地使用索引

(12)NVL函數(shù)

NVL函數(shù)的格式如下:NVL(expr1,expr2)
含義是:如果oracle第一個參數(shù)為空那么顯示第二個參數(shù)的值淑倾,如果第一個參數(shù)的值不為空馏鹤,則顯示第一個參數(shù)本來的值。

NVL2函數(shù)的格式如下:NVL2(expr1,expr2, expr3)
含義是:如果該函數(shù)的第一個參數(shù)為空那么顯示第二個參數(shù)的值娇哆,如果第一個參數(shù)的值不為空湃累,則顯示第三個參數(shù)的值。SQL> select ename,NVL2(comm,-1,1) from emp;

NULLIF(exp1,expr2)函數(shù)的作用是如果exp1和exp2相等則返回空(NULL)碍讨,否則返回第一個值治力。

Coalese函數(shù)的作用是的NVL的函數(shù)有點相似,其優(yōu)勢是有更多的選項勃黍。
格式如下:
Coalesce(expr1, expr2, expr3….. exprn)
表示可以指定多個表達式的占位符宵统。所有表達式必須是相同類型,或者可以隱性轉(zhuǎn)換為相同的類型覆获。

(13)union

union: 對兩個結(jié)果集進行并集操作, 不包括重復(fù)行,相當于distinct, 同時進行默認規(guī)則的排序;

union all: 對兩個結(jié)果集進行并集操作, 包括重復(fù)行, 即所有的結(jié)果全部顯示, 不管是不是重復(fù);

(14)exist和in

select a.id from A a where a.id in(select b.id from B b)

select a.id from A a where exists(select b.id from B b where a.id = b.id)

(15)遞歸查詢

start with 子句:遍歷起始條件马澈,有個小技巧,如果要查父結(jié)點弄息,這里可以用子結(jié)點的列痊班,反之亦然。

connect by 子句:連接條件摹量。關(guān)鍵詞prior涤伐,prior跟父節(jié)點列parentid放在一起馒胆,就是往父結(jié)點方向遍歷;prior跟子結(jié)點列subid放在一起凝果,則往葉子結(jié)點方向遍歷

https://www.cnblogs.com/benbenduo/p/4588612.html

(16)條件sql

case when then else end 可以理解為流程控制語句或條件控制語句祝迂。可以實現(xiàn)資料獲取的時候器净,可以更多的條件和自定義邏輯

select 1 from mytable;與select anycol(目的表集合中的任意一行) from mytable;與select * from mytable 作用上來說是沒有差別的型雳,都是查看是否有記錄,一般是作條件用的掌动。select 1 from 中的1是一常量四啰,查到的所有行的值都是它,但從效率上來說粗恢,1>anycol>*,因為不用查字典表欧瘪。

(17)oracle數(shù)據(jù)庫還原

1眷射、將TESTDB.bmp放置在dpdump目錄,如下路徑:
E:\app\Administrator\admin\orcl\dpdump

2佛掖、創(chuàng)建用戶
create user testdb65 identified by "testdb65"
default tablespace users temporary tablespace temp;
用戶授權(quán)
grant connect,dba to testdb65;

3妖碉、創(chuàng)建表空間
CREATE TABLESPACE HR_DATA01 DATAFILE 'D:\nhsj\hr_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; 【創(chuàng)建表空間】

4、導(dǎo)入 bgyhr2是來源庫
impdp testdb65/testdb65@orcl schema=testdb65 dumpfile=TESTDB65.dmp

導(dǎo)出 scott 是要導(dǎo)出的庫
expdp lfwtrain/a@orcl schema=當前用戶 dumpfile=expdptest.dmp

(18)重導(dǎo)dmp文件

Oracle保存數(shù)據(jù)時一般以DMP文件的形式進行保存
本博客記錄芥被,DMP文件的導(dǎo)入 先打開CMD
sqlplus /nolog
以sysdba連接
conn /as sysdba
這里創(chuàng)建表空間欧宜,因為表空間進行存儲的話,可以提供系統(tǒng)性能
CREATE TABLESPACE DATA01 DATAFILE 'D:\tablespace\data01.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
創(chuàng)建用戶
CREATE USER job IDENTIFIED BY job DEFAULT TABLESPACE DATA01 TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON DATA01
授權(quán)
grant connect,dba to job;
復(fù)制dmp文件到oracle安裝目錄里的app\admin\orce\dpdump里拴魄,然后用以下代碼導(dǎo)入dmp文件冗茸,要順便導(dǎo)入logfile的話,加上logfile=文件名
impdp job/job@orcl schemas=job dumpfile=EXPDP160810GZ.dmp

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匹中,一起剝皮案震驚了整個濱河市夏漱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顶捷,老刑警劉巖挂绰,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異服赎,居然都是意外死亡葵蒂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門重虑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來践付,“玉大人,你說我怎么就攤上這事嚎尤±笕剩” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乏梁。 經(jīng)常有香客問我次洼,道長,這世上最難降的妖魔是什么遇骑? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任卖毁,我火速辦了婚禮,結(jié)果婚禮上落萎,老公的妹妹穿的比我還像新娘亥啦。我一直安慰自己,他們只是感情好练链,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布翔脱。 她就那樣靜靜地躺著,像睡著了一般媒鼓。 火紅的嫁衣襯著肌膚如雪届吁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天绿鸣,我揣著相機與錄音疚沐,去河邊找鬼。 笑死潮模,一個胖子當著我的面吹牛亮蛔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播擎厢,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼究流,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锉矢?” 一聲冷哼從身側(cè)響起梯嗽,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沽损,沒想到半個月后灯节,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡绵估,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年炎疆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片国裳。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡形入,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缝左,到底是詐尸還是另有隱情亿遂,我是刑警寧澤浓若,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站蛇数,受9級特大地震影響挪钓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耳舅,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一碌上、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浦徊,春花似錦馏予、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纯出,卻和暖如春蚯妇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背暂筝。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留硬贯,地道東北人焕襟。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像饭豹,于是被迫代替她去往敵國和親鸵赖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容