Oracle數(shù)據(jù)庫(kù)完整筆記

Oracle數(shù)據(jù)庫(kù)的安裝

基礎(chǔ)概念

數(shù)據(jù)庫(kù):能夠長(zhǎng)期保存,支持多用戶共享渴析,通過(guò)數(shù)據(jù)模型盡可能的減少冗余的數(shù)據(jù)集合。

數(shù)據(jù)庫(kù)管理系統(tǒng):用來(lái)創(chuàng)建吮龄,維護(hù)俭茧,管理,運(yùn)行數(shù)據(jù)庫(kù)的軟件漓帚。

數(shù)據(jù)模型:

概念模型:解決存什么問(wèn)題

邏輯模型:解決怎么存問(wèn)題

邏輯模型

層次模型

網(wǎng)狀模型

關(guān)系模型(主流的模型)

物理模型:解決存在哪的問(wèn)題

Oracle三大文件:數(shù)據(jù)文件母债, 重做日志文件,控制文件

基礎(chǔ)命令

sqlplus? sys/1 as? sysdba;

//登錄系統(tǒng)管理員身份

alter user scott account unlock;

//解鎖

alter user scott identified by tiger;

//設(shè)置默認(rèn)密碼tiger

conn scott/tiger;

//連接scott用戶

show user ;

//顯示用戶名稱

select * from tab ;

//顯示當(dāng)前用戶下表的情況

desc tabname ;

//顯示表結(jié)構(gòu)

select * from? tabname;

//顯示表的內(nèi)容

表結(jié)構(gòu)

1、 部門表:dept

DEPTNO 表示部門編號(hào)毡们,由兩位數(shù)字所組成

DNAME 部門名稱迅皇,最多由14個(gè)字符所組成

LOC 部門所在的位置

2、 雇員表:emp

EMPNO 雇員的編號(hào)衙熔,由四位數(shù)字所組成

ENAME 雇員的姓名登颓,由10位字符所組成

JOB 雇員的職位

MGR 雇員對(duì)應(yīng)的領(lǐng)導(dǎo)編號(hào),領(lǐng)導(dǎo)也是雇員

HIREDATE 雇員的雇傭日期

SAL 基本工資红氯,其中有兩位小數(shù)框咙,五倍整數(shù),一共是七位

COMM 獎(jiǎng)金脖隶,傭金

DEPTNO 雇員所在的部門編號(hào)

3扁耐、 工資等級(jí)表:salgrade

GRADE 工資的等級(jí)

LOSAL 此等級(jí)的最低工資

HISAL 此等級(jí)的最高工資

NSQL: not sql (大數(shù)據(jù),內(nèi)存數(shù)據(jù)庫(kù)...)

SQL語(yǔ)句: 結(jié)構(gòu)化查詢語(yǔ)言

DQL:數(shù)據(jù)查詢語(yǔ)言

DML: 數(shù)據(jù)操作語(yǔ)言(增加數(shù)據(jù)产阱,修改數(shù)據(jù)婉称,刪除數(shù)據(jù))

DDL: 數(shù)據(jù)定義語(yǔ)言

DCL: 數(shù)據(jù)控制語(yǔ)言(數(shù)據(jù)使用的權(quán)限)

TPL: 事務(wù)處理語(yǔ)言

簡(jiǎn)單的DQL語(yǔ)言:

select? 查什么

from? 從哪查

語(yǔ)法:

select [distinct] {*|{列名|表達(dá)式 [as] [列別名] [,...]}}

from 表名;

[]:可有可無(wú)可選項(xiàng)

{}:括號(hào)內(nèi)自動(dòng)為一組

*: 一個(gè)表的所有列

|:或者的意思

列名:列的名字

表達(dá)式:

算數(shù)表達(dá)式: 進(jìn)行算數(shù)運(yùn)算

字符串表達(dá)式:? '||'? 拼接運(yùn)算符, 兩個(gè)字符串可以做拼接成一個(gè)字符串的運(yùn)算

as: 列別名的關(guān)鍵字 (默認(rèn)就存在)

列別名: 給列或者表達(dá)式換一個(gè)名字 ,如果名字中有特殊符號(hào)用雙引號(hào)引起來(lái)

,...: 同一組內(nèi)的內(nèi)容可以重復(fù)出現(xiàn)构蹬,中間用 逗號(hào)隔開

distinct: 唯一王暗,去重復(fù)

空值問(wèn)題:空值和任何數(shù)據(jù)進(jìn)行算數(shù)運(yùn)算的結(jié)果都為空

限制查詢和排序

語(yǔ)法:

select [distinct] {*|{列名|表達(dá)式 [as] [列別名] [,...]}}

from 表名

[where 條件表達(dá)式] ;

where 作用: 限制查詢

條件表達(dá)式 =? 關(guān)系表達(dá)式 [邏輯運(yùn)算符...]

關(guān)系表達(dá)式 =? 列名 |表達(dá)式? 比較運(yùn)算符? 列名 |表達(dá)式?

變化后語(yǔ)法:

select [distinct] {*|{列名|表達(dá)式 [as] [列別名] [,...]}}

from 表名

[where? {列名 |表達(dá)式? 比較運(yùn)算符? 列名 |表達(dá)式} [邏輯運(yùn)算符...]] ;

比較運(yùn)算符 :得到的結(jié)果一定是真假

普通比較運(yùn)算符:> <? =? >=? <=? !=

特殊比較運(yùn)算符:is null; between? and ;in ; like

isnull:

--查詢沒(méi)有獎(jiǎng)金的人

select? ename , job ,sal,comm from emp

where comm is null

like:? 通配符:

_:一個(gè)長(zhǎng)度的任意字符

%:任意長(zhǎng)度的任意字符

escape:轉(zhuǎn)義字符

--查詢一個(gè)名字中包含S的人員信息

select * from emp

where ename? like? '%S%';

--查詢名字中倒數(shù)第二個(gè)字母是T的人員信息

select * from emp

where ename like '%T_';

between? and:

-- 查詢工資在1000到2000之間的10部門人員信息

select * from emp

where deptno =10 and

sal between? 1000 and 2000;

邏輯運(yùn)算符: and 與? or 或? not 非

日期的比較: 語(yǔ)言問(wèn)題庄敛?

select? ename, hiredate,? hiredate+1 from emp

where hiredate < '1-1月-17'

空值問(wèn)題:

空值如果和任意數(shù)據(jù)進(jìn)行比較運(yùn)算的結(jié)果也為null值

邏輯運(yùn)算:得到的結(jié)果一定是真假

and TRUE FALSE null

TRUE TRUE FALSE null

FALSE FALSE FALSE FALSE

null null FALSE null

or TRUE FALSE null

TRUE TRUE TRUE TRUE

FALSE TRUE FALSE null

null TRUE null null

排序

語(yǔ)法:

select [distinct] {*|{列名|表達(dá)式 [as] [列別名] [,...]}}

from 表名

[where 條件表達(dá)式]

[order? by 列名|表達(dá)式|列別名 |數(shù)字? [asc] [desc] [,...]];

多表連接:當(dāng)發(fā)現(xiàn)所查數(shù)據(jù)不再同一表內(nèi)的時(shí)候俗壹,需要使用多表鏈接來(lái)一次查詢多個(gè)表的數(shù)據(jù)

--查詢smith的姓名、工資和部門名稱

語(yǔ)法:

select [distinct] {*|{列名|表達(dá)式 [as] [列別名] [,...]}}

from 表名

[where 條件表達(dá)式]

[order? by 列名|表達(dá)式|列別名 |數(shù)字? [asc] [desc] [,...]];

內(nèi)部連接:不是外部連接的都是內(nèi)部連接

等值連接: 連接條件只用等于號(hào)

不等值連接:連接條件不只用等于號(hào)

T蹇尽1脸!怖亭!內(nèi)部連接:

外部連接:不是內(nèi)部連接的都是外部連接

+:在右邊叫左外連接

+:在左邊叫右外連接

N表關(guān)聯(lián)最少需要n-1個(gè)條件

函數(shù):一些提前準(zhǔn)備好的代碼(往往有固定的功能)

系統(tǒng)函數(shù)? + 自定義函數(shù)

系統(tǒng)函數(shù):

單行函數(shù):多行數(shù)據(jù)通過(guò)函數(shù)運(yùn)算的結(jié)果還是多行數(shù)據(jù)

多行函數(shù):多行數(shù)據(jù)通過(guò)函數(shù)運(yùn)算的結(jié)果只有一行數(shù)據(jù)

單行函數(shù):

函數(shù)語(yǔ)法:

使用場(chǎng)景:能使用列名或者表達(dá)式都可以使用函數(shù)

函數(shù)名( 入?yún)?

入?yún)⒁?guī)定數(shù)據(jù)的類型

字符函數(shù):

字符轉(zhuǎn)換:

Lower()

Upper()

initcap()

字符處理:

substr()? //字符串截取

length()? //字符的個(gè)數(shù)

concat()

instr()? //求某一個(gè)字符串在另一個(gè)字符串中的位置

lpad()? //填充

rpad()

trim()? //去掉前后空格

replace()//替換字符串

--要求查詢名字中含有S的人員信息 涎显,不允許使用substr,like

select * from emp

where? instr(ename ,'S')>0;

select ename ,replace(ename,'S') from emp

where? ename != replace(ename,'S')

數(shù)字函數(shù):

? abs: 絕對(duì)值

? round:四舍五入

? trunc:截取

? ceil:向上取整

? floor:向下取整

? mod:取余運(yùn)算

? sign:判斷正負(fù)數(shù)

日期函數(shù):

sysdate:當(dāng)前時(shí)間

months_between():求兩個(gè)時(shí)間點(diǎn)之間差了幾個(gè)月

add_months():指定日期過(guò)幾個(gè)月后的日期

next_day():返回離當(dāng)前日期最近的指定星期的日期

last_day():本月最后一天

轉(zhuǎn)換函數(shù):

通用函數(shù):

nvl:處理空值

select ename ,sal ,comm,sal+nvl(comm,0)

from emp;

case:

decode:

例子1.:

-- 查詢每個(gè)員工的姓名和部門名稱

select ename,

? ? ? case deptno

? ? ? ? when 10 then

? ? ? ? ? 'ACCOUNTING'

? ? ? ? when 20 then

? ? ? ? ? 'RESEARCH'

? ? ? ? when 30 then

? ? ? ? ? 'SALES'

? ? ? ? else

? ? ? ? ? 'OPERATIONS'

? ? ? end

? from emp;

select ename,

? ? ? decode(deptno,

? ? ? ? ? ? ? 10,

? ? ? ? ? ? ? 'ACCOUNTING',

? ? ? ? ? ? ? 20,

? ? ? ? ? ? ? 'RESEARCH',

? ? ? ? ? ? ? 30,

? ? ? ? ? ? ? 'SALES',

? ? ? ? ? ? ? 'OPERATIONS')

? from emp;

? 例子2.:

select ename,

? ? ? case

? ? ? ? when sal < 1000 then

? ? ? ? ? '窮'

? ? ? ? when sal between 1000 and 2000 then

? ? ? ? ? '貧'

? ? ? ? when sal > 2000 and sal <= 3000 then

? ? ? ? ? '勉強(qiáng)能活'

? ? ? ? else

? ? ? ? ? '高富帥'

? ? ? end

? from emp;

select ename,

? ? ? decode(sign(sal - 1000),

? ? ? ? ? ? ? -1,

? ? ? ? ? ? ? '窮',

? ? ? ? ? ? ? 0,

? ? ? ? ? ? ? '貧',

? ? ? ? ? ? ? 1,

? ? ? ? ? ? ? decode(sign(sal - 2000),

? ? ? ? ? ? ? ? ? ? -1,

? ? ? ? ? ? ? ? ? ? '貧',

? ? ? ? ? ? ? ? ? ? 0,

? ? ? ? ? ? ? ? ? ? '貧',

? ? ? ? ? ? ? ? ? ? 1,

? ? ? ? ? ? ? ? ? ? decode(sign(sal - 3000),

? ? ? ? ? ? ? ? ? ? ? ? ? ? -1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? '勉強(qiáng)能活',

? ? ? ? ? ? ? ? ? ? ? ? ? ? 0,

? ? ? ? ? ? ? ? ? ? ? ? ? ? '勉強(qiáng)能活',

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? '高富帥')))

? from emp;

轉(zhuǎn)換函數(shù):

to_char() 兴猩!? ? 'yyyy-mm-dd? hh24:mi:ss'

to_date() !

to_number()

多行函數(shù):無(wú)論多少條數(shù)據(jù)期吓,只有一個(gè)條結(jié)果,空值不參與任何統(tǒng)計(jì)

種類:Max,Min,Avg,Sum,Count

使用場(chǎng)景:select ,order by

求表內(nèi)數(shù)據(jù)的行數(shù):count(1),count(*)

函數(shù)名([distinct]列名|表達(dá)式)

分組語(yǔ)句:

group by

select [distinct] {*|{列名|表達(dá)式 [as] [列別名] [,...]}}

from 表名

[where 條件表達(dá)式]

[group by 列名|表達(dá)式 [,...]]

[having? 條件表達(dá)式]

[order? by 列名|表達(dá)式|列別名 |數(shù)字? [asc] [desc] [,...]];

子查詢:把多個(gè)有關(guān)聯(lián)的查詢組合成一個(gè)查詢,其中部分先執(zhí)行的查詢用括號(hào)括起來(lái)倾芝。

使用位置:除了group by 都可以

分類:

子查詢結(jié)果分類:

單行子查詢:

子查詢返回結(jié)果為1行

多行子查詢:

子查詢結(jié)果超過(guò)1行

使用 any all in

多列子查詢:

子查詢使用的位置分類:

where子查詢: 子查詢的作用是提供一個(gè)條件

from子查詢: 作用1:可以自定義新的數(shù)據(jù)集合讨勤,經(jīng)過(guò)自己的設(shè)計(jì),完成更復(fù)雜的查詢需求

作用2:提升某些運(yùn)算的優(yōu)先級(jí)

select子查詢:

相關(guān)子查詢:

所在晨另,自己潭千,同

DML: 一切皆是查詢

? 查詢:

? 增加:insert

? 刪除:delete

? 修改:update

? 刪除:把查詢語(yǔ)句的from保留,用delete替換掉select子句

? 增加:insert into

? 主數(shù)據(jù)插入:

? ? insert into dept values(60,'haha',null);

insert into dept(deptno ,dname) values(70,'xixi'); ?

? 業(yè)務(wù)數(shù)據(jù)插入:

? ? insert into tabname select ...

? 修改:

? update emp

set sal = 1000

where ename = 'SMITH'

相關(guān)update借尿?

commit:提交

rollback:回滾

事務(wù)刨晴???割捅?

? DDL:數(shù)據(jù)定義語(yǔ)言

? ? create

? ? drop

? ? create :創(chuàng)造?

? ? create table Student (

? ? name char(100),

? ? age number(3),

? ? sex char(2)

? ? )

? ? 數(shù)據(jù)類型:

? ? 字符

? ? char :固定字符? ? ,效率高帚桩,容易浪費(fèi)

? ? varchar2:不固定字符 亿驾,效率慢,節(jié)省空間

? ? 數(shù)字

? ? Number(所有數(shù)的位數(shù)账嚎,小數(shù)的位數(shù))

? ? 日期

? ? Date? timstamp 支持毫秒

? ? 作業(yè):oracle :5莫瞬,6,7郭蕉,9所有的題

? ? 能力好一點(diǎn)的:5章嘗試用子查詢疼邀, 7,9嘗試多表

? ? ? ? ? java:安裝召锈,配置

? ? ? ? ? ? ? ? 2的10以內(nèi)次冪

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末旁振,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子涨岁,更是在濱河造成了極大的恐慌拐袜,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梢薪,死亡現(xiàn)場(chǎng)離奇詭異蹬铺,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)秉撇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門甜攀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人琐馆,你說(shuō)我怎么就攤上這事规阀。” “怎么了啡捶?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵姥敛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我瞎暑,道長(zhǎng)彤敛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任了赌,我火速辦了婚禮墨榄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勿她。我一直安慰自己袄秩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著之剧,像睡著了一般郭卫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上背稼,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天贰军,我揣著相機(jī)與錄音,去河邊找鬼蟹肘。 笑死词疼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的帘腹。 我是一名探鬼主播贰盗,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼阳欲!你這毒婦竟也來(lái)了舵盈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤球化,失蹤者是張志新(化名)和其女友劉穎书释,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赊窥,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡爆惧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锨能。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扯再。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖址遇,靈堂內(nèi)的尸體忽然破棺而出熄阻,到底是詐尸還是另有隱情,我是刑警寧澤倔约,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布秃殉,位于F島的核電站,受9級(jí)特大地震影響浸剩,放射性物質(zhì)發(fā)生泄漏钾军。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一绢要、第九天 我趴在偏房一處隱蔽的房頂上張望吏恭。 院中可真熱鬧,春花似錦重罪、人聲如沸樱哼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)搅幅。三九已至阅束,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茄唐,已是汗流浹背围俘。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琢融,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓簿寂,卻偏偏與公主長(zhǎng)得像漾抬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子常遂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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