標籤:選擇性 back 提交 流程 系統預設 重複 cascade 訪問 dba
本文整理自網路
原文:https://zhuanlan.zhihu.com/p/26146000
1.下面哪個使用者不是Oracle預設安裝後就存在的使用者(A)
A、SYSDBA B、SYSTEM
C、SCOTT D、SYS
解答:
本題中,對於選項A,SYSDBA屬於系統特殊許可權,不屬於使用者,選項A的描述錯誤。所以,選項A正確。
對於選項B,SYSTEM是系統預設使用者,擁有DBA角色。所以,選項B錯誤。
對於選項C,SCOTT使用者屬於測試使用者。所以,選項C錯誤。
對於選項D,SYS使用者具有管理系統的最高許可權,必須以SYSDBA來登入。所以,選項D錯誤。
所以,本題的答案為A。
2.學籍(學號,學生姓名) PK=學號
成績(科目號,成績,學號) PK=科目代碼,FK=學號
已有表記錄如下,能夠插入成績記錄的是(BD)
A、(1,99,5) B、(5,68,1) C、(3,70,7) D、(7,45,NULL)
解答:
主鍵用來唯一地標識一條記錄,主鍵不能有重複的記錄,不允許為空白,主鍵只能有一個,用來保證資料完整;表的外鍵是另一表的主鍵,外鍵可以有重複的,可以是空值,一個表可以有多個外鍵,用來和其它表建立聯絡用的。
對於本題主要看外鍵列是否在主表中存在,若不存在,則報錯:ORA-02291: integrity constraint (SYS.FK_XX) violated - parent key not found
本題中,對於選項A,學號5在學籍表中不存在。所以,選項A錯誤。
對於選項B,學號1在學籍表中存在。所以,選項B正確。
對於選項C,學號7在學籍表中不存在。所以,選項C錯誤。
對於選項D,外鍵列可以為空白。所以,選項D正確。
所以,本題的答案為B、D。
3.下列關於NULL的描述中,不正確的是(D)
A、當實際值是未知或沒有任何意義時,可以使用NULL來表示它
B、不要使用NULL來代表0,兩者是不同的
C、不要使用NULL來代替空格,兩個是不同的
D、算術運算式2000 + null結果等於2000
NULL代表未知的,無意義,參與運算的結果為NULL。
本題中,對於選項A,NULL表示未知,無意義。所以,選項A錯誤。
對於選項B,NULL不代表0。所以,選項B錯誤。
對於選項C,NULL不代表空格。所以,選項C錯誤。
對於選項D,2000+NULL的結果為NULL。所以,選項D正確。
所以,本題的答案為D。
4.下列語句中使用了列別名,會導致錯誤的有(CD)(兩個選項)
A、SELECT EMPNO, ENAME, SAL*12 "Annual Salary" FROM EMP;
B、SELECT EMPNO, ENAME, SAL*12 "AnnualSalary" FROM EMP;
C、SELECT EMPNO, ENAME, SAL*12 ‘Annual Salary‘ FROM EMP;
D、SELECT EMPNO, ENAME, SAL*12 ‘AnnualSalary‘ FROM EMP;
E、SELECT EMPNO, ENAME, SAL*12 AnnualSalary FROM EMP;
若列的別名中含有空格,則用雙引號括起來,不能使用單引號。
本題中,對於選項A,別名中有空格,可以使用雙引號。所以,選項A錯誤。
對於選項B,別名中沒有有空格,也可以使用雙引號。所以,選項B錯誤。
對於選項C和選項D,別名不能使用單引號括起來。所以,選項C、選項D正確。
對於選項E,別名可以不加雙引號。所以,選項E錯誤。
所以,本題的答案為C、D。
PS:以上選項在ORACLE中C/D是報錯的,但是在SQL SERVER中5個都是可行的
5.下列情況中,會導致Oracle事務結束的有(CE)(兩個選項)
A、PL/SQL塊結束
B、發出savepoint語句
C、使用者強行退出SQL*Plus
D、發出SELECT語句
E、發出commit或rollback語句
事務結束可以採用COMMIT或ROLLBACK,若強行退出SQL*Plus,事務將自動復原。
本題中,對於選項A,PL/SQL塊結束和事務是否結束沒有關係。所以,選項A錯誤。
對於選項B,SAVEPOINT不能結束事務。所以,選項B錯誤。
對於選項C,使用者強行退出SQL*Plus未提交的事務自動復原。所以,選項C正確。
對於選項D,SELECT語句不能結束事務。所以,選項D錯誤。
對於選項E,COMMIT或ROLLBACK屬於正常提交或復原事務。所以,選項E正確。
所以,本題的答案為C、E。
6.下列對於視圖的描述中,錯誤的是(D)
A、視圖可以限制對資料庫的訪問,因為視圖可以選擇性的顯示資料庫的一部分資料
B、視圖可以簡化使用者的查詢,允許使用者從多個表中檢索資料而不需要知道基表是如何串連的
C、可以通過視圖實現對基表的DML操作
D、在對視圖執行DML操作時,可以不受基表的約束的限制
本題中,對於選項A,視圖可以有存取權限,但可以對基表沒有存取權限,從而限制了資料庫的訪問。所以,選項A錯誤。
對於選項B,由於視圖可以是基於多個表的連結查詢,所以,視圖可以簡化使用者的查詢,允許使用者從多個表中檢索資料而不需要知道基表是如何串連的。所以,選項B錯誤。
對於選項C,簡單的視圖可以實現對基表的DML操作。所以,選項C錯誤。
對於選項D,當視圖執行DML操作時,同樣受基於表上的約束的限制。所以,選項D正確。
所以,本題的答案為D。
Oracle中的約束包含主鍵約束、唯一約束、外鍵約束、條件約束、非空約束。
TO_CHAR將日期轉換為字元,TO_DATE將字元轉換為日期格式。
7.下列比較為真的有(A)
A、TRUNC(123.56) = 123
B、TRUNC(123.56,1) = 123.6
C、ROUND(123.56) = 123
D、ROUND(123.56,1) = 123.5
本題考察的是TRUNC函數和ROUND函數的知識。其中,TRUNC函數的作用是捨去,不存在四捨五入的情況,ROUND函數截取的時候四捨五入。
本題中,對於選項A,計算結果為123。所以,選項A正確。
對於選項B,保留一位小數,計算結果為123.5。所以,選項B錯誤。
對於選項C,計算結果為124。所以,選項C錯誤。
對於選項D,保留一位小數,計算結果為123.6。所以,選項D錯誤。
所以,本題的答案為A。
若資料庫日誌滿了的話,則只能執行查詢等讀操作,不能執行更改、備份等寫操作,原因是任何寫操作都要記錄日誌。也就是說,基本上處於不能使用的狀態。
8.Oracle執行個體啟動和關閉的資訊記載到(A)中
A、警示檔案
B、後台進程追蹤檔案
C、伺服器處理序追蹤檔案
D、參數檔案
資料庫啟動和關閉的資訊記錄在警示日誌裡。
本題中,對於選項A,Oracle執行個體啟動和關閉的資訊記載到警示檔案。所以,選項A正確。
對於選項B,後台追蹤檔案記錄的是資料庫後台進程資訊。所以,選項B錯誤。
對於選項C,伺服器處理序跟蹤的是使用者的進程資訊。所以,選項C錯誤。
對於選項D,參數檔案記錄的是資料庫的參數。所以,選項D錯誤。
所以,本題的答案為A。
從用戶端通過SQL*Plus登陸Oracle某個特定使用者,必須要提供的資訊有:使用者名稱、口令、本地服務名(如sqlplus user/[email protected]_name)
Oracle的進程比較多,常用的有如下幾類:
(1)資料寫進程(dbwr):負責將更改的資料從資料庫緩衝區快取寫入資料檔案。
(2)監控進程(pmon):負責在一個Oracle進程失敗時清理資源。
(3)歸檔進程(arcn):在每次日誌切換時把已滿的日誌組進行備份或歸檔。
(4)系統監控(smon):檢查資料庫的一致性如有必要還會在資料庫開啟時啟動資料庫的恢複。
(5)檢查點進程(ckpt):負責在每當緩衝區快取中的更改永久地記錄在資料庫中時,更新控制檔案和資料檔案中的資料庫狀態資訊。
(6)恢複進程(reco):保證分散式交易的一致性,在分散式交易中,要麼同時COMMIT,要麼同時ROLLBACK。
(7)作業調度器(cjq):負責將調度與執行系統中已定義好的JOB,完成一些預定義的工作。
(8)日誌寫進程(lgwr):將REDO日誌緩衝區中的更改寫入線上REDO記錄檔。
資料庫中的資料通常可分為使用者資料和系統資料兩部分,其中系統資料就可以稱為資料字典。資料字典(Data dictionary)是一種使用者可以訪問的記錄資料庫和應用程式中繼資料的目錄。資料字典是指對資料的資料項目、資料結構、資料流、資料存放區、處理邏輯、外部實體等進行定義和描述。其目的是對資料流程圖中的各個元素做出詳細的說明。資料字典可以分為主動和被動資料字典。主動資料字典是指在對資料庫或應用程式結構進行修改時,其內容可以由DBMS自動更新的資料字典。被動資料字典是指修改時必須手工更新其內容的資料字典。資料字典包括對資料庫的描述資訊、資料庫的儲存管理資訊、資料庫的控制資訊、使用者管理資訊和系統交易管理資訊等,所以資料字典也可以稱為系統目錄。
E-R模型是一種用圖形表示資料及其聯絡的方法,所使用的圖形構件包括矩形、菱形、橢圓形和連接線。其中,矩形表示實體,矩形框內寫上實體名。菱形表示聯絡,菱形框內寫上聯絡名。橢圓形表示屬性,橢圓形框內寫上屬性名稱。連接線表示實體,聯絡與屬性之間的所屬關係,或實體與聯絡之間的相連關係。
9.刪除STUDENT表的DEPT列,但是只有在沒有視圖或約束引用該列時才能執行刪除,否則拒絕刪除。正確表述上述需求的SQL語句是下列哪一個?(A)
A、ALTER TABLE STUDENT DROP DEPT RESTRICT;
B、ALTER TABLE STUDENT DELETE DEPT RESTRICT;
C、ALTER TABLE STUDENT DROP DEPT CASCADE;
D、ALTER TABLE STUDENT DELETE DEPT CASCADE;
刪除列使用DROP,排除B和D,有約束存在的時候使用RESTRICT,所以答案為A。
【轉】資料庫面試題