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