數(shù)據(jù)庫(kù)常見(jiàn)的面試題大全

1、觸發(fā)器的作用印蔬?

觸發(fā)器是一中特殊的存儲(chǔ)過(guò)程,主要是通過(guò)事件來(lái)觸發(fā)而被執(zhí)行的脱衙。它可以強(qiáng)化約束侥猬,來(lái)維護(hù)數(shù)據(jù)的完整性和一致性例驹,可以跟蹤數(shù)據(jù)庫(kù)內(nèi)的操作從而不允許未經(jīng)許可的更新和變化⊥诉耄可以聯(lián)級(jí)運(yùn)算鹃锈。如,某表上的觸發(fā)器上包含對(duì)另一個(gè)表的數(shù)據(jù)操作瞧预,而該操作又會(huì)導(dǎo)致該表觸發(fā)器被觸發(fā)屎债。

2、什么是存儲(chǔ)過(guò)程垢油?用什么來(lái)調(diào)用盆驹?

存儲(chǔ)過(guò)程是一個(gè)預(yù)編譯的SQL語(yǔ)句,優(yōu)點(diǎn)是允許模塊化的設(shè)計(jì)滩愁,就是說(shuō)只需創(chuàng)建一次躯喇,以后在該程序中就可以調(diào)用多次。如果某次操作需要執(zhí)行多次SQL硝枉,使用存儲(chǔ)過(guò)程比單純SQL語(yǔ)句執(zhí)行要快廉丽。 調(diào)用: 1)可以用一個(gè)命令對(duì)象來(lái)調(diào)用存儲(chǔ)過(guò)程。 2)可以供外部程序調(diào)用妻味,比如:java程序正压。

3、存儲(chǔ)過(guò)程的優(yōu)缺點(diǎn)责球?

優(yōu)點(diǎn): 1)存儲(chǔ)過(guò)程是預(yù)編譯過(guò)的焦履,執(zhí)行效率高。 2)存儲(chǔ)過(guò)程的代碼直接存放于數(shù)據(jù)庫(kù)中棕诵,通過(guò)存儲(chǔ)過(guò)程名直接調(diào)用裁良,減少網(wǎng)絡(luò)通訊。 3)安全性高校套,執(zhí)行存儲(chǔ)過(guò)程需要有一定權(quán)限的用戶(hù)价脾。 4)存儲(chǔ)過(guò)程可以重復(fù)使用,可減少數(shù)據(jù)庫(kù)開(kāi)發(fā)人員的工作量笛匙。 缺點(diǎn):移植性差

4侨把、存儲(chǔ)過(guò)程與函數(shù)的區(qū)別

存儲(chǔ)過(guò)程
1、用于在數(shù)據(jù)庫(kù)中完成特定的操作或者任務(wù)(如插入妹孙、刪除等)
2秋柄、程序頭部聲明用procedure
3、程序頭部聲明時(shí)不需描述返回類(lèi)型可以使用in/out/in out 三種模式的參數(shù)
4蠢正、可作為一個(gè)獨(dú)立的PL/SQL語(yǔ)句來(lái)執(zhí)行
5骇笔、可以通過(guò)out/in out 返回零個(gè)或多個(gè)值
6、SQL語(yǔ)句(DML 或SELECT)中不可調(diào)用存儲(chǔ)過(guò)程

函數(shù)
1、用于特定的數(shù)據(jù)(如選擇)
2笨触、程序頭部聲明用function
3懦傍、程序頭部聲明時(shí)要描述返回類(lèi)型,而且PL/SQL塊中至少要包括一個(gè)有效的return語(yǔ)句
4芦劣、可以使用in/out/in out 三種模式的參數(shù)
5粗俱、不能獨(dú)立執(zhí)行,必須作為表達(dá)式的一部分調(diào)用
6虚吟、通過(guò)return語(yǔ)句返回一個(gè)值寸认,且改值要與聲明部分一致,也可以是通過(guò)out類(lèi)型的參數(shù)帶出的變量
7串慰、SQL語(yǔ)句(DML 或SELECT)中可以調(diào)用函數(shù)

5偏塞、索引的作用?和它的優(yōu)點(diǎn)缺點(diǎn)是什么模庐?

索引就一種特殊的查詢(xún)表烛愧,數(shù)據(jù)庫(kù)的搜索可以利用它加速對(duì)數(shù)據(jù)的檢索油宜。它很類(lèi)似與現(xiàn)實(shí)生活中書(shū)的目錄掂碱,不需要查詢(xún)整本書(shū)內(nèi)容就可以找到想要的數(shù)據(jù)。索引可以是唯一的慎冤,創(chuàng)建索引允許指定單個(gè)列或者是多個(gè)列疼燥。缺點(diǎn)是它減慢了數(shù)據(jù)錄入的速度,同時(shí)也增加了數(shù)據(jù)庫(kù)的尺寸大小蚁堤。

6醉者、什么樣的字段適合建索引

唯一、不為空披诗、經(jīng)常被查詢(xún)的字段

7撬即、索引類(lèi)型有哪些?

邏輯上:
Single column 單行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based 函數(shù)索引
Domain 域索引 物理上:
Partitioned 分區(qū)索引
NonPartitioned 非分區(qū)索引
B-tree :
Normal 正常型B樹(shù)
Rever Key 反轉(zhuǎn)型B樹(shù) Bitmap 位圖索引

8呈队、什么是事務(wù)剥槐?什么是鎖?

事務(wù)就是被綁定在一起作為一個(gè)邏輯工作單元的SQL語(yǔ)句分組宪摧,如果任何一個(gè)語(yǔ)句操作失敗那么整個(gè)操作就被失敗粒竖,以后操作就會(huì)回滾到操作前狀態(tài),或者是上有個(gè)節(jié)點(diǎn)几于。為了確保要么執(zhí)行蕊苗,要么不執(zhí)行,就可以使用事務(wù)沿彭。要將有組語(yǔ)句作為事務(wù)考慮朽砰,就需要通過(guò)ACID測(cè)試,即原子性,一致性瞧柔,隔離性和持久性熔掺。 鎖:在所以的DBMS中,鎖是實(shí)現(xiàn)事務(wù)的關(guān)鍵非剃,鎖可以保證事務(wù)的完整性和并發(fā)性置逻。與現(xiàn)實(shí)生活中鎖一樣,它可以使某些數(shù)據(jù)的擁有者备绽,在某段時(shí)間內(nèi)不能使用某些數(shù)據(jù)或數(shù)據(jù)結(jié)構(gòu)券坞。當(dāng)然鎖還分級(jí)別的。

9肺素、什么叫視圖恨锚?游標(biāo)是什么?

視圖:是一種虛擬的表倍靡,具有和物理表相同的功能猴伶。可以對(duì)視圖進(jìn)行增塌西,改他挎,查,操作捡需,試圖通常是有一個(gè)表或者多個(gè)表的行或列的子集办桨。對(duì)視圖的修改會(huì)影響基本表。它使得我們獲取數(shù)據(jù)更容易站辉,相比多表查詢(xún)呢撞。 游標(biāo):是對(duì)查詢(xún)出來(lái)的結(jié)果集作為一個(gè)單元來(lái)有效的處理。游標(biāo)可以定在該單元中的特定行饰剥,從結(jié)果集的當(dāng)前行檢索一行或多行殊霞。可以對(duì)結(jié)果集當(dāng)前行做修改汰蓉。一般不使用游標(biāo)绷蹲,但是需要逐條處理數(shù)據(jù)的時(shí)候,游標(biāo)顯得十分重要古沥。

10瘸右、視圖的優(yōu)缺點(diǎn)

優(yōu)點(diǎn): 1)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),因?yàn)橐晥D可以有選擇性的選取數(shù)據(jù)庫(kù)里的一部分岩齿。 2 )用戶(hù)通過(guò)簡(jiǎn)單的查詢(xún)可以從復(fù)雜查詢(xún)中得到結(jié)果太颤。 3 )維護(hù)數(shù)據(jù)的獨(dú)立性,試圖可從多個(gè)表檢索數(shù)據(jù)盹沈。 4 )對(duì)于相同的數(shù)據(jù)可產(chǎn)生不同的視圖龄章。 缺點(diǎn): 性能:查詢(xún)視圖時(shí)吃谣,必須把視圖的查詢(xún)轉(zhuǎn)化成對(duì)基本表的查詢(xún),如果這個(gè)視圖是由一個(gè)復(fù)雜的多表查詢(xún)所定義做裙,那么岗憋,那么就無(wú)法更改數(shù)據(jù)

11、列舉幾種表連接方式,有什么區(qū)別锚贱?

內(nèi)連接仔戈、自連接、外連接(左拧廊、右监徘、全)、交叉連接 內(nèi)連接:只有兩個(gè)元素表相匹配的才能在結(jié)果集中顯示吧碾。 外連接: 左外連接:左邊為驅(qū)動(dòng)表凰盔,驅(qū)動(dòng)表的數(shù)據(jù)全部顯示,匹配表的不匹配的不會(huì)顯示倦春。 右外連接:右邊為驅(qū)動(dòng)表户敬,驅(qū)動(dòng)表的數(shù)據(jù)全部顯示,匹配表的不匹配的不會(huì)顯示睁本。 全外連接:連接的表中不匹配的數(shù)據(jù)全部會(huì)顯示出來(lái)尿庐。 交叉連接: 笛卡爾效應(yīng),顯示的結(jié)果是鏈接表數(shù)的乘積添履。

12屁倔、主鍵和外鍵的區(qū)別?

主鍵在本表中是唯一的暮胧、不可唯空的,外鍵可以重復(fù)可以唯空问麸;外鍵和另一張表的主鍵關(guān)聯(lián)往衷,不能創(chuàng)建對(duì)應(yīng)表中不存在的外鍵。

13严卖、在數(shù)據(jù)庫(kù)中查詢(xún)語(yǔ)句速度很慢席舍,如何優(yōu)化?

1.建索引 2.減少表之間的關(guān)聯(lián) 3.優(yōu)化sql哮笆,盡量讓sql很快定位數(shù)據(jù)来颤,不要讓sql做全表查詢(xún),應(yīng)該走索引,把數(shù)據(jù) 量大的表排在前面 4.簡(jiǎn)化查詢(xún)字段稠肘,沒(méi)用的字段不要福铅,已經(jīng)對(duì)返回結(jié)果的控制,盡量返回少量數(shù)據(jù) 5.盡量用PreparedStatement來(lái)查詢(xún)项阴,不要用Statement

14滑黔、數(shù)據(jù)庫(kù)三范式是什么?

第一范式:列不可再分 第二范式:行可以唯一區(qū)分,主鍵約束 第三范式:表的非主屬性不能依賴(lài)與其他表的非主屬性 外鍵約束 且三大范式是一級(jí)一級(jí)依賴(lài)的,第二范式建立在第一范式上略荡,第三范式建立第一第二范式上

15庵佣、union和union all有什么不同?

UNION在進(jìn)行表鏈接后會(huì)篩選掉重復(fù)的記錄,所以在表鏈接后會(huì)對(duì)所產(chǎn)生的結(jié)果集進(jìn)行排序運(yùn)算汛兜,刪除重復(fù)的記錄再返回結(jié)果巴粪。實(shí)際大部分應(yīng)用中是不會(huì)產(chǎn)生重復(fù)的記錄,最常見(jiàn)的是過(guò)程表與歷史表UNION粥谬。 UNION ALL只是簡(jiǎn)單的將兩個(gè)結(jié)果合并后就返回验毡。這樣,如果返回的兩個(gè)結(jié)果集中有重復(fù)的數(shù)據(jù)帝嗡,那么返回的結(jié)果集就會(huì)包含重復(fù)的數(shù)據(jù)了晶通。 從效率上說(shuō),UNION ALL 要比UNION快很多哟玷,所以狮辽,如果可以確認(rèn)合并的兩個(gè)結(jié)果集中不包含重復(fù)的數(shù)據(jù)的話(huà),那么就使用UNION ALL巢寡。

16喉脖、Varchar2和varchar有什么區(qū)別?

Char的長(zhǎng)度是固定的抑月,而varchar2的長(zhǎng)度是可以變化的树叽,比如,存儲(chǔ)字符串“abc”對(duì)于char(20)谦絮,表示你存儲(chǔ)的字符將占20個(gè)字節(jié)题诵,包含17個(gè)空,而同樣的varchar2(20)只占了3個(gè)字節(jié)层皱,20只是最大值性锭,當(dāng)你存儲(chǔ)的字符小于20時(shí),按實(shí)際長(zhǎng)度存儲(chǔ)叫胖。 char的效率要被varchar2的效率高草冈。 目前varchar是varchar2的同義詞,工業(yè)標(biāo)準(zhǔn)的varchar類(lèi)型可以存儲(chǔ)空字符串瓮增,但是oracle不能這樣做怎棱,盡管它保留以后這樣做的權(quán)利。Oracle自己開(kāi)發(fā)了一個(gè)數(shù)據(jù)類(lèi)型varchar2,這個(gè)類(lèi)型不是一個(gè)標(biāo)準(zhǔn)的varchar绷跑,他將在數(shù)據(jù)庫(kù)中varchar列可以存儲(chǔ)空字符串的特性改為存儲(chǔ)null值拳恋,如果你想有向后兼容的能力,oracle建議使用varchar2而不是varchar

17你踩、Oracle和Mysql的區(qū)別诅岩?

1)庫(kù)函數(shù)不同讳苦。 2)Oracle是用表空間來(lái)管理的,Mysql不是吩谦。 3)顯示當(dāng)前所有的表鸳谜、用戶(hù)、改變連接用戶(hù)式廷、顯示當(dāng)前連接用戶(hù)咐扭、執(zhí)行外部腳本的語(yǔ)句的不同。 4)分頁(yè)查詢(xún)時(shí)候時(shí)候滑废,mysql用limit oracle用rownum

mysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15
//為了檢索從某一個(gè)偏移量到記錄集的結(jié)束所有的記錄行蝗肪,可以指定第二個(gè)參數(shù)為 -1: mysql> SELECT * FROM table LIMIT 95,-1; // 檢索記錄行 96-last.
//如果只給定一個(gè)參數(shù),它表示返回最大的記錄行數(shù)目: mysql> SELECT * FROM table LIMIT 5; //檢索前 5 個(gè)記錄行
//換句話(huà)說(shuō)蠕趁,LIMIT n 等價(jià)于 LIMIT 0,n薛闪。 5)sql的語(yǔ)法的不同。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俺陋,一起剝皮案震驚了整個(gè)濱河市豁延,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腊状,老刑警劉巖诱咏,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異缴挖,居然都是意外死亡袋狞,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)映屋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)苟鸯,“玉大人,你說(shuō)我怎么就攤上這事秧荆【蟊校” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵乙濒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我卵蛉,道長(zhǎng)颁股,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任傻丝,我火速辦了婚禮甘有,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘葡缰。我一直安慰自己亏掀,他們只是感情好忱反,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著滤愕,像睡著了一般温算。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上间影,一...
    開(kāi)封第一講書(shū)人閱讀 52,246評(píng)論 1 308
  • 那天注竿,我揣著相機(jī)與錄音,去河邊找鬼魂贬。 笑死巩割,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的付燥。 我是一名探鬼主播宣谈,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼键科!你這毒婦竟也來(lái)了闻丑?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤萝嘁,失蹤者是張志新(化名)和其女友劉穎梆掸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體牙言,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酸钦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了咱枉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卑硫。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蚕断,靈堂內(nèi)的尸體忽然破棺而出欢伏,到底是詐尸還是另有隱情,我是刑警寧澤亿乳,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布硝拧,位于F島的核電站,受9級(jí)特大地震影響葛假,放射性物質(zhì)發(fā)生泄漏障陶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一聊训、第九天 我趴在偏房一處隱蔽的房頂上張望抱究。 院中可真熱鬧,春花似錦带斑、人聲如沸鼓寺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)妈候。三九已至敢靡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間州丹,已是汗流浹背醋安。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留墓毒,地道東北人吓揪。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像所计,于是被迫代替她去往敵國(guó)和親柠辞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • ORACLE自學(xué)教程 --create tabletestone ( id number, --序號(hào)usernam...
    落葉寂聊閱讀 1,086評(píng)論 0 0
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)主胧,會(huì)觸發(fā)此異常叭首。 O...
    我想起個(gè)好名字閱讀 5,334評(píng)論 0 9
  • 1、觸發(fā)器的作用踪栋?索引可以是唯一的焙格,創(chuàng)建索引允許指定單個(gè)列或者是多個(gè)列。缺點(diǎn)是它減慢了數(shù)據(jù)錄入的速度夷都,同時(shí)也增加了...
    小宇java閱讀 1,237評(píng)論 0 1
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,813評(píng)論 0 11
  • [咖啡]在品頤居的日子 身邊事記錄 1.今日伊奈店休息空間的桌子眷唉,根據(jù)昨天幾位“高手”的指點(diǎn),換個(gè)方向...
    觀心客閱讀 115評(píng)論 0 0