oracle 小測
01)oracle10i,oracle11g,oracle12c,其它i,g,c什麽意思?
i(Internet)互聯網
g(grid)網格
c(cloud) 雲
02)sqlplus是什麽意思?
是oracle自帶的客戶端工具,它的目的是通過客戶端連接到服務器進行SQL操作。
03)oracle的對安裝路徑有什麽要求,對硬件配置有什麽要求?
不能有中文,空白字符串的目錄
硬件要求:至少單CPU,內存1G,硬盤空間至少5G;
04)什麽是PLSQL?
過程化結構查詢語言,是對SQL的補充,只能在oracle數據庫服務器中運用。
05)向表中如何插入‘引號?
insert into emp(ename) values(‘‘‘‘);
查詢員工姓名中含有‘_‘的員工,使用\轉義符,讓其後的字符回歸本來意思【like ‘%\_%‘ escape ‘\‘】
select * from emp where ename like ‘%\_%‘ escape ‘\‘;
06)decode()函數的作用?
是oracle專用的多條件判斷函數,類似SQL99中case..end語法
舉例:
職位是分析員的,工資+1000;職位是經理的,工資+800;職位是其它的,工資+400
decode(字段,條件1,表達式1,條件2,表達式2,...表達式n)
select ename "姓名",job "職位",sal "漲前工資",
decode(job,‘ANALYST‘,sal+1000,‘MANAGER‘,sal+800,sal+400) "漲後工資"
07)union和union all的區別?
union all 表示兩個集合中相同的,都能取出
union 表示兩個集合中相同的,只能取出一個
08)delete和truncate和drop的區別?
delete是DML/可回滾/可帶where/相對慢/會產生碎片
truncate是DDL/不可回滾/不可帶where/相對中/內容無/結構有
drop是DDL/不可回滾/不可帶where/相對快/結構無/可以帶purge關鍵字/閃回!=回滾
09)oracle中為什麽能回滾?
不是說所有的操作都能回滾,只限於DML操作
因為DML操作的數據會被放入實例池中,DML操作後會被放到回滾區
所以對DML操作來說,是可以回滾的。
函數適合於有且只有一個返回值的情況
過程適合於無返回值或2個及其以上的返回值的情況
11)序列的cache有什麽作用?
序列的目的是對主鍵提高唯一的數值,但不一定連續
有了cache機制後,那麽主鍵直接可以從內存中獲取,速度提高,默認是20個主鍵值,
可被多個表共享。
12)簡述用戶,角色和權限的關系?
通常上面的三者的關系是多對多。
13)談談視圖使用的場合?
讓不同的角色用戶只可訪問該角色用戶能訪問的內容。
簡化復雜SQL的編寫,不能提高查詢效率
14)談談索引使用的場合?
針對表中的單個或多個字段創建索引,從而在根據該字段查詢時,提高效率。
15)一個完整的PLSQL有哪幾部分組成?
[declare]
begin
[exception]
end;
/
16)pename emp.ename%type和emp_rec emp%rowtype是什麽意思?
pename 變量與emp表ename相同類型
pename 變量與emp表的結構類型相同,通過變量名.字段名訪問
17)select to_char(sysdate,‘day‘) into pday from dual是什麽意思?
獲取當前星期幾設置到變量pday;
18)exit when cemp%notfound是什麽意思?
當cemp遊標找不到真實記錄時,就退出
19)什麽情況下,要使用cursor?
對表中多條記錄從上向下一一叠代是,可以使用cursor技術
20)NO_EMP_FOUND exception是什麽意思?
定義例外
21)什麽是存儲過程和存儲函數?
事先用oracle語言寫的一段具有業務功能的程序段,長期存於oracle服務器中,
供oracle客戶端或外界應用程序
22)存儲過程和存儲函數比較適合用在什麽地方?
過程:適合於無返回值或有超過一個以上返回值的應用
函數:有且僅有一個返回值。
23)in和out是什麽意思?默認是哪個?
in 接收實參
out 輸出返回值
默認是in
24)觸發器()是針對insert/delete/update/select哪些操作?
觸發器()是針對insert/delete/update
25)為什麽oracle不直接用rownum做主健呢?
rownum=1這條記錄不能永遠唯一表示SMITH這個用戶
但主鍵=1確可以永遠唯一表示SMITH這個用戶
26)刪除到回收站的表,通過什麽技術可以還原?
閃回
27)create table emp as select * from xxx_emp where 1<>1是什麽意思?
依據xxx_emp創建emp表結構,但無記錄
28)事務是針對DML/DDL/DCL哪種語句?
DML
29)drop table/truncate table/delete from 的區別?
drop table 是DDL/不可回滾/不可帶where/表內容和表結構
truncate table 是DDL/不可回滾/不可帶where/表內容沒表結構在
delete from 是DML/可回滾/速度最慢
30)oracle默認是哪種隔離級別?MySQL默認是哪種隔離級別?
31)grant select any table to scott和revoke select any table from scott是什麽意思?
授給Scott用戶查詢任何表的權限
撤銷Scott用戶查詢任何表的權限
32)on delete cascade和on delete set null是什麽意思?
刪除主表記錄時,同時刪除從表相關聯的記錄
刪除主表記錄時,不同時刪除從表相關聯的記錄,只是將從表的外鍵字段設置為null
33)你覺得什麽情況下要用視圖?
簡化sql查詢,不提高查詢速度
讓不同的用戶看到不同的數據
34)視圖能提高查詢效率(即讓查詢速度更快)嗎?
不能
只有索引才能提高查詢速度
35)只讀視圖有什麽好處?
不能對視圖進行非 select操作
註意:
單引號出現的地方如下:
1)字符串,例如:‘hello‘
2)日期型,例如:‘17-12月-80‘
3)to_char/to_date(日期,‘YYYY-MM-DD HH24:MI:SS‘)
雙引號出現的地方如下:
1)列別名,例如:select ename "姓 名" from emp
2)to_char/to_date(日期,‘YYYY"年"MM"月"DD"日" HH24:MI:SS‘)‘’號中的英文字符大小寫不敏感
oracle 小測