更新時(shí)間:2022-12-20 14:17:48 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2632次
網(wǎng)上有很多的oracle相關(guān)面試題,但不少都是沒(méi)有答案的,需要我們花費(fèi)更多的時(shí)間去收集,本套o(hù)racle面試題大全,總結(jié)了一些常見(jiàn)的題目匯總。
1:delete 與Truncate區(qū)別?
1)Truncate 是DDL 語(yǔ)句,DELETE 是DML語(yǔ)句。
2) Truncate 的速度遠(yuǎn)快于DELETE;
原因是: 當(dāng)執(zhí)行DELETE操作時(shí)所有表數(shù)據(jù)先被COPY到回滾表空間,數(shù)據(jù)量不同花費(fèi)時(shí)間長(zhǎng)短不一。而TRUNCATE 是直接刪除數(shù)據(jù)不進(jìn)回滾表空間。
3) delete 數(shù)據(jù)可以運(yùn)行Rollback 進(jìn)行數(shù)據(jù)回滾。而Truncate 則是永久刪除不能回滾。
4) Truncate 操作不會(huì)觸發(fā)表上的delete觸發(fā)器,而delete 會(huì)正常觸發(fā)。
5) Truncate 語(yǔ)句不能帶where 條件意味著只能全部數(shù)據(jù)刪除,而DELETE可帶where 條件進(jìn)行刪除數(shù)據(jù)。
6) Truncate 操作會(huì)重置表的高水位線(High Water Mark),而delete 不會(huì)。
2:集合操作符
Union : 不包含重復(fù)值,默認(rèn)按第一個(gè)查詢的第一列升序排列。
Union All : 完全并集包含重復(fù)值。不排序。
Minus 不包含重復(fù)值,不排序。
3:什么是第一、二、三、BC范式?
越高的范式冗余越小。應(yīng)用數(shù)據(jù)庫(kù)范式的目的:為了消除重復(fù)數(shù)據(jù)減少數(shù)據(jù)冗余。
1) 第一范式(1NF):原子件,要求每一列的值不能再拆分了。(屬性不可分)
2) 第二范式(2NF): 一張表只描述一個(gè)實(shí)體(若列中有冗余數(shù)據(jù),則不滿足)(要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)體或記錄必須可以被唯一區(qū)分,選取一個(gè)能區(qū)分每個(gè)實(shí)體的屬性或?qū)傩越M,作為實(shí)體的唯一標(biāo)識(shí))
3)第三范式(3NF): 所有列與主鍵值直接相關(guān)。(消除了冗余,更新異常、插入異常和刪除異常)
(學(xué)號(hào))——>(姓名,年齡,所在學(xué)院,學(xué)院地點(diǎn),學(xué)院電話)
4) 巴斯-科德范式(BCNF):在第三范式的基礎(chǔ)上,數(shù)據(jù)庫(kù)表如果不存在任何字段對(duì)任一候選關(guān)鍵字段的傳遞函數(shù)依賴則符合BCNF.
4:事務(wù)的特性(ACID)是指什么?
1)原子性(Atomic): 事務(wù)中的各項(xiàng)操作,要么全做要么全不做,任何一項(xiàng)操作的失敗都會(huì)導(dǎo)致整個(gè)事務(wù)的失敗。
2) 一致性(Consistent): 事務(wù)結(jié)束后系統(tǒng)狀態(tài)是一樣的。
3)隔離性(Isolated): 并發(fā)執(zhí)行的事務(wù)彼此無(wú)法看到對(duì)方的中間狀態(tài)。
4) 持久性(Durable):事務(wù)完成后,即使發(fā)生災(zāi)難性故障,通過(guò)日志和同步備份可以在故障發(fā)生后重建數(shù)據(jù)。
5:Mysql數(shù)據(jù)庫(kù)與Oracle 數(shù)據(jù)庫(kù)有什么區(qū)別?
1,應(yīng)用方面,Mysql 是中小型應(yīng)用的數(shù)據(jù)庫(kù)。一般用于個(gè)人和中小型企業(yè)。Oracle 屬于大型數(shù)據(jù)庫(kù),一般用于具有相當(dāng)規(guī)模的企業(yè)應(yīng)用。
2, 自動(dòng)增長(zhǎng)的數(shù)據(jù)類型方面: MySQL有自動(dòng)增長(zhǎng)的數(shù)據(jù)類型。Oracle 沒(méi)有自動(dòng)增長(zhǎng)的數(shù)據(jù)類型。需要建立一個(gè)自增序列。
3,group by 用法: Mysql 中g(shù)roup by 在SELECT 語(yǔ)句中可以隨意使用,但在ORACLE 中如果查詢語(yǔ)句中有組函數(shù),那么其他列必須是組函數(shù)處理過(guò)的或者是group by子句中的列,否則會(huì)報(bào)錯(cuò)。
4,引導(dǎo)方面: MySQL中可以用單引號(hào)、雙引號(hào)包起字符串,Oracle 中只可以用單引號(hào)包起字符串
6:Oracle跟SQL Server 2005的區(qū)別?
宏觀上:
1). 最大的區(qū)別在于平臺(tái),oracle可以運(yùn)行在不同的平臺(tái)上,sql server只能運(yùn)行在windows平臺(tái)上,由于windows平臺(tái)的穩(wěn)定性和安全性影響了sql server的穩(wěn)定性和安全性
2). oracle使用的腳本語(yǔ)言為PL-SQL,而sql server使用的腳本為T(mén)-SQL
微觀上: 從數(shù)據(jù)類型,數(shù)據(jù)庫(kù)的結(jié)構(gòu)等等回答
7:如何使用Oracle的游標(biāo)?
1). oracle中的游標(biāo)分為顯示游標(biāo)和隱式游標(biāo)
2). 顯示游標(biāo)是用cursor...is命令定義的游標(biāo),它可以對(duì)查詢語(yǔ)句(select)返回的多條記錄進(jìn)行處理;隱式游標(biāo)是在執(zhí)行插入 (insert)、刪除(delete)、修改(update)和返回單條記錄的查詢(select)語(yǔ)句時(shí)由PL/SQL自動(dòng)定義的。
3). 顯式游標(biāo)的操作:打開(kāi)游標(biāo)、操作游標(biāo)、關(guān)閉游標(biāo);PL/SQL隱式地打開(kāi)SQL游標(biāo),并在它內(nèi)部處理SQL語(yǔ)句,然后關(guān)閉它
8:Oracle中function和procedure的區(qū)別?
1). 可以理解函數(shù)是存儲(chǔ)過(guò)程的一種
2). 函數(shù)可以沒(méi)有參數(shù),但是一定需要一個(gè)返回值,存儲(chǔ)過(guò)程可以沒(méi)有參數(shù),不需要返回值
3). 函數(shù)return返回值沒(méi)有返回參數(shù)模式,存儲(chǔ)過(guò)程通過(guò)out參數(shù)返回值, 如果需要返回多個(gè)參數(shù)則建議使用存儲(chǔ)過(guò)程
4). 在sql數(shù)據(jù)操縱語(yǔ)句中只能調(diào)用函數(shù)而不能調(diào)用存儲(chǔ)過(guò)程
以上就是“2023年最新oracle面試題及答案”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)