久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Oracle面試題

 昵稱10504424 2013-06-07
1.對字符串操作的函數(shù)?
答:ASCII() –函數(shù)返回字符表達(dá)式最左端字符的ASCII 碼值
CHR() –函數(shù)用于將ASCII 碼轉(zhuǎn)換為字符
–如果沒有輸入0 ~ 255 之間的ASCII 碼值CHR 函數(shù)會返回一個NULL 值
–應(yīng)該是必須給chr()賦數(shù)字值
concat(str,str)連接兩個字符串
LOWER() –函數(shù)把字符串全部轉(zhuǎn)換為小寫
UPPER() –函數(shù)把字符串全部轉(zhuǎn)換為大寫
LTRIM() –函數(shù)把字符串頭部的空格去掉
RTRIM() –函數(shù)把字符串尾部的空格去掉
TRIM() –同時去掉所有兩端的空格
實際上LTRIM(),RTRIM(),TRIM()是將指定的字符從字符串中裁減掉
其中LTRIM(),RTRIM()的格式為xxxx(被截字符串,,要截掉的字符串),,但是TRIM()的格式為TRIM(要截掉的一個字符 from 被截的字符串)
SUBSTR() –函數(shù)返回部分字符串
INSTR(String,substring) –函數(shù)返回字符串中某個指定的子串出現(xiàn)的開始位置,如果不存在則返回0
REPLACE(原來的字符串,,要被替換掉的字符串,,要替換成的字符串)
SOUNDEX() –函數(shù)返回一個四位字符碼
–SOUNDEX函數(shù)可用來查找聲音相似的字符串但SOUNDEX函數(shù)對數(shù)字和漢字均只返回NULL 值

2、事務(wù)概念
答案:事務(wù)是這樣一種機制,,它確保多個SQL語句被當(dāng)作單個工作單元來處理,。事務(wù)具有以下的作用:
* 一致性:同時進(jìn)行的查詢和更新彼此不會發(fā)生沖突,其他用戶不會看到發(fā)生了變化但尚未提交的數(shù)據(jù),。
* 可恢復(fù)性:一旦系統(tǒng)故障,,數(shù)據(jù)庫會自動地完全恢復(fù)未完成的事務(wù)。
3,、oracle中查詢系統(tǒng)時間
答:select sysdate from dual
4,、觸發(fā)器的作用,什么時候用觸發(fā)器,創(chuàng)建觸發(fā)器的步驟,,觸發(fā)器里是否可以有commit, 為什么?
答案:觸發(fā)器是可以由事件來啟動運行的,,存在于數(shù)據(jù)庫服務(wù)器中的一個過程。
他的作用:可以實現(xiàn)一般的約束無法完成的復(fù)雜約束,,從而實現(xiàn)更為復(fù)雜的完整性要求,。
使用觸發(fā)器并不存在嚴(yán)格的限定,,只要用戶想在無人工參與的情況下完成一般的定義約束不可以完成的約束,來保證數(shù)據(jù)庫完整性,,那么就可以使用觸發(fā)器,。
由于觸發(fā)器主要是用來保證數(shù)據(jù)庫的完整性的,所以要創(chuàng)建一個觸發(fā)器,,首先要明確該觸發(fā)器應(yīng)該屬于那一種(DML,,INSTEAD OF,SYSTEM)因為他們各有個的用途,;其次就是要確定觸發(fā)器被觸發(fā)以后所設(shè)計到的數(shù)據(jù),。
出發(fā)器中不可以使用COMMIT。
5.?dāng)?shù)字函數(shù)
abs()絕對值exp(value)e的value次冪ceil()大于等于該值的最小整數(shù)floor()小于等于該值的最大整數(shù)trunc(value,precision)保留precision個小數(shù)截取valueround(value,precision)保留precision個小數(shù)對value進(jìn)行四舍五入 sign()根據(jù)值為正負(fù)零返回1,,-1,,0mod()取模操作power(value,exponent)value的exponent次冪sqrt()求平方根
1.初級
4、關(guān)系數(shù)據(jù)庫系統(tǒng)與文件數(shù)據(jù)庫系統(tǒng)的區(qū)別在那里?關(guān)系數(shù)據(jù)庫系統(tǒng)一般適用那些方面?
答案:
關(guān)系數(shù)據(jù)庫系統(tǒng)文件系統(tǒng)的區(qū)別在于:
首先,,關(guān)系性數(shù)據(jù)庫的整體數(shù)據(jù)是結(jié)構(gòu)化的,,采用關(guān)系數(shù)據(jù)模型來描述,,這是它與文件系統(tǒng)的根本區(qū)別,。(數(shù)據(jù)模型包括:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操作以及完整性約束條件)
其次,,關(guān)系數(shù)據(jù)庫系統(tǒng)的共享性高,,冗余低可以面向整個系統(tǒng),而文件系統(tǒng)則具有應(yīng)用范圍的局限性,,不易擴展,。
第三,關(guān)系數(shù)據(jù)庫系統(tǒng)采用兩級映射機制保證了數(shù)據(jù)的高獨立性,,從而使得程序的編寫和數(shù)據(jù)都存在很高的獨立性,。這方面是文件系統(tǒng)無法達(dá)到的,它只能針對于某一個具體的應(yīng)用,。(兩級映射:保證邏輯獨立性的外模式/模式映射和保證物理獨立性的內(nèi)模式/模式映射,。外模式:用戶模式,是數(shù)據(jù)庫用戶的局部數(shù)據(jù)的邏輯結(jié)構(gòu)特征的描述,。模式:數(shù)據(jù)庫全體數(shù)據(jù)的邏輯結(jié)構(gòu)特征的描述,。內(nèi)模式:也就是數(shù)據(jù)最終的物理存儲結(jié)構(gòu)的描述。)
第四,,就是關(guān)系性數(shù)據(jù)庫系統(tǒng)由統(tǒng)一的DBMS進(jìn)行管理,,從而為數(shù)據(jù)提供了如安全性保護(hù),并發(fā)控制,,完整性檢查和數(shù)據(jù)庫恢復(fù)服務(wù),。

5,、觸發(fā)器的概念,存儲過程的概念.
答案:
觸發(fā)器: 是存儲在數(shù)據(jù)庫中的過程,當(dāng)表被修改(增,、刪,、改)時它隱式地被激發(fā)。
存儲過程:是數(shù)據(jù)庫語言SQL的集合,,同樣也存儲在數(shù)據(jù)庫中,,但是他是由其他應(yīng)用程序來啟動運行或者也可以直接運行。
6,、基本SQL語句有哪些.
答案:
select,、insert、update,、delete,、create、drop,、truncate
1.中級
8,、什么是事務(wù)一致性 ? 選擇熟悉的數(shù)據(jù)庫實現(xiàn)一個事務(wù)處理,如信用卡提款.
答案:
事務(wù)的一致性:是事務(wù)原子性的體現(xiàn),事務(wù)所對應(yīng)的數(shù)據(jù)庫操作要么成功要么失敗沒有第三種情況,。事務(wù)不管是提交成功與否都不能影響數(shù)據(jù)庫數(shù)據(jù)的一致性狀態(tài),。
事務(wù):用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全部成功完成要么全部不做,,是一個不可分割的整體,。定義事務(wù)的SQL語句有:BEGIN TRANSACTION,COMMIT,,ROLLBACK,。
事務(wù)的原子性:就是事務(wù)所包含的數(shù)據(jù)庫操作要么都做,要么都不做.
事務(wù)的隔離性:事務(wù)對數(shù)據(jù)的操作不能夠受到其他事務(wù)的影響。
事務(wù)的持續(xù)性:也就是說事務(wù)對數(shù)據(jù)的影響是永久的,。
對’信用卡提款’這一事務(wù)而言就是要保證’提取到現(xiàn)金’和’卡賬號余額’的修改要同時成功或失敗.
BEGIN TRANSACTION
讀取A的帳戶余額BALANCE,;
BALANCE=BALANCE-AMOUNT轉(zhuǎn)帳金額;
IF(BALANCE<0) THEN
ROLLBACK,;
ELSE
BEGIN
將A的新余額寫回,;
讀取B的帳戶余額BALANCEB;
BALANCEB=BALANCEB+AMOUNT轉(zhuǎn)帳金額,;
將B的新余額寫回,;
COMMIT;
END IF,;
END,;

9、實際編寫和調(diào)試存儲過程或觸發(fā)器.
答案:
10、實現(xiàn)索引的方式? 索引的原理? 索引的代價? 索引的類型?
答案: 實現(xiàn)索引的方式有兩種:針對一張表的某些字段創(chuàng)建具體的索引,如對oracle: create index 索引名稱 on 表名(字段名),;在創(chuàng)建表時為字段建立主鍵約束或者唯一約束,,系統(tǒng)將自動為其建立索引。
索引的原理:根據(jù)建立索引的字段建立索引表,,存放字段值以及對應(yīng)記錄的物理地址,,從而在搜索的時候根據(jù)字段值搜索索引表的到物理地址直接訪問記錄。
引入索引雖然提高了查詢速度,但本身占用一定的系統(tǒng)存儲容量和系統(tǒng)處理時間,需要根據(jù)實際情況進(jìn)行具體的分析.
索引的類型有:B樹索引,,位圖索引,,函數(shù)索引等。
11,、view 的概念 ? 何時應(yīng)用?
答案: view 是對表級數(shù)據(jù)的多角度的透視,適用于對查詢安全性,、靈活性有一定要求的環(huán)境
12、sql語句例外處理?舉例說明?
答案: 當(dāng)sql 語句在執(zhí)行過程中出現(xiàn)意外時,如查詢時,未查詢到結(jié)果;更改時無記錄等情況的應(yīng)采取的措施.
以oracle為例:測試其對exception的理解.如
select 字段 into 變量 from table ;
若查詢出多條記錄,應(yīng)增加exception 例外處理.
Oracle處理異常有三種:
1.預(yù)定義的例外處理,,EXCEPTION WHEN exception_name THEN
2.EXCEPTION_INIT產(chǎn)生例外
首先要declare 聲明一個例外名,;然后將例外名和錯誤代碼綁定pragma exception_init(錯誤名,錯誤代碼);最后在EXCEPTION 處when 錯誤名then
3.用戶自定義例外,,不用EXCEPTION,,當(dāng)判斷條件成熟時用raise_application_error(-20000~~~-20999,提示信息),。
13,、判斷下列論述是否正確。 (1) 一個事務(wù)中的某條SQL命令提交時,,其它SQL命令可以不提交,。 (2) 在一個關(guān)系表中,,主鍵可唯一標(biāo)識一行記錄,。 (3) 一個關(guān)系表中的外鍵必定是另一表中的主鍵。 (4) 回滾可以在事務(wù)失敗時,,回到操作事務(wù)前的數(shù)據(jù)狀態(tài),。
答案: (1)錯誤 (2)正確 (3)正確 (4)正確
14、以下哪些手段可保證數(shù)據(jù)庫中數(shù)據(jù)的完整性和一致性: (1)自定義數(shù)據(jù)類型 (2)觸發(fā)器 (3)主鍵和外鍵 (4)事務(wù)
答案: (1)(2)(3)(4) (為什么有1)
15,、使用存儲過程訪問數(shù)據(jù)庫比直接用SQL語句訪問有哪些優(yōu)點?
答案:存儲過程是預(yù)編譯過的,,執(zhí)行時勿須編譯,執(zhí)行速度更快,;存儲過程封裝了一批SQL語句,,便于維護(hù)數(shù)據(jù)的完整性與一致性;可以實現(xiàn)代碼的復(fù)用,。
1.高級
16,、對于精通的數(shù)據(jù)庫系統(tǒng)描述其體系結(jié)構(gòu),主要包括存儲機制、回滾機制、運行機制等.
答案:對oracle 系統(tǒng)而言,描述sga的結(jié)構(gòu); 后臺pmon,ckpt,、lgwr,smon等進(jìn)程的功能;表空間的分配策略; 回滾段的結(jié)構(gòu)
oracle的sga(系統(tǒng)全局區(qū))包括的主要區(qū)有:數(shù)據(jù)庫緩存區(qū),,重做日志緩存區(qū),共享池(數(shù)據(jù)字典緩存和庫緩存),,大池等,。數(shù)據(jù)庫緩存區(qū)用來存放最近使用過的數(shù)據(jù)塊主要和后臺進(jìn)程中的數(shù)據(jù)庫寫進(jìn)程(DBWR)以及數(shù)據(jù)文件發(fā)生關(guān)系;重做日志緩存區(qū)用于存放操作數(shù)據(jù)庫數(shù)據(jù)所產(chǎn)生的重做日志信息,,與之合作的有重做日志寫進(jìn)程(LGWR)和重做日志文件,;共享池主要緩存SQL/PLSQL,資源鎖,,控制信息等,,其中的庫緩存主要緩存被解析執(zhí)行過的SQL/PLSQL庫緩存可分為共享SQL和私有SQL兩個區(qū),共享SQL用于存放SQL語句的語法分析結(jié)果和執(zhí)行計劃,,私有SQL則用來存放與具體SQL語句執(zhí)行有關(guān)的綁定變量,,會話參數(shù)等。
ORACLE實例的另外一個重要部分就是其后臺進(jìn)程,,主要的后臺進(jìn)程有:數(shù)據(jù)庫寫進(jìn)程(DBWR),,重做日志寫進(jìn)程(LGWR),系統(tǒng)監(jiān)視器(SMON),,進(jìn)程監(jiān)視器(PMON),,檢查點進(jìn)程(CKPT)。DBWR主要是對數(shù)據(jù)庫緩存區(qū)中的臟冷數(shù)據(jù)進(jìn)行寫入數(shù)據(jù)文件操作,;LGWR主要是將對數(shù)據(jù)庫數(shù)據(jù)操作所產(chǎn)生的重做日志信息寫入到重做日志文件中,;SMON完成由于非正常關(guān)閉數(shù)據(jù)庫的情況下重起數(shù)據(jù)庫時對數(shù)據(jù)庫的恢復(fù);PMON用來恢復(fù)失敗的用戶進(jìn)程和服務(wù)進(jìn)程,,并釋放其所占的系統(tǒng)資源,;CKPT可以表示數(shù)據(jù)庫在此出處于完整狀態(tài)。
邏輯存儲結(jié)構(gòu):數(shù)據(jù)塊BLOCK,,區(qū)EXTENT,,段SEGMENT,表空間TABLESPACE
物理存儲空間:表空間,,數(shù)據(jù)文件,,控制文件,日志文件,,數(shù)據(jù)字典
軟件體系結(jié)構(gòu)就是上邊對SGA和后臺進(jìn)程的描述,。
17、對于精通的數(shù)據(jù)庫系統(tǒng)描述其數(shù)據(jù)一致性的保證機制,包括lock,事務(wù)一致性等.
答案: 在并發(fā)環(huán)境下,采用多種機制保持其數(shù)據(jù)的一致性,如oracle系統(tǒng)提供的事務(wù)級的一致性,、行級鎖,、表級鎖等等.
18、對精通的數(shù)據(jù)庫系統(tǒng)描述其聯(lián)機備份機制、恢復(fù)機制,考核其對日志的理解.
答案: 描述相關(guān)數(shù)據(jù)庫的實時聯(lián)機備份策略,如數(shù)據(jù)庫系統(tǒng)在運行中通過何種方式保證其數(shù)據(jù)的實時備份, 出現(xiàn)問題時,應(yīng)采取何種辦法從聯(lián)機備份進(jìn)行恢復(fù).
對對oracle而言,其archive online 備份方式應(yīng)如何設(shè)置,、修改什么參數(shù),、如何安排備份空間等等.
19、精通的數(shù)據(jù)庫系統(tǒng)描述性能優(yōu)化方法,包括優(yōu)化的策略,、參數(shù),、驗證方法等.
答案:
20、Truncate; 與 delete;的區(qū)別?(這道題可以衍生出很多的問題比如:想快速的清除一個很大的表中的數(shù)據(jù)應(yīng)該用設(shè)么操作?答案是:應(yīng)該用truncate,。還有,,在對兩個相同紀(jì)錄數(shù)的分別表使用了truncate,和delete commit;后對這兩個表進(jìn)行count(*)統(tǒng)計記錄數(shù)操作,那個表速度會快些?答案是:使用了truncate的會快些,。)
21,、寫一個'游標(biāo)’并使用它。(這道題應(yīng)該注意的是:在使用游標(biāo)后一定要記得關(guān)閉游標(biāo)),。
Declare
Cursor cursor_name is
Select * from tablename;
Begin
Open cursor_name;
Loop
Fetch cursor_name into bianliang;
Exit when cursor_name%notfound;
Sql……..
End loop;
Close cursor_name;
End;
22,、在創(chuàng)建表的時候會設(shè)置
pctfree 10
pctused 40
而創(chuàng)建表的索引的時候卻沒有
pctused 40
這是為什么?
(這道題的主要思想是索引不能在pctused 40上得到什么好處)
23、使用過的最大的表有多少行紀(jì)錄?(這道題不是看應(yīng)試者的技術(shù)過不過關(guān),,而是考察應(yīng)試者是否有大型數(shù)據(jù)庫的管理操作經(jīng)驗)
不要對表的索引列進(jìn)行函數(shù)操作,,因為這樣系統(tǒng)就不能使用索引,使查詢變得很慢,,但是在ora8i以后就已經(jīng)開始支持函數(shù)的索引,,彌補了這個不足。

24,、ORACLE數(shù)據(jù)庫啟動與關(guān)閉的步驟
啟動:啟動實例—-加載數(shù)據(jù)庫數(shù)據(jù)—–打開數(shù)據(jù)庫
關(guān)閉:關(guān)閉數(shù)據(jù)庫—-卸載數(shù)據(jù)庫數(shù)據(jù)—-關(guān)閉實例
25,、Delete與truncate的區(qū)別
delete一般用于刪除少量記錄的操作,而且它是要使用回滾段并且要進(jìn)行顯示的提交事務(wù),。而truncate則使用于大量刪除數(shù)據(jù),,而且隱式提交事務(wù),其速度要比使用delete快的多,。
26,、DDL和DML分別代表什么??
DDL表示數(shù)據(jù)定義語言,在ORACLE中主要包括CREATE,,ALTER,DROP
DML表示數(shù)據(jù)操作語言,,主要的DML有SELECT,,INSERT,UPDATE,,DELETE
28,、Javascript中動態(tài)效果時調(diào)用的函數(shù)。
29、數(shù)據(jù)庫中有若干條相同的記錄,,刪除到只剩下一條記錄,。如何做,請用SQL語句通過ROW_ID來寫出執(zhí)行過程,。
Delete table_name where ziduan=’’ and rowed<(select max(rowed) from table_name where ziduan=’’);
30,、oracle數(shù)據(jù)庫表存放到磁盤什么地方(什么物理空間上——大概意思)?
Oracle數(shù)據(jù)庫表存放在數(shù)據(jù)文件上。
31,、Oracle使用什么語句給用戶分配權(quán)限?
GRANT TO 語句
32,、你在項目現(xiàn)場,用戶要求你向正在運行的表中添加一個字段,,你該怎么做?
第一種方法:關(guān)閉數(shù)據(jù)庫,,然后使用受限模式打開,由sys/sysdba來進(jìn)行
第二種方法:不關(guān)閉數(shù)據(jù)庫,,將數(shù)據(jù)庫置于靜默狀態(tài)在SYS/SYSDBA模式下用ALTER SYSTEM QUISCE RESTRICTED,,這種狀態(tài)下只有SYS/SYSDBA才可以對數(shù)據(jù)庫進(jìn)行操作,修改完畢之后再退出靜默狀態(tài)ALTER SYSTEM UNQUISCE
在這里復(fù)習(xí)到了數(shù)據(jù)庫的兩種特殊狀態(tài):靜默狀態(tài)(QUISCE)和掛起狀態(tài)
靜默狀態(tài)就是只有特殊權(quán)限的SYS/SYSDBA才可以對數(shù)據(jù)庫進(jìn)行操作,,使用ALTER SYSTEM QUISCE RESTRICTED以后系統(tǒng)將等候活動著的會話主動結(jié)束,,同時阻止建立新的會話,系統(tǒng)掛起所有的SQL語句,,等恢復(fù)以后再重新激活會話執(zhí)行掛起的SQL,。
掛起狀態(tài)就是系統(tǒng)將數(shù)據(jù)庫所有對物理文件(數(shù)據(jù)文件,控制文件,,日志文件)的I/O操作都暫停,,但是并不禁止非DBA用戶對數(shù)據(jù)庫進(jìn)行操作。這種狀態(tài)主要用于進(jìn)行數(shù)據(jù)庫備份,。

33,、Oracle中回滾的概念?回滾段有什么作用。
回滾就是在事務(wù)提交之前將數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到事務(wù)修改之前數(shù)據(jù)庫數(shù)據(jù)狀態(tài),。
回滾段就是為回滾提供依據(jù),,記錄的是事務(wù)操作數(shù)據(jù)庫之前的數(shù)據(jù)或者對應(yīng)于以前操作的操作,這個內(nèi)容要根據(jù)以前的操作而定,。比如說以前事務(wù)操作如果是UPDATE那么回滾段則存儲UPDATE以前的數(shù)據(jù),,如果事務(wù)是DELETE操作那么存儲的則是與之相對應(yīng)的INSERT操作語句,相反如果事務(wù)操作是INSERT那么記錄相應(yīng)的則是DELETE操作了,。
34,、Oracle的8I和9I有什么區(qū)別
35、一張表有10萬條記錄,,如何刪除其中的任意20條記錄?請用SQL語句進(jìn)行操作
36,、客戶端如何訪問服務(wù)器端的oracle?如果客戶端無法訪問服務(wù)器端的oralce,,可能會是什么原因?
客戶端通過網(wǎng)絡(luò)或者進(jìn)程方式以合法的用戶身份來取得和服務(wù)器端ORACLE的連接。如果客戶端無法訪問服務(wù)器端ORACLE可能出現(xiàn)的原因是:用戶無權(quán)訪問,;服務(wù)器端數(shù)據(jù)庫并沒有打開(啟動數(shù)據(jù)庫的第三步?jīng)]有完成),;如果服務(wù)器是在共享模式下的則有可能沒有對應(yīng)于該客戶所使用的通信協(xié)議的調(diào)度進(jìn)程Dnnn。
37,、oracle中執(zhí)行語句錯誤時去哪里查找錯誤信息?
Select * from USER_ERRORS
38,、select語句需要提交嗎?insert和update語句呢?
39、在執(zhí)行insert語句并提交后,,這些提交的數(shù)據(jù)存儲到什么地方??
被存儲到數(shù)據(jù)文件中
40,、oracle中有哪些類型的文件?
數(shù)據(jù)文件,控制文件,,日志文件和數(shù)據(jù)字典
41,、介紹一下oracle的體系結(jié)構(gòu)?
邏輯體系結(jié)構(gòu):塊,區(qū),,段,,表空間
物理體系結(jié)構(gòu):表空間,三大文件
軟件體系結(jié)構(gòu):SGA,后臺進(jìn)程
42,、談?wù)剬racle的row_ id是否理解?請簡述?
ORACLE的row_id是一個偽列,,其個是為18個字節(jié)可將這18個字節(jié)用6363來劃分,分別表示段編號,,數(shù)據(jù)文件編號,,數(shù)據(jù)塊編號和記錄編號。
Row_id表示的是一個記錄的物理存儲地址,。
43,、oracle中如何刪除用戶?
Oracle中使用DROP USER來刪除用戶,如果使用DROP USER CASCADE那么用戶的對象也同時被刪除掉,。為了達(dá)到刪除用戶的效果而又不影響對用戶下的對象的使用可以使用alter user username account lock將用戶鎖定,。
44、客戶端對服務(wù)器端的oralce操作的流程是什么?
專用模式下:用戶通過應(yīng)用程序進(jìn)程試圖去得到一個與ORACLE數(shù)據(jù)庫服務(wù)器的連接?客戶端通過網(wǎng)絡(luò)傳遞連接請求,,ORACLE服務(wù)器則使用監(jiān)聽進(jìn)程監(jiān)聽用戶請求,,并且來驗證用戶身份,通過驗證則為用戶分配一專用服務(wù)進(jìn)程?用戶提交SQL語句?專用服務(wù)進(jìn)程則首先在SGA區(qū)的共享池中檢查是否有與該SQL語句相似的已經(jīng)被解析執(zhí)行并且緩存的SQL語句,,如果有則采用它的解析結(jié)果和執(zhí)行計劃執(zhí)行SQL語句,,如果沒有則對SQL語句進(jìn)行語法解析生成執(zhí)行計劃?通過解析則執(zhí)行操作獲取數(shù)據(jù)?將執(zhí)行結(jié)果返回給客戶。
共享模式下:與專用模式不同在于當(dāng)監(jiān)聽程序驗證用戶的合法性以后并不為它分配一個專用的服務(wù)進(jìn)程,,而是將該請求與響應(yīng)的調(diào)度進(jìn)程相聯(lián)系起來,,并將起放入到一個請求隊列中,最終由響應(yīng)的Dnnn來從調(diào)度隊列中獲取一個請求并為之分配一個空閑的服務(wù)進(jìn)程,,接下來有服務(wù)進(jìn)程對該請求進(jìn)行服務(wù)操作和專用方式下相同,,處理完成之后由服務(wù)進(jìn)程先將結(jié)果放入一個返回隊列最后再由調(diào)度進(jìn)程(Dnnn)將返回隊列中的結(jié)果返回給對應(yīng)的用戶。
45,、exits和in在ORALCE數(shù)據(jù)庫中那個執(zhí)行效率更高?
Exits執(zhí)行效率比in高,。因為:
46、如何判斷游標(biāo)已經(jīng)到最后一行?
Cursor_name%notfound
47,、聚簇索引和普通索引在不同的SQL語句中哪個效率更高??(筆試題,,原題回憶不起來,主題就是聚簇索引和普通索引的區(qū)別)
概念類:
聚合函數(shù)? Session的定義和用法? Oracle的存儲過程 ? 什么是構(gòu)造函數(shù)?

48,、簡述ORACLE中SGA的組成部分,。
答:系統(tǒng)全局區(qū)包括:共享池、重做日志緩存區(qū),、數(shù)據(jù)高速緩存區(qū),,大池,JAVA池,。
49,、簡述ORACLE的啟動和關(guān)閉各有多少步驟?
啟動:啟動實例、裝載數(shù)據(jù)庫數(shù)據(jù),、打開數(shù)據(jù)庫,。
關(guān)閉:關(guān)閉數(shù)據(jù)庫、卸載數(shù)據(jù)庫數(shù)據(jù),、關(guān)閉實例,。
50、在Oracle表空間的分類和作用,,如排序時數(shù)據(jù)將放在什么表空間?
作用是為了突破存儲容量的限制,,是一個邏輯概念。排序數(shù)據(jù)放在臨時表空間,。
51,、執(zhí)行COMMIT命令時,數(shù)據(jù)庫將會發(fā)生什么改變,,ROLLBACK呢?
答:commit 提交時首先是與事務(wù)對應(yīng)的重做日志信息將被寫入到數(shù)據(jù)庫物理文件中的重做日志文件中,,至于是否會真正將事務(wù)操作的內(nèi)容反映到數(shù)據(jù)文件還好看DBWR是否啟動了。在完成數(shù)據(jù)庫的插入,,刪除和修改操作時,,只有當(dāng)事務(wù)提交到數(shù)據(jù)庫才算完成,有提交前只有操作數(shù)據(jù)庫的本人才能看到,,別人只有在最后提交完成才可以看到,。
ROLLBACK回滾當(dāng)前尚未提交的事務(wù),使數(shù)據(jù)庫恢復(fù)到事務(wù)操作前的狀態(tài),。
52,、用命令創(chuàng)建用戶,,并為用戶授權(quán)。
Create user user_name
identified by password /
identified externally/
identified blobally as 'CN=user’
default tablespace tablespace_name
temporary tablespace tablespace_name;
grant role/privilege to user_name;

53,、寫一個存儲過程,,使employee(name,age,emp_no,salary)表中的salary值在0-1000之間的員工的工資上漲20%,(提示:要求用到游標(biāo))
Cteate or replace procedure emp_sal
V_name employee.name%type;
V_emp_no employee.emp_no%type;
V_salary employee.salary%type;
Cursor cursor_sal is
Select name,emp_no,salary from employee where salary between 0 and 1000;
Begin
Open cursor_sal;
Loop
Fetch cursor_sal into v_name,v_emp_no,v_salary;
Exit when cursor_sal%notfound;
Update employee set salary=salary*1.2 where name=v_name and emp_no=v_emp_no;
End loop;
Close cursor_sal;
Commit;
End;
54,、ORACLE數(shù)據(jù)庫都有哪些類型的文件?
數(shù)據(jù)文件,,控制文件,日志文件,,參數(shù)文件
55,、用命令創(chuàng)建表空間、用戶,,并為用戶授權(quán),、收回權(quán)限。
Create tablespace tabllespacename
Datafile 'f:\orcl\user001.dbf size 20m
Default storage(
Initial 512k
Next 512k
minextents 2
pctincrease 50%
maxExitnts 2048)
minimum extent 512k
logging
online
permanent
extent management dictionary;
回收權(quán)限: revoke privilege from user,;
create tablespace tablespace_name
datafile '’
default storage(
initial xxxkb
next yykb
minextents 2
pctincrease nnnn
maxextents mmm)
logging
online
extent management dictionary/local[autoallocate/uniform size xxxmb];
create user user_name
identified by passwore/
identified externally/
identified globally as 'CN=user’
default tablespace tablespace_name
temporary tablespace tablespace_name
[account lock /unlock]
grant connect to user_name;
grant create table to suer_name;
grant update on table_name to user_name;
revoke create table from user_name;
revoke update on table_name from user_name;
56,、在Oracle中如何更改用戶名?
57、如何在Oracle中查詢某個用戶下所有已建的表?
答:select * from cat;
57,、執(zhí)行TRUNCATE命令后,,存儲空間是否還存在,是否可被其他的表占用?
執(zhí)行TRUNCATE之后,,為表分配的區(qū)空間將被回收HWM將回退,,如果在使用TRUNCATE的時候沒有指定REUSE STORAGE那么執(zhí)行操作后僅僅留下由MINEXTENTS所指定的區(qū)否則表的所有空間將被回收用于再分配。
59,、何在Oracle中查看當(dāng)前用戶,,通常有哪些方式?(提示:show user和select * from user_users)show user;/select username from user_users;
60、出在Oracle中,,創(chuàng)建表空間的語法結(jié)構(gòu),,以及所含參數(shù)說明。
Create tablespace tablespacename
Datafile '’
Logging/nologging
Default storage(initial kb
Next kb
Minextents x
Maxextents y
Pctincrease z
)
online/not online
extent management dictionary/local[autoallocate/uniform size kb];
61,、如何判斷游標(biāo)是否到了末尾?(提示:用%notfound)
cursor_name%notfound
62,、在Oracle中,如何查看當(dāng)前用戶下的所有表空間?
Select tablespace_name from user_tablespaces;
63,、在Oracle中,,你所創(chuàng)建的表空間信息放在哪里?
存放在數(shù)據(jù)字典中,數(shù)據(jù)字典內(nèi)容對應(yīng)于系統(tǒng)表空間SYSTEM表空間,。
64,、ORACLE中的控制文件什么時候讀取?
ORACLE服務(wù)器啟動時,先啟動實例然后再讀取數(shù)據(jù)庫的各個文件當(dāng)然也包括控制文件,。也就是說在數(shù)據(jù)庫服務(wù)器啟動的第二步時讀取,。
65,、Oracle的表格信息存儲在哪個地方?
SYSTEM表空間的數(shù)據(jù)字典文件中。
66,、如何根據(jù)字典創(chuàng)建一個表空間,,并說明參數(shù)?
66,、ORACLE中當(dāng)一個用戶正在操作一個執(zhí)行過程,,管理員此時取消了他的權(quán)限,會發(fā)生什么事情?

68,、談?wù)勀銓巧睦斫?,常用的角色有哪?
角色就是一組權(quán)限的數(shù)據(jù)庫實體,它不屬于任何模式或用戶但是可以被授予任何用戶,。常用的角色有CONNECT,,DBA,RESOURCE,,SELECT_CATALOG_ROLE(查詢所有表視圖權(quán)),,DELETE_CATALOG_ROLE(刪除權(quán)限)等。
角色的創(chuàng)建和授權(quán):和創(chuàng)建用戶為用戶授權(quán)差不多,。Create role role_name identified …
grant 權(quán)限to role_name,。
69、簡述Oracle的歸檔與不歸檔工作模式,,分別說明,。
Oracle歸檔模式是指在創(chuàng)建數(shù)據(jù)庫時指定了ARCHIVELOG參數(shù),這種模式下,,當(dāng)重做日志文件寫滿的時候會將該重做日志文件的內(nèi)容保存到指定的位置(由初始化文件中的參數(shù)ARCHIVE_LOG_DEST_n來決定),。并不是數(shù)據(jù)庫在歸檔模式下工作的時候就可以自動完成歸檔操作,在歸檔模式下可以有兩種歸檔方式:自動歸檔(在初始化文件中的參數(shù)ARCHIVE_LOG_START被設(shè)置為TRUE)和手動歸檔,。如果歸檔模式下沒有啟動自動歸檔的話,,而且又沒有實行手動歸檔那么當(dāng)LGWR進(jìn)程將重做日志信息寫入已經(jīng)寫滿的重做日志文件時數(shù)據(jù)庫將會被掛起直到進(jìn)行了歸檔??梢姎w檔是對重做日志文件信息的一種保護(hù)措施,。
Oracle非歸檔模式下當(dāng)重做日志文件寫滿以后若是有LGWR進(jìn)行重做日志信息的寫入操作時,以前保存在重做日志文件中的重做日志信息就會被覆蓋掉,。
70,、Oracle索引分為哪幾類,說出唯一索引和位圖索引的概念,。
Oracle索引有B樹索引,,位圖索引,函數(shù)索引,,簇索引等,。
唯一索引也是B樹索引的一種,,它要求被索引的字段值不可以重復(fù)。在創(chuàng)建的時候使用B樹算法創(chuàng)建,。
位圖索引并不是采用象唯一索引那樣存儲(索引字段值,,記錄ROWID)來創(chuàng)建索引段的,而是為每一個唯一的字段值創(chuàng)建一個位圖,,位圖中使用位元來對應(yīng)一個記錄的ROWID,。位元到ROWID是通過映射的到的。
71,、ORACLE的基本數(shù)據(jù)類型有哪些?
Char()存儲定長字符,,定義的時候可以不為他指定長度但是如若往里插入值則會出錯;varchar2()存儲變長字符定義的時候必須指定長度,,date存儲時間日期,;Number()數(shù)字類型,包括整型,,浮點型等,;clob()大容量字符串;blob()大二進(jìn)制對象
72,、SQL中,,執(zhí)行四舍五入的是哪個函數(shù)?
Round(value,保留的小數(shù)位數(shù))與只對應(yīng)的還有一個特別相似的函數(shù)trunc(value,,保留的小數(shù)位數(shù))它的作用是根據(jù)要保留的小數(shù)位數(shù)來截取原數(shù),。
73、oracle數(shù)據(jù)庫表存放到磁盤什么地方?數(shù)據(jù)文件
ORACLE數(shù)據(jù)庫的表存放在物理文件中的數(shù)據(jù)文件中,。
74,、當(dāng)執(zhí)行insert語句并提交后,這些提交的數(shù)據(jù)存儲到什么地方??
存儲到了數(shù)據(jù)庫的數(shù)據(jù)文件中,。
75,、Exits和in在ORALCE數(shù)據(jù)庫中那個執(zhí)行效率更高?
EXITS執(zhí)行效率要比使用IN要快。
76,、ORACLE自己提供的函數(shù),,想知道具體位置,如何操作?
77,、數(shù)據(jù)庫的幾種物理文件?
1)數(shù)據(jù)文件 2)控制文件 3)日志文件
78,、控制文件都含有哪些信息?
控制文件存放有實例信息(實例名稱創(chuàng)建時間等),數(shù)據(jù)文件和日志文件信息,,還有系統(tǒng)運行時記錄的系統(tǒng)變更碼(SCN),,檢查點信息和歸檔的當(dāng)前狀態(tài)信息等。數(shù)據(jù)庫在加載數(shù)據(jù)庫的時候首先要讀取控制文件獲得和數(shù)據(jù)庫有關(guān)的物理結(jié)構(gòu)信息之后才能夠正確加載數(shù)據(jù)文件和日志文件并打開數(shù)據(jù)庫。
79,、Decode函數(shù)的用法?
DECODE的語法:DECODE(value,if1,then1,if2,then2,if3,then3,…,else),,表示如果value等于if1時,DECODE函數(shù)的結(jié)果返回then1,…,如果不等于任何一個if值,,則返回else,。初看一下,DECODE 只能做等于測試,,但剛才也看到了,,我們通過一些函數(shù)或計算替代value,是可以使DECODE函數(shù)具備大于,、小于或等于功能,。
2.如何用decode進(jìn)行大于小于的比較?
利用sign()函數(shù)和DECODE和在一起用
select decode(sign(變量1-變量2),-1,變量1,變量2) from dual;

decode(條件,值1,翻譯值1,值2,翻譯值2,…值n,翻譯值n,缺省值)
該函數(shù)的含義如下:
IF 條件=值1 THEN
RETURN(翻譯值1)
ELSIF 條件=值2 THEN
RETURN(翻譯值2)
……
ELSIF 條件=值n THEN
RETURN(翻譯值n)

ELSE
RETURN(缺省值)
END IF
使用方法:
1、比較大小
select decode(sign(變量1-變量2),-1,變量1,變量2) from dual; –取較小值
sign()函數(shù)根據(jù)某個值是0,、正數(shù)還是負(fù)數(shù),分別返回0,、1,、-1

例如:
變量1=10,變量2=20
則sign(變量1-變量2)返回-1,,decode解碼結(jié)果為“變量1”,,達(dá)到了取較小值的目的。

2,、表,、視圖結(jié)構(gòu)轉(zhuǎn)化
現(xiàn)有一個商品銷售表sale,表結(jié)構(gòu)為:
month char(6) –月份
sell number(10,2) –月銷售金額

現(xiàn)有數(shù)據(jù)為:
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300

想要轉(zhuǎn)化為以下結(jié)構(gòu)的數(shù)據(jù):
year char(4) –年份
month1 number(10,2) –1月銷售金額
month2 number(10,2) –2月銷售金額
month3 number(10,2) –3月銷售金額
month4 number(10,2) –4月銷售金額
month5 number(10,2) –5月銷售金額
month6 number(10,2) –6月銷售金額
month7 number(10,2) –7月銷售金額
month8 number(10,2) –8月銷售金額
month9 number(10,2) –9月銷售金額
month10 number(10,2) –10月銷售金額
month11 number(10,2) –11月銷售金額
month12 number(10,2) –12月銷售金額

結(jié)構(gòu)轉(zhuǎn)化的SQL語句為:
create or replace view
v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)
as
select
substrb(month,1,4),
sum(decode(substrb(month,5,2),’01′,sell,0)),
sum(decode(substrb(month,5,2),’02′,sell,0)),
sum(decode(substrb(month,5,2),’03′,sell,0)),
sum(decode(substrb(month,5,2),’04′,sell,0)),
sum(decode(substrb(month,5,2),’05′,sell,0)),
sum(decode(substrb(month,5,2),’06′,sell,0)),
sum(decode(substrb(month,5,2),’07′,sell,0)),
sum(decode(substrb(month,5,2),’08′,sell,0)),
sum(decode(substrb(month,5,2),’09′,sell,0)),
sum(decode(substrb(month,5,2),’10′,sell,0)),
sum(decode(substrb(month,5,2),’11′,sell,0)),
sum(decode(substrb(month,5,2),’12′,sell,0))
from sale
group by substrb(month,1,4);

79,、CASE語句的用法?
Oracle用法很簡單:
SELECT last_name, job_id, salary
CASE job_id
WHEN 'IT_PROG’ THEN 1.10*salary
WHEN 'ST_CLERK’ THEN 1.15*salary
WHEN 'SA_REP’ THEN 1.20*salary
ELSE salary END “REVISED_SALARY”
FROM employees

80,、truncate和delete的區(qū)別?
1、TRUNCATE在各種表上無論是大的還是小的都非???。如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會被撤銷,。
2,、TRUNCATE是一個DDL語言而DELETE是DML語句,向其他所有的DDL語言一樣,,他將被隱式提交,,不能對TRUNCATE使用ROLLBACK命令。
3,、TRUNCATE將重新設(shè)置高水平線和所有的索引,。在對整個表和索引進(jìn)行完全瀏覽時,經(jīng)過TRUNCATE操作后的表比DELETE操作后的表要快得多。
4,、TRUNCATE不能觸發(fā)觸發(fā)器,,DELETE會觸發(fā)觸發(fā)器。
5,、不能授予任何人清空他人的表的權(quán)限,。
6、當(dāng)表被清空后表和表的索引講重新設(shè)置成初始大小,,而delete則不能,。
7、不能清空父表,。
81,、表空間如何擴展?并用語句寫出?
兩種擴展方式:
a)增加數(shù)據(jù)文件
alter tablespace tablespace_name add datafile '’ xxMB
b)擴展數(shù)據(jù)文件大小
alter database datafile '’ resize newMB
82、表空間區(qū)管理方式?哪種方式現(xiàn)在是推薦使用的?
a)字典管理方式
extent management dictionary;默認(rèn)方式
b)本地管理方式
extent management local[autoallocate/uniform xxmb];
83,、用什么函數(shù)獲得日期?和日期中的月,,日,年
to_char(sysdate,’year’):tow thsound six to_char(sysdate,’yyyy’) :2006
to_char(sysdate,’month’):8月to_char(sysdate,’mm’):08
to_char(sysdate,’day’):星期4 to_char(sysdate,’dd’):22
84,、分區(qū)表的應(yīng)用?

a)一個分區(qū)表有一個或多個分區(qū),,每個分區(qū)通過使用范圍分區(qū)、散列分區(qū),、或組合分區(qū)分區(qū)的行
b)分區(qū)表中的每一個分區(qū)為一個段,,可各自位于不同的表空間中
c)對于同時能夠使用幾個進(jìn)程進(jìn)行查詢或操作的大型表分區(qū)非常有用

85、談?wù)勊饕挠梅霸?
索引是若干數(shù)據(jù)行的關(guān)鍵字的列表,,查詢數(shù)據(jù)時,,通過索引中的關(guān)鍵字可以快速定位到要訪問的記錄所在的數(shù)據(jù)塊,從而大大減少讀取數(shù)據(jù)塊的I/O次數(shù),,因此可以顯著提高性能,。
86、存儲過程的應(yīng)用,,如何既有輸入又有輸出?
Create procedure pro_name
(xxxx in/out type;
yyyy in/out/inout type;
) is/as
zzzz type;
begin
sqlpro;
exception
exceptionxxxxx;
commit;
end;
87,、常發(fā)生的異常有哪些?
常用預(yù)定義例外
CURSOR_ALREADY_OPEN — ORA-06511 SQLCODE = -6511 游標(biāo)已經(jīng)打開
DUP_VAL_ON_INDEX — ORA-00001 SQLCODE = -1 違反唯一性約束
INVALID_CURSOR — ORA-01001 SQLCODE = -1001 非法游標(biāo)操作
INVALID_NUMBER — ORA-01722 SQLCODE = -1722 字符向數(shù)字轉(zhuǎn)換失敗
LOGIN_DENIED — ORA-01017 SQLCODE = -1017
NO_DATA_FOUND — ORA-01403 SQLCODE = +100 沒有找到數(shù)據(jù)
NOT_LOGGED_ON — ORA-01012 SQLCODE = -1012 沒有連接到數(shù)據(jù)庫
PROGRAM_ERROR — ORA-06501 SQLCODE = -6501 內(nèi)部錯誤
STORAGE_ERROR — ORA-06500 SQLCODE = -6500
TIMEOUT_ON_RESOURCE — ORA-00051 SQLCODE = -51
TOO_MANY_ROWS — ORA-01422 SQLCODE = -1422 返回多行
TRANSACTION_BACKED_OUT — ORA-00061 SQLCODE = -61
VALUE_ERROR — ORA-06502 SQLCODE = -6502 數(shù)值轉(zhuǎn)換錯誤
ACCESS_INTO_NULL試圖為NULL對象的屬性賦值
ZERO_DIVIDE — ORA-01476 SQLCODE = -1476 被零除
OTHERS — 其它任何錯誤的處理

88、如何使用異常?
在oracle中有三種類型的異常,。預(yù)定義的異常 非預(yù)定義的異常 用戶定義的異常 第二種非預(yù)定義的異常是與特定的oracle錯誤關(guān)聯(lián),。并且用PRAGM EXCEPTION_INIT(EXCEPTION_NAME,ERROR_NUMBER)關(guān)聯(lián)一起的。但是到底有什么用啊? 例如:declare dup_primary_key exception; pragma exception_init(dup_primary_key,-1); begin insert into itemfile values('i201′,’washer’,'spares’,100,50,250,12,30); exception when dup_primary_key then dbms_output.put_line('重復(fù)項編號-主鍵沖突’); end
第一種的使用方法:exception
when 異常名稱 then
異常處理代碼;
第三種的用法:if 條件 then
raise_application_error(-20000“““`-20999,提示信息),;
end if;
89,、優(yōu)化的策略一般包括:
內(nèi)存優(yōu)化
操作系統(tǒng)優(yōu)化
數(shù)據(jù)存儲的優(yōu)化
網(wǎng)絡(luò)優(yōu)化等方法
具體到不同的數(shù)據(jù)庫涉及到要調(diào)整不同的數(shù)據(jù)庫配置文件、不同的操作系統(tǒng)參數(shù),、網(wǎng)絡(luò)參數(shù)等等, 不同的數(shù)據(jù)庫不同.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多