版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)基礎(chǔ)(面試常見(jiàn)題)一、數(shù)據(jù)庫(kù)基礎(chǔ)1.數(shù)據(jù)抽象:物理抽象、概念抽象、視圖級(jí)抽象,內(nèi)模式、模式、外模式2.SQL語(yǔ)言涉及數(shù)據(jù)定義、數(shù)據(jù)操縱(Dat(yī)aManipulat(yī)ion),數(shù)據(jù)控制(DataControl)數(shù)據(jù)定義:Creat(yī)eTable,AlterTable,DropTable,Craete/DropIndex等數(shù)據(jù)操縱:Select,insert,updat(yī)e,delete,數(shù)據(jù)控制:grant,revoke3.SQL常用命令:CREATETABLEStudent(IDNUMBERPRIMARYKEY,NAMEVARCHAR2(50)NOTNULL);//建表CREATEVIEWview_nameASSelect*FROMTable_name;//建視圖CreateUNIQUEINDEXindex_nameONTableName(col_name);//建索引INSERTINTO(shè)tablename{column1,column2,…}values(exp1,exp2,…);//插入INSERTINTOViewname{column1,column2,…}values(exp1,exp2,…);//插入視圖實(shí)際影響表UPDATEtablenameSETname=’zang3’condition;//更新數(shù)據(jù)DELETEFROMTablenameWHEREcondition;//刪除GRANT(Select,delete,…)ON(對(duì)象)TOUSER_NAME[WITHGRANTO(shè)PTION];//授權(quán)REVOKE(權(quán)限表)ON(對(duì)象)FROMUSER_NAME[WITHREVOKEOPTION]//撤權(quán)列出工作人員及其領(lǐng)導(dǎo)的名字:SelectE.NAME,S.NAMEFROMEMPLOYEEESWHEREE.SUPERName=S.Name4.視圖:5.完整性約束:實(shí)體完整性、參照完整性、用戶定義完整性6.第三范式:1NF:每個(gè)屬性是不可分的。2NF:若關(guān)系R是1NF,且每個(gè)非主屬性都完全函數(shù)依賴(lài)于R的鍵。例SLC(SID#,CourceID#,SNAME,Grade),則不是2NF;3NF:若R是2NF,且它的任何非鍵屬性都不傳遞依賴(lài)于任何候選鍵。7.ER(實(shí)體/聯(lián)系)模型8.索引作用9.事務(wù):是一系列的數(shù)據(jù)庫(kù)操作,是數(shù)據(jù)庫(kù)應(yīng)用的基本邏輯單位。事務(wù)性質(zhì):原子性、?原子性。即不可分割性,事務(wù)要么所有被執(zhí)行,要么就所有不被執(zhí)行。?一致性或可串性。事務(wù)的執(zhí)行使得數(shù)據(jù)庫(kù)從一種對(duì)的狀態(tài)轉(zhuǎn)換成另一種對(duì)的狀態(tài)?隔離性。在事務(wù)對(duì)的提交之前,不允許把該事務(wù)對(duì)數(shù)據(jù)的任何改變提供應(yīng)任何其他事務(wù),?持久性。事務(wù)對(duì)的提交后,其結(jié)果將永久保存在數(shù)據(jù)庫(kù)中,即使在事務(wù)提交后有了其他故障,事務(wù)的解決結(jié)果也會(huì)得到保存。10.鎖:共享鎖、互斥鎖兩段鎖協(xié)議:階段1:加鎖階段階段2:解鎖階段11.死鎖及解決:事務(wù)循環(huán)等待數(shù)據(jù)鎖,則會(huì)死鎖。死鎖解決:防止死鎖協(xié)議,死鎖恢復(fù)機(jī)制12.存儲(chǔ)過(guò)程:存儲(chǔ)過(guò)程就是編譯好了的一些sql語(yǔ)句。1.存儲(chǔ)過(guò)程由于SQL語(yǔ)句已經(jīng)預(yù)編繹過(guò)了,因此運(yùn)營(yíng)的速度比較快。2.可保證數(shù)據(jù)的安全性和完整性。通過(guò)存儲(chǔ)過(guò)程可以使沒(méi)有權(quán)限的用戶在控制之下間接地存取數(shù)據(jù)庫(kù),從而保證數(shù)據(jù)的安全。通過(guò)存儲(chǔ)過(guò)程可以使相關(guān)的動(dòng)作在一起發(fā)生,從而可以維護(hù)數(shù)據(jù)庫(kù)的完整性。3.可以減少網(wǎng)絡(luò)的通信量。存儲(chǔ)過(guò)程重要是在服務(wù)器上運(yùn)營(yíng),減少對(duì)客戶機(jī)的壓力。4:存儲(chǔ)過(guò)程可以接受參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)結(jié)果集以及返回值??梢韵虺绦蚍祷劐e(cuò)誤因素5:存儲(chǔ)過(guò)程可以包含程序流、邏輯以及對(duì)數(shù)據(jù)庫(kù)的查詢(xún)。同時(shí)可以實(shí)體封裝和隱藏了數(shù)據(jù)邏輯。
13.觸發(fā)器:當(dāng)滿足觸發(fā)器條件,則系統(tǒng)自動(dòng)執(zhí)行觸發(fā)器的觸發(fā)體。觸發(fā)時(shí)間:有before,after.觸發(fā)事件:有insert,update,delete三種。觸發(fā)類(lèi)型:有行觸發(fā)、語(yǔ)句觸發(fā)14.內(nèi)聯(lián)接,外聯(lián)接區(qū)別?內(nèi)連接是保證兩個(gè)表中所有的行都要滿足連接條件,而外連接則不然。在外連接中,某些不滿條件的列也會(huì)顯示出來(lái),也就是說(shuō),只限制其中一個(gè)表的行,而不限制另一個(gè)表的行。分左連接、右連接、全連接三種
SQL試題2
一、教師號(hào)星期號(hào)是否有課12有13有21有32有`12有寫(xiě)一條sql語(yǔ)句讓你變?yōu)檫@樣的表教師號(hào)星期一星期二星期三1212131各星期下的數(shù)字表達(dá):相應(yīng)的教師在星期幾已經(jīng)排的課數(shù)
二、書(shū)表(books)book_id,book_name,creatdat(yī)e,Lastmodifydate,decription001,三個(gè)人的世界,2023-02-02,2023-07-07,NULL作者表(authors)A_id,A_name01,王紛02,李尚03,泰和部門(mén)表(depts)d_id,d_name001,編輯一部002,編輯二部003,編輯三部書(shū)和作者關(guān)聯(lián)表(bookmap)book_id,A_id001,01001,02001,03部門(mén)和作者關(guān)聯(lián)表(depmap)d_id,a_id001,01002,02003,03找出每個(gè)部門(mén)的所寫(xiě)的總書(shū)兩,比如,一本書(shū)有3個(gè)人寫(xiě),假如三個(gè)人在不同的部門(mén),則每個(gè)部門(mén)的總數(shù)量就是1.最后結(jié)果如下:部門(mén),書(shū)量編輯一部,1編輯二部,1編輯三部,1三、兩個(gè)表情況表名:wu_planID
plan
model
corp_code
plannum
prixis1
00001
exx22
nokia
2023
02
00002
lc001
sony
3000
0表名:wu_bomID
plan
pact
amount
1
00001
aa1
3002
00001
aa2
2003
00002
bb1
5004
00002
bb2
8005
00002
bb3
400查詢(xún)這兩個(gè)表中plan唯一,每一個(gè)plan中,amount最少的,plannum大于prixis的記錄結(jié)果是:ID
plan
model
corp_code
plannum
prixis
pact
amount1
00001
exx22
nokia
2023
0
a2
2002
00002
lc001
sony
3000
0
bb3
400四、表1結(jié)構(gòu)如下:部門(mén)條碼品名銷(xiāo)售額銷(xiāo)售數(shù)量銷(xiāo)售日期表2結(jié)構(gòu)如下課別部門(mén)規(guī)定:先按部門(mén)排序,再按銷(xiāo)售額、銷(xiāo)售數(shù)量排序檢索出某個(gè)課別每個(gè)部門(mén)一個(gè)時(shí)期內(nèi)的商品銷(xiāo)售額的前三名,如查詢(xún)01課別2023年4月15日到2023年4月22日每個(gè)部門(mén)一個(gè)周內(nèi)的商品銷(xiāo)售額合計(jì)的前三名
SQL面試題目匯總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í)行要快。可以用一個(gè)命令對(duì)象來(lái)調(diào)用存儲(chǔ)過(guò)程。3。索引的作用?和它的優(yōu)點(diǎn)缺陷是什么?答:索引就一種特殊的查詢(xún)表,數(shù)據(jù)庫(kù)的搜索引擎可以運(yùn)用它加速對(duì)數(shù)據(jù)的檢索。它很類(lèi)似與現(xiàn)實(shí)生活中書(shū)的目錄,不需要查詢(xún)整本書(shū)內(nèi)容就可以找到想要的數(shù)據(jù)。索引可以是唯一的,創(chuàng)建索引允許指定單個(gè)列或者是多個(gè)列。缺陷是它減慢了數(shù)據(jù)錄入的速度,同時(shí)也增長(zhǎng)了數(shù)據(jù)庫(kù)的尺寸大小。3。什么是內(nèi)存泄漏?答:一般我們所說(shuō)的內(nèi)存泄漏指的是堆內(nèi)存的泄漏。堆內(nèi)存是程序從堆中為其分派的,大小任意的,使用完后要顯示釋放內(nèi)存。當(dāng)應(yīng)用程序用關(guān)鍵字new等創(chuàng)建對(duì)象時(shí),就從堆中為它分派一塊內(nèi)存,使用完后程序調(diào)用free(cuò)或者delete釋放該內(nèi)存,否則就說(shuō)該內(nèi)存就不能被使用,我們就說(shuō)該內(nèi)存被泄漏了。4。維護(hù)數(shù)據(jù)庫(kù)的完整性和一致性,你喜歡用觸發(fā)器還是自寫(xiě)業(yè)務(wù)邏輯?為什么?答:我是這樣做的,盡也許使用約束,如check,主鍵,外鍵,非空字段等來(lái)約束,這樣做效率最高,也最方便。另一方面是使用觸發(fā)器,這種方法可以保證,無(wú)論什么業(yè)務(wù)系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)都可以保證數(shù)據(jù)的完整新和一致性。最后考慮的是自寫(xiě)業(yè)務(wù)邏輯,但這樣做麻煩,編程復(fù)雜,效率低下。5。什么是事務(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í)別的。6。什么叫視圖?游標(biāo)是什么?答:視圖是一種虛擬的表,具有和物理表相同的功能。可以對(duì)視圖進(jìn)行增,改,查,操作,試圖通常是有一個(gè)表或者多個(gè)表的行或列的子集。對(duì)視圖的修改不影響基本表。它使得我們獲取數(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)顯得十分重要。7。為管理業(yè)務(wù)培訓(xùn)信息,建立3個(gè)表:
S(S#,SN,SD,SA)S#,SN,SD,SA分別代表學(xué)號(hào),學(xué)員姓名,所屬單位,學(xué)員年齡
C(C#,CN)C#,CN分別代表課程編號(hào),課程名稱(chēng)
SC(S#,C#,G)S#,C#,G分別代表學(xué)號(hào),所選的課程編號(hào),學(xué)習(xí)成績(jī)
(1)使用標(biāo)準(zhǔn)SQL嵌套語(yǔ)句查詢(xún)選修課程名稱(chēng)為’稅收基礎(chǔ)’的學(xué)員學(xué)號(hào)和姓名?
答案:selects#,snfromswhereS#in(selectS#fromc,scwherec.c#=sc.c#andcn=’稅收基礎(chǔ)’)
(2)使用標(biāo)準(zhǔn)SQL嵌套語(yǔ)句查詢(xún)選修課程編號(hào)為’C2’的學(xué)員姓名和所屬單位?答:selectsn,sdfroms,scwheres.s#=sc.s#andsc.c#=’c2’
(3)使用標(biāo)準(zhǔn)SQL嵌套語(yǔ)句查詢(xún)不選修課程編號(hào)為’C5’的學(xué)員姓名和所屬單位?答:selectsn,sdfromswheres#notin(selects#fromscwherec#=’c5’)
(4)查詢(xún)選修了課程的學(xué)員人數(shù)答:select學(xué)員人數(shù)=count(distincts#)fromsc
(5)查詢(xún)選修課程超過(guò)5門(mén)的學(xué)員學(xué)號(hào)和所屬單位?答:selectsn,sdfromswheres#in(selects#fromscgroupbys#havingcount(distinctc#)>5)目前在職場(chǎng)中很難找到非常合格的數(shù)據(jù)庫(kù)開(kāi)發(fā)人員。有人說(shuō):“SQL開(kāi)發(fā)是一門(mén)語(yǔ)言,它很容易學(xué),但是很難掌握?!比A為在面試過(guò)程中多次碰到兩道SQL查詢(xún)的題目,一是查詢(xún)A(ID,Name)表中第31至40條記錄,ID作為主鍵也許是不是連續(xù)增長(zhǎng)的列,完整的查詢(xún)語(yǔ)句如下:
selecttop10*fromAwhereID>(selectmax(ID)from(selecttop30IDfromAorderbyA)T)orderbyA
此外一道題目的規(guī)定是查詢(xún)表A中存在ID反復(fù)三次以上的記錄,完整的查詢(xún)語(yǔ)句如下:select*from(selectcount(ID)ascountfromtablegroupbyID)TwhereT.count>3
以上兩道題目非常有代表意義,望各位把自己碰到的有代表的查詢(xún)都貼上來(lái)。createtabletesttable1(idintIDENTITY,departmentvarchar(12))select*fromtesttable1insertintotesttable1values('設(shè)計(jì)')insertintotesttable1values('市場(chǎng)')insertintotesttable1values('售后')/*結(jié)果iddepartment1
設(shè)計(jì)2
市場(chǎng)3
售后*/creat(yī)etabletesttable2(idintIDENTITY,dptIDint,namevarchar(12))insertintotesttable2values(1,'張三')insertintotesttable2values(1,'李四')insertintotesttable2values(2,'王五')insertintotesttable2values(3,'彭六')insertintotesttable2values(4,'陳七')/*用一條SQL語(yǔ)句,怎么顯示如下結(jié)果iddptIDdepartmentname1
1
設(shè)計(jì)
張三2
1
設(shè)計(jì)
李四3
2
市場(chǎng)
王五4
3
售后
彭六5
4
黑人
陳七*/答案是:SELECTtesttable2.*,ISNULL(department,'黑人')FROMtesttable1rightjointesttable2ontesttable2.dptID=testtable1.ID在面試應(yīng)聘的SQLServer數(shù)據(jù)庫(kù)開(kāi)發(fā)人員時(shí),我運(yùn)用了一套標(biāo)準(zhǔn)的基準(zhǔn)技術(shù)問(wèn)題。下面這些問(wèn)題是我覺(jué)得可以真正有助于淘汰不合格應(yīng)聘者的問(wèn)題。它們按照從易到難的順序排列。當(dāng)你問(wèn)到關(guān)于主鍵和外鍵的問(wèn)題時(shí),后面的問(wèn)題都十分有難度,由于答案也許會(huì)更難解釋和說(shuō)明,特別是在面試的情形下。你能向我簡(jiǎn)要敘述一下SQLServer2023中使用的一些數(shù)據(jù)庫(kù)對(duì)象嗎?你希望聽(tīng)到的答案涉及這樣一些對(duì)象:表格、視圖、用戶定義的函數(shù),以及存儲(chǔ)過(guò)程;假如他們還可以提到像觸發(fā)器這樣的對(duì)象就更好了。假如應(yīng)聘者不能回答這個(gè)基本的問(wèn)題,那么這不是一個(gè)好兆頭。NULL是什么意思?NULL(空)這個(gè)值是數(shù)據(jù)庫(kù)世界里一個(gè)非常難纏的東西,所以有不少應(yīng)聘者會(huì)在這個(gè)問(wèn)題上跌跟頭您也不要覺(jué)得意外。NULL這個(gè)值表達(dá)UNKNOWN(未知):它不表達(dá)“”(空字符串)。假設(shè)您的SQLServer數(shù)據(jù)庫(kù)里有ANSI_NULLS,當(dāng)然在默認(rèn)情況下會(huì)有,對(duì)NULL這個(gè)值的任何比較都會(huì)生產(chǎn)一個(gè)NULL值。您不能把任何值與一個(gè)UNKNOWN值進(jìn)行比較,并在邏輯上希望獲得一個(gè)答案。您必須使用ISNULL操作符。什么是索引?SQLServer2023里有什么類(lèi)型的索引?任何有經(jīng)驗(yàn)的數(shù)據(jù)庫(kù)開(kāi)發(fā)人員都應(yīng)當(dāng)可以很容易地回答這個(gè)問(wèn)題。一些經(jīng)驗(yàn)不太多的開(kāi)發(fā)人員可以回答這個(gè)問(wèn)題,但是有些地方會(huì)說(shuō)不清楚。簡(jiǎn)樸地說(shuō),索引是一個(gè)數(shù)據(jù)結(jié)構(gòu),用來(lái)快速訪問(wèn)數(shù)據(jù)庫(kù)表格或者視圖里的數(shù)據(jù)。在SQLServer里,它們有兩種形式:聚集索引和非聚集索引。聚集索引在索引的葉級(jí)保存數(shù)據(jù)。這意味著不管聚集索引里有表格的哪個(gè)(或哪些)字段,這些字段都會(huì)按順序被保存在表格。由于存在這種排序,所以每個(gè)表格只會(huì)有一個(gè)聚集索引。非聚集索引在索引的葉級(jí)有一個(gè)行標(biāo)記符。這個(gè)行標(biāo)記符是一個(gè)指向磁盤(pán)上數(shù)據(jù)的指針。它允許每個(gè)表格有多個(gè)非聚集索引。什么是主鍵?什么是外鍵?主鍵是表格里的(一個(gè)或多個(gè))字段,只用來(lái)定義表格里的行;主鍵里的值總是唯一的。外鍵是一個(gè)用來(lái)建立兩個(gè)表格之間關(guān)系的約束。這種關(guān)系一般都涉及一個(gè)表格里的主鍵字段與此外一個(gè)表格(盡管也許是同一個(gè)表格)里的一系列相連的字段。那么這些相連的字段就是外鍵。什么是觸發(fā)器?SQLServer2023有什么不同類(lèi)型的觸發(fā)器?讓未來(lái)的數(shù)據(jù)庫(kù)開(kāi)發(fā)人員知道可用的觸發(fā)器類(lèi)型以及如何實(shí)現(xiàn)它們是非常有益的。觸發(fā)器是一種專(zhuān)用類(lèi)型的存儲(chǔ)過(guò)程,它被捆綁到SQLServer2023的表格或者視圖上。在SQLServer2023里,有INSTEAD-OF和AFTER兩種觸發(fā)器。INSTEAD-OF觸發(fā)器是替代數(shù)據(jù)操控語(yǔ)言(DataManipulationLanguage,DML)語(yǔ)句對(duì)表格執(zhí)行語(yǔ)句的存儲(chǔ)過(guò)程。例如,假如我有一個(gè)用于TableA的INSTEAD-OF-UPDATE觸發(fā)器,同時(shí)對(duì)這個(gè)表格執(zhí)行一個(gè)更新語(yǔ)句,那么INSTEAD-OF-UPDATE觸發(fā)器里的代碼會(huì)執(zhí)行,而不是我執(zhí)行的更新語(yǔ)句則不會(huì)執(zhí)行操作。AFTER觸發(fā)器要在DML語(yǔ)句在數(shù)據(jù)庫(kù)里使用之后才執(zhí)行。這些類(lèi)型的觸發(fā)器對(duì)于監(jiān)視發(fā)生在數(shù)據(jù)庫(kù)表格里的數(shù)據(jù)變化十分好用。您如何確一個(gè)帶有名為Fld1字段的TableB表格里只具有Fld1字段里的那些值,而這些值同時(shí)在名為T(mén)ableA的表格的Fld1字段里?這個(gè)與關(guān)系相關(guān)的問(wèn)題有兩個(gè)也許的答案。第一個(gè)答案(并且是您希望聽(tīng)到的答案)是使用外鍵限制。外鍵限制用來(lái)維護(hù)引用的完整性。它被用來(lái)保證表格里的字段只保存有已經(jīng)在不同的(或者相同的)表格里的另一個(gè)字段里定義了的值。這個(gè)字段就是候選鍵(通常是此外一個(gè)表格的主鍵)。此外一種答案是觸發(fā)器。觸發(fā)器可以被用來(lái)保證以此外一種方式實(shí)現(xiàn)與限制相同的作用,但是它非常難設(shè)立與維護(hù),并且性能一般都很糟糕。由于這個(gè)因素,微軟建議開(kāi)發(fā)人員使用外鍵限制而不是觸發(fā)器來(lái)維護(hù)引用的完整性。對(duì)一個(gè)投入使用的在線事務(wù)解決表格有過(guò)多索引需要有什么樣的性能考慮?你正在尋找進(jìn)行與數(shù)據(jù)操控有關(guān)的應(yīng)聘人員。對(duì)一個(gè)表格的索引越多,數(shù)據(jù)庫(kù)引擎用來(lái)更新、插入或者刪除數(shù)據(jù)所需要的時(shí)間就越多,由于在數(shù)據(jù)操控發(fā)生的時(shí)候索引也必須要維護(hù)。你可以用什么來(lái)保證表格里的字段只接受特定范圍里的值?這個(gè)問(wèn)題可以用多種方式來(lái)回答,但是只有一個(gè)答案是“好”答案。您希望聽(tīng)到的回答是Check限制,它在數(shù)據(jù)庫(kù)表格里被定義,用來(lái)限制輸入該列的值。觸發(fā)器也可以被用來(lái)限制數(shù)據(jù)庫(kù)表格里的字段可以接受的值,但是這種辦法規(guī)定觸發(fā)器在表格里被定義,這也許會(huì)在某些情況下影響到性能。因此,微軟建議使用Check限制而不是其他的方式來(lái)限制域的完整性。假如應(yīng)聘者可以對(duì)的地回答這個(gè)問(wèn)題,那么他的機(jī)會(huì)就非常大了,由于這表白他們具有使用存儲(chǔ)過(guò)程的經(jīng)驗(yàn)。返回參數(shù)總是由存儲(chǔ)過(guò)程返回,它用來(lái)表達(dá)存儲(chǔ)過(guò)程是成功還是失敗。返回參數(shù)總是INT數(shù)據(jù)類(lèi)型。OUTPUT參數(shù)明確規(guī)定由開(kāi)發(fā)人員來(lái)指定,它可以返回其他類(lèi)型的數(shù)據(jù),例如字符型和數(shù)值型的值。(可以用作輸出參數(shù)的數(shù)據(jù)類(lèi)型是有一些限制的。)您可以在一個(gè)存儲(chǔ)過(guò)程里使用多個(gè)OUTPUT參數(shù),而您只可以使用一個(gè)返回參數(shù)。什么是相關(guān)子查詢(xún)?如何使用這些查詢(xún)?經(jīng)驗(yàn)更加豐富的開(kāi)發(fā)人員將可以準(zhǔn)確地描述這種類(lèi)型的查詢(xún)。相關(guān)子查詢(xún)是一種包含子查詢(xún)的特殊類(lèi)型的查詢(xún)。查詢(xún)里包含的子查詢(xún)會(huì)真正請(qǐng)求外部查詢(xún)的值,從而形成一個(gè)類(lèi)似于循環(huán)的狀況。
數(shù)據(jù)庫(kù)面試一:SQLtuning類(lèi)1.
列舉幾種表連接方式Answer:等連接(內(nèi)連接)、非等連接、自連接、外連接(左、右、全)Orhashjoin/mergejoin/nestloop(clusterjoin)/indexjoin??ORACLE8i,9i表連接方法。一般的相等連接:select*froma,bwherea.id=b.id;這個(gè)就屬于內(nèi)連接。對(duì)于外連接:Oracle中可以使用“(+)”來(lái)表達(dá),9i可以使用LEFT/RIGHT/FULLOUTERJOINLEFTOUTERJOIN:左外關(guān)聯(lián)SELECTe.last_name,e.department_id,d.department_nameFROMemployeeseLEFTOUTERJOINdepartmentsdON(e.department_id=d.department_id);等價(jià)于SELECTe.last_name,e.department_id,d.department_nameFROMemployeese,departmentsdWHEREe.department_id=d.department_id(+)結(jié)果為:所有員工及相應(yīng)部門(mén)的記錄,涉及沒(méi)有相應(yīng)部門(mén)編號(hào)department_id的員工記錄。RIGHTOUTERJOIN:右外關(guān)聯(lián)SELECTe.last_name,e.department_id,d.department_nameFROMemployeeseRIGHTO(shè)UTERJOINdepartmentsdON(e.department_id=d.department_id);等價(jià)于SELECTe.last_name,e.department_id,d.department_nameFROMemployeese,departmentsdWHEREe.department_id(+)=d.department_id結(jié)果為:所有員工及相應(yīng)部門(mén)的記錄,涉及沒(méi)有任何員工的部門(mén)記錄。FULLOUTERJOIN:全外關(guān)聯(lián)SELECTe.last_name,e.department_id,d.department_nameFROMemployeeseFULLO(píng)UTERJOINdepartmentsdON(e.department_id=d.department_id);結(jié)果為:所有員工及相應(yīng)部門(mén)的記錄,涉及沒(méi)有相應(yīng)部門(mén)編號(hào)department_id的員工記錄和沒(méi)有任何員工的部門(mén)記錄。ORACLE8i是不直接支持完全外連接的語(yǔ)法,也就是說(shuō)不能在左右兩個(gè)表上同時(shí)加上(+),下面是在ORACLE8i可以參考的完全外連接語(yǔ)法selectt1.id,t2.idfromtable1t1,tablet2wheret1.id=t2.id(+)unionselectt1.id,t2.idfromtable1t1,tablet2wheret1.id(+)=t2.id連接類(lèi)型定義圖示例子
內(nèi)連接只連接匹配的行
selectA.c1,B.c2fromAjoinBonA.c3=B.c3;
左外連接包含左邊表的所有行(不管右邊的表中是否存在與它們匹配的行)以及右邊表中所有匹配的行
selectA.c1,B.c2fromAleftjoinBonA.c3=B.c3;
右外連接包含右邊表的所有行(不管左邊的表中是否存在與它們匹配的行)以及左邊表中所有匹配的行
selectA.c1,B.c2fromArightjoinBonA.c3=B.c3;
全外連接包含左、右兩個(gè)表的所有行,不管在另一邊的表中是否存在與它們匹配的行
selectA.c1,B.c2fromAfulljoinBonA.c3=B.c3;
(theta)連接使用等值以外的條件來(lái)匹配左、右兩個(gè)表中的行
selectA.c1,B.c2fromAjoinBonA.c3!=B.c3;
交叉連接生成笛卡爾積——它不使用任何匹配或者選取條件,而是直接將一個(gè)數(shù)據(jù)源中的每個(gè)行與另一個(gè)數(shù)據(jù)源的每個(gè)行一一匹配selectA.c1,B.c2fromA,B;2.
不借助第三方工具,如何查看sql的執(zhí)行計(jì)劃I)使用ExplainPl(wèi)an,查詢(xún)PLAN_TABLE;
EXPLAIN
PLAN
SETSTATEMENT_ID='QUERY1'
FOR
SELECT*
FROMa
WHEREaa=1;
SELECT
operation,options,object_name,object_type,ID,parent_id
FROMplan_table
WHERESTATEMENT_ID='QUERY1'
ORDERBYID;II)SQLPLUS中的SETTRACE即可看到ExecutionPlanStatistics
SETAUTOTRACEON;3.
如何使用CBO,CBO與RULE的區(qū)別
IF初始化參數(shù)OPTIMIZER_M(jìn)ODE=CHOOSETHEN
--(8IDEFAULT)
IF做過(guò)表分析
THEN優(yōu)化器Optimizer=CBO(COST);
/*高效*/
ELSE
優(yōu)化器Optimizer=RBO(RULE);
/*高效*/
ENDIF;
ENDIF;
區(qū)別:
RBO根據(jù)規(guī)則選擇最佳執(zhí)行途徑來(lái)運(yùn)營(yíng)查詢(xún)。
CBO根據(jù)表記錄找到最低成本的訪問(wèn)數(shù)據(jù)的方法擬定執(zhí)行計(jì)劃。
使用CBO需要注意:
I)
需要經(jīng)常對(duì)表進(jìn)行ANALYZE命令進(jìn)行分析記錄;
II)需要穩(wěn)定執(zhí)行計(jì)劃;
III)需要使用提醒(Hint);
使用RULE需要注意:I)
選擇最有效率的表名順序II)優(yōu)化SQL的寫(xiě)法;在optimizer_mode=choose時(shí),假如表有記錄信息(分區(qū)表外),優(yōu)化器將選擇CBO,否則選RBO。RBO遵循簡(jiǎn)樸的分級(jí)方法學(xué),使用15種級(jí)別要點(diǎn),當(dāng)接受到查詢(xún),優(yōu)化器將評(píng)估使用到的要點(diǎn)數(shù)目,然后選擇最佳級(jí)別(最少的數(shù)量)的執(zhí)行途徑來(lái)運(yùn)營(yíng)查詢(xún)。CBO嘗試找到最低成本的訪問(wèn)數(shù)據(jù)的方法,為了最大的吞吐量或最快的初始響應(yīng)時(shí)間,計(jì)算使用不同的執(zhí)行計(jì)劃的成本,并選擇成本最低的一個(gè),關(guān)于表的數(shù)據(jù)內(nèi)容的記錄被用于擬定執(zhí)行計(jì)劃。4.
如何定位重要(消耗資源多)的SQL使用CPU多的用戶sessionSELECTa.SID,spid,stat(yī)us,SUBSTR(a.program,1,40)prog,a.terminal,a.SQL_TEXT,osuser,VALUE/60/100VALUEFROMv$sessiona,v$processb,v$sesstatcWHEREc.statistic#=12ANDc.SID=a.SIDANDa.paddr=b.addrORDERBYVALUEDESC;selectsql_textfromv$sqlwheredisk_reads>1000or(executions>0andbuffer_gets/executions>30000);5.
如何跟蹤某個(gè)session的SQL運(yùn)用TRACE跟蹤
ALTERSESSIONSETSQLTRACEON;
COLUMNSQLformata200;
SELECT
machine,sql_textSQL
FROMv$sqltexta,v$sessionb
WHEREaddress=sql_address
ANDmachine='&A'
ORDERBYhash_value,piece;execdbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);selectsid,serial#fromv$sessionwheresid=(selectsidfromv$mystatwhererownum=1);execdbms_system.set_ev(&sid,&;serial#,&event_10046,&level_12,'');6.
SQL調(diào)整最關(guān)注的是什么檢查系統(tǒng)的I/O問(wèn)題sar-d能檢查整個(gè)系統(tǒng)的iostat(IOstatistics)查看該SQL的responsetime(dbblockgets/consistentgets/physicalreads/sorts(disk))7.
說(shuō)說(shuō)你對(duì)索引的結(jié)識(shí)(索引的結(jié)構(gòu)、對(duì)dml影響、對(duì)查詢(xún)影響、為什么提高查詢(xún)性能)索引有B-TREE、BIT、CLUSTER等類(lèi)型。ORACLE使用了一個(gè)復(fù)雜的自平衡B-tree(cuò)結(jié)構(gòu);通常來(lái)說(shuō),在表上建立恰當(dāng)?shù)乃饕?查詢(xún)時(shí)會(huì)改善查詢(xún)性能。但在進(jìn)行插入、刪除、修改時(shí),同時(shí)會(huì)進(jìn)行索引的修改,在性能上有一定的影響。有索引且查詢(xún)條件能使用索引時(shí),數(shù)據(jù)庫(kù)會(huì)先度取索引,根據(jù)索引內(nèi)容和查詢(xún)條件,查詢(xún)出ROWID,再根據(jù)ROWID取出需要的數(shù)據(jù)。由于索引內(nèi)容通常比全表內(nèi)容要少很多,因此通過(guò)先讀索引,能減少I(mǎi)/O,提高查詢(xún)性能。b-treeindex/bitmapindex/functionindex/patitionalindex(local/global)索引通常能提高select/update/delete的性能,會(huì)減少insert的速度,8.
使用索引查詢(xún)一定能提高查詢(xún)的性能嗎?為什么通常,通過(guò)索引查詢(xún)數(shù)據(jù)比全表掃描要快.但是我們也必須注意到它的代價(jià).索引需要空間來(lái)存儲(chǔ),也需要定期維護(hù),每當(dāng)有記錄在表中增減或索引列被修改時(shí),索引自身也會(huì)被修改.這意味著每條記錄的INSERT,DELETE,UPDATE將為此多付出4,5次的磁盤(pán)I/O.由于索引需要額外的存儲(chǔ)空間和解決,那些不必要的索引反而會(huì)使查詢(xún)反映時(shí)間變慢.使用索引查詢(xún)不一定能提高查詢(xún)性能,索引范圍查詢(xún)(INDEXRANGESCAN)合用于兩種情況:基于一個(gè)范圍的檢索,一般查詢(xún)返回結(jié)果集小于表中記錄數(shù)的30%宜采用;基于非唯一性索引的檢索索引就是為了提高查詢(xún)性能而存在的,假如在查詢(xún)中索引沒(méi)有提高性能,只能說(shuō)是用錯(cuò)了索引,或者講是場(chǎng)合不同9.
綁定變量是什么?綁定變量有什么優(yōu)缺陷?綁定變量是指在SQL語(yǔ)句中使用變量,改變變量的值來(lái)改變SQL語(yǔ)句的執(zhí)行結(jié)果。優(yōu)點(diǎn):使用綁定變量,可以減少SQL語(yǔ)句的解析,能減少數(shù)據(jù)庫(kù)引擎消耗在SQL語(yǔ)句解析上的資源。提高了編程效率和可靠性。減少訪問(wèn)數(shù)據(jù)庫(kù)的次數(shù),就能事實(shí)上減少ORACLE的工作量。缺陷:經(jīng)常需要使用動(dòng)態(tài)SQL的寫(xiě)法,由于參數(shù)的不同,也許SQL的執(zhí)行效率不同;綁定變量是相對(duì)文本變量來(lái)講的,所謂文本變量是指在SQL直接書(shū)寫(xiě)查詢(xún)條件,這樣的SQL在不同條件下需要反復(fù)解析,綁定變量是指使用變量來(lái)代替直接書(shū)寫(xiě)條件,查詢(xún)bindvalue在運(yùn)營(yíng)時(shí)傳遞,然后綁定執(zhí)行。優(yōu)點(diǎn)是減少硬解析,減少CPU的爭(zhēng)用,節(jié)?。螅瑁幔騟d_pool缺陷是不能使用histogram,sql優(yōu)化比較困難10.
如何穩(wěn)定(固定)執(zhí)行計(jì)劃可以在SQL語(yǔ)句中指定執(zhí)行計(jì)劃。使用HINTS;query_rewrite_enabled=truestar_transformation_enabled=trueoptimizer_features_enable=9.2.0創(chuàng)建并使用storedoutline11.
和排序相關(guān)的內(nèi)存在8i和9i分別如何調(diào)整,臨時(shí)表空間的作用是什么SORT_AREA_SIZE在進(jìn)行排序操作時(shí),假如排序的內(nèi)容太多,內(nèi)存里不能所有放下,則需要進(jìn)行外部排序,此時(shí)需要運(yùn)用臨時(shí)表空間來(lái)存放排序的中間結(jié)果。8i中sort_area_size/sort_area_retained_size決定了排序所需要的內(nèi)存,假如排序操作不能在sort_area_size中完畢,就會(huì)用到temp表空間9i中假如workarea_size_policy=auto時(shí),排序在pga內(nèi)進(jìn)行,通常pga_aggregate_target的1/20可以用來(lái)進(jìn)行disksort;假如workarea_size_policy=manual時(shí),排序需要的內(nèi)存由sort_area_size決定,在執(zhí)行orderby/groupby/distinct/union/createindex/indexrebuild/minus等操作時(shí),假如在pga或sort_area_size中不能完畢,排序?qū)⒃谂R時(shí)表空間進(jìn)行(disksort),臨時(shí)表空間重要作用就是完畢系統(tǒng)中的disksort.12.
存在表T(a,b,c,d),要根據(jù)字段c排序后取第21—30條記錄顯示,請(qǐng)給出sql
SELECT
*
FROM(SELECTROWNUMASrow_num,tmp_tab.*
FROM(SELECT
a,b,c,d
FROMT
ORDERBYc)tmp_tab
WHEREROWNUM<=30)
WHERErow_num>=20ORDERBYrow_num;createtablet(anumber(,bnumber(,cnumber(,dnumber();/beginforiin1..300l(fā)oopinsertintotvalues(mod(i,2),i/2,dbms_random.value(1,300),i/4);endloop;end;/select*from(selectc.*,rownumasrnfrom(select*fromtorderbycdesc)c)wherernbetween21and30;/select*from(select*fromtestorderbycdesc)xwhererownum<30minusselect*from(select*fromtestorderbycdesc)ywhererownum&lt;20orderby3desc相比之minus性能較差二:數(shù)據(jù)庫(kù)基本概念類(lèi)1Pctusedandpctfree表達(dá)什么含義有什么作用pctused與pctfree(cuò)控制數(shù)據(jù)塊是否出現(xiàn)在freelist中,
pctfree(cuò)控制數(shù)據(jù)塊中保存用于update的空間,當(dāng)數(shù)據(jù)塊中的free(cuò)space小于pctfree(cuò)設(shè)立的空間時(shí),該數(shù)據(jù)塊從freelist中去掉,當(dāng)塊由于dml操作freespace大于pct_used設(shè)立的空間時(shí),該數(shù)據(jù)庫(kù)塊將被添加在freelist鏈表中。2簡(jiǎn)樸描述tablespace/segment/extent/block之間的關(guān)系tablespace:一個(gè)數(shù)據(jù)庫(kù)劃分為一個(gè)或多個(gè)邏輯單位,該邏輯單位成為表空間;每一個(gè)表空間也許包含一個(gè)或多個(gè)Segment;Segments:Segment指在tablespace中為特定邏輯存儲(chǔ)結(jié)構(gòu)分派的空間。每一個(gè)段是由一個(gè)或多個(gè)extent組成。涉及數(shù)據(jù)段、索引段、回滾段和臨時(shí)段。Extents:一個(gè)extent由一系列連續(xù)的Oracleblocks組成.ORACLE為通過(guò)extent來(lái)給segment分派空間。DataBlocks:Oracle數(shù)據(jù)庫(kù)最小的I/O存儲(chǔ)單位,一個(gè)datablock相應(yīng)一個(gè)或多個(gè)分派給dat(yī)afile的操作系統(tǒng)塊。table創(chuàng)建時(shí),默認(rèn)創(chuàng)建了一個(gè)datasegment,每個(gè)datasegment具有minextents指定的extents數(shù),每個(gè)extent據(jù)據(jù)表空間的存儲(chǔ)參數(shù)分派一定數(shù)量的blocks3描述tablespace和datafile之間的關(guān)系一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文獻(xiàn)。表空間運(yùn)用增長(zhǎng)或擴(kuò)展數(shù)據(jù)文獻(xiàn)擴(kuò)大表空間,表空間的大小為組成該表空間的數(shù)據(jù)文獻(xiàn)大小的和。一個(gè)datafile只能屬于一個(gè)表空間;一個(gè)tablespace可以有一個(gè)或多個(gè)datafile,每個(gè)datafile只能在一個(gè)tablespace內(nèi),table中的數(shù)據(jù),通過(guò)hash算法分布在tablespace中的各個(gè)datafile中,tablespace是邏輯上的概念,datafile則在物理上儲(chǔ)存了數(shù)據(jù)庫(kù)的種種對(duì)象。4本地管理表空間和字典管理表空間的特點(diǎn),ASSM有什么特點(diǎn)本地管理表空間:(9i默認(rèn))空閑塊列表存儲(chǔ)在表空間的數(shù)據(jù)文獻(xiàn)頭。特點(diǎn):減少數(shù)據(jù)字典表的競(jìng)爭(zhēng),當(dāng)分派和收縮空間時(shí)會(huì)產(chǎn)生回滾,不需要合并。字典管理表空間:(8i默認(rèn))空閑塊列表存儲(chǔ)在數(shù)據(jù)庫(kù)中的字典表里.特點(diǎn):片由數(shù)據(jù)字典管理,也許導(dǎo)致字典表的爭(zhēng)用。存儲(chǔ)在表空間的每一個(gè)段都會(huì)有不同的存儲(chǔ)字句,需要合并相鄰的塊;本地管理表空間(LocallyManagedTablespace簡(jiǎn)稱(chēng)LMT)8i以后出現(xiàn)的一種新的表空間的管理模式,通過(guò)位圖來(lái)管理表空間的空間使用。字典管理表空間(Dictionary-ManagedTablespace簡(jiǎn)稱(chēng)DMT)8i以前涉及以后都還可以使用的一種表空間管理模式,通過(guò)數(shù)據(jù)字典管理表空間的空間使用。動(dòng)段空間管理(ASSM),它初次出現(xiàn)在Oracle920里有了ASSM,鏈接列表freelist被位圖所取代,它是一個(gè)二進(jìn)制的數(shù)組,可以迅速有效地管理存儲(chǔ)擴(kuò)展和剩余區(qū)塊(free(cuò)block),因此可以改善分段存儲(chǔ)本質(zhì),ASSM表空間上創(chuàng)建的段尚有此外一個(gè)稱(chēng)呼喊BitmapManagedSegments(BMB段)。5回滾段的作用是什么回滾段用于保存數(shù)據(jù)修改前的映象,這些信息用于生成讀一致性數(shù)據(jù)庫(kù)信息、在數(shù)據(jù)庫(kù)恢復(fù)和Rollback時(shí)使用。一個(gè)事務(wù)只能使用一個(gè)回滾段。事務(wù)回滾:當(dāng)事務(wù)修改表中數(shù)據(jù)的時(shí)候,該數(shù)據(jù)修改前的值(即前影像)會(huì)存放在回滾段中,當(dāng)用戶回滾事務(wù)(ROLLBACK)時(shí),ORACLE將會(huì)運(yùn)用回滾段中的數(shù)據(jù)前影像來(lái)將修改的數(shù)據(jù)恢復(fù)到本來(lái)的值。事務(wù)恢復(fù):當(dāng)事務(wù)正在解決的時(shí)候,例程失敗,回滾段的信息保存在undo表空間中,ORACLE將在下次打開(kāi)數(shù)據(jù)庫(kù)時(shí)運(yùn)用回滾來(lái)恢復(fù)未提交的數(shù)據(jù)。讀一致性:當(dāng)一個(gè)會(huì)話正在修改數(shù)據(jù)時(shí),其他的會(huì)話將看不到該會(huì)話未提交的修改。當(dāng)一個(gè)語(yǔ)句正在執(zhí)行時(shí),該語(yǔ)句將看不到從該語(yǔ)句開(kāi)始執(zhí)行后的未提交的修改(語(yǔ)句級(jí)讀一致性)當(dāng)ORACLE執(zhí)行SELECT語(yǔ)句時(shí),ORACLE依照當(dāng)前的系統(tǒng)改變號(hào)(SYSTEMCHANGENUMBER-SCN)來(lái)保證任何前于當(dāng)前SCN的未提交的改變不被該語(yǔ)句解決??梢韵胂?當(dāng)一個(gè)長(zhǎng)時(shí)間的查詢(xún)正在執(zhí)行時(shí),若其他會(huì)話改變了該查詢(xún)要查詢(xún)的某個(gè)數(shù)據(jù)塊,ORACLE將運(yùn)用回滾段的數(shù)據(jù)前影像來(lái)構(gòu)造一個(gè)讀一致性視圖6日記的作用是什么日記文獻(xiàn)(LogFile)記錄所有對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的修改,重要是保護(hù)數(shù)據(jù)庫(kù)以防止故障,以及恢復(fù)數(shù)據(jù)時(shí)使用。其特點(diǎn)如下:
a)每一個(gè)數(shù)據(jù)庫(kù)至少包含兩個(gè)日記文獻(xiàn)組。每個(gè)日記文獻(xiàn)組至少包含兩個(gè)日記文獻(xiàn)成員。
b)日記文獻(xiàn)組以循環(huán)方式進(jìn)行寫(xiě)操作。
c)每一個(gè)日記文獻(xiàn)成員相應(yīng)一個(gè)物理文獻(xiàn)。記錄數(shù)據(jù)庫(kù)事務(wù),最大限度地保證數(shù)據(jù)的一致性與安全性
重做日記文獻(xiàn):含對(duì)數(shù)據(jù)庫(kù)所做的更改記錄,這樣萬(wàn)一出現(xiàn)故障可以啟用數(shù)據(jù)恢復(fù),一個(gè)數(shù)據(jù)庫(kù)至少需要兩個(gè)重做日記文獻(xiàn)歸檔日記文獻(xiàn):是重做日記文獻(xiàn)的脫機(jī)副本,這些副本也許對(duì)于從介質(zhì)失敗中進(jìn)行恢復(fù)很必要。7SGA重要有那些部分,重要作用是什么系統(tǒng)全局區(qū)(SGA):是ORACLE為實(shí)例分派的一組共享緩沖存儲(chǔ)區(qū),用于存放數(shù)據(jù)庫(kù)數(shù)據(jù)和控制信息,以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的管理和操作。SGA重要涉及:a)共享池(sharedpool):用來(lái)存儲(chǔ)最近執(zhí)行的SQL語(yǔ)句和最近使用的數(shù)據(jù)字典的數(shù)據(jù)。b)數(shù)據(jù)緩沖區(qū)(databasebuffercache):用來(lái)存儲(chǔ)最近從數(shù)據(jù)文獻(xiàn)中讀寫(xiě)過(guò)的數(shù)據(jù)。c)重作日記緩沖區(qū)(redologbuffer):用來(lái)記錄服務(wù)或后臺(tái)進(jìn)程對(duì)數(shù)據(jù)庫(kù)的操作。此外在SGA中尚有兩個(gè)可選的內(nèi)存結(jié)構(gòu):d)javapool:
用來(lái)存儲(chǔ)Java代碼。e)Largepool:用來(lái)存儲(chǔ)不與SQL直接相關(guān)的大型內(nèi)存結(jié)構(gòu)。備份、恢復(fù)使用。GA:db_cache/shared_pool/large_pool/java_pooldb_cache:數(shù)據(jù)庫(kù)緩存(BlockBuffer)對(duì)于Oracle數(shù)據(jù)庫(kù)的運(yùn)轉(zhuǎn)和性能起著非常關(guān)鍵的作用,它占據(jù)Oracle數(shù)據(jù)庫(kù)SGA(系統(tǒng)共享內(nèi)存區(qū))的重要部分。Oracle數(shù)據(jù)庫(kù)通過(guò)使用LRU算法,將最近訪問(wèn)的數(shù)據(jù)塊存放到緩存中,從而優(yōu)化對(duì)磁盤(pán)數(shù)據(jù)的訪問(wèn).shared_pool:共享池的大小對(duì)于Oracle性能來(lái)說(shuō)都是很重要的。共享池中保存數(shù)據(jù)字典高速緩沖和完全解析或編譯的的PL/SQL塊和SQL語(yǔ)句及控制結(jié)構(gòu)large_pool:使用MTS配置時(shí),由于要在SGA中分派UGA來(lái)保持用戶的會(huì)話,就是用Large_pool來(lái)保持這個(gè)會(huì)話內(nèi)存使用RMAN做備份的時(shí)候,要使用Large_pool這個(gè)內(nèi)存結(jié)構(gòu)來(lái)做磁盤(pán)I/O緩存器java_pool:為javaprocedure預(yù)備的內(nèi)存區(qū)域,假如沒(méi)有使用javaproc,java_pool不是必須的8Oracle系統(tǒng)進(jìn)程重要有哪些,作用是什么數(shù)據(jù)寫(xiě)進(jìn)程(DBWR):負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存寫(xiě)入數(shù)據(jù)文獻(xiàn)日記寫(xiě)進(jìn)程(LGWR):將重做日記緩沖區(qū)中的更改寫(xiě)入在線重做日記文獻(xiàn)系統(tǒng)監(jiān)控
(SMON):檢查數(shù)據(jù)庫(kù)的一致性如有必要還會(huì)在數(shù)據(jù)庫(kù)打開(kāi)時(shí)啟動(dòng)數(shù)據(jù)庫(kù)的恢復(fù)進(jìn)程監(jiān)控
(PMON):負(fù)責(zé)在一個(gè)Oracle進(jìn)程失敗時(shí)清理資源檢查點(diǎn)進(jìn)程(CKPT):負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫(kù)中時(shí),更新控制文獻(xiàn)和數(shù)據(jù)文獻(xiàn)中的數(shù)據(jù)庫(kù)狀態(tài)信息。歸檔進(jìn)程
(ARCH):在每次日記切換時(shí)把已滿的日記組進(jìn)行備份或歸檔恢復(fù)進(jìn)程
(RECO):保證分布式事務(wù)的一致性,在分布式事務(wù)中,要么同時(shí)commit,要么同時(shí)rollback;作業(yè)調(diào)度器(CJQ):
負(fù)責(zé)將調(diào)度與執(zhí)行系統(tǒng)中已定義好的job,完畢一些預(yù)定義的工作.三:備份恢復(fù)類(lèi)1備份如何分類(lèi)邏輯備份:exp/imp指定表的邏輯備份物理備份:熱備份:altertablespacebegin/endbackup;冷備份:脫機(jī)備份(dat(yī)abaseshutdown)RMAN備份fullbackup/incrementalbackup(累積/差異)物理備份物理備份是最重要的備份方式。用于保證數(shù)據(jù)庫(kù)在最小的數(shù)據(jù)庫(kù)丟失或沒(méi)有數(shù)據(jù)丟失的情況下得到恢復(fù)。冷物理冷物理備份提供了最簡(jiǎn)樸和最直接的方法保護(hù)數(shù)據(jù)庫(kù)因物理?yè)p壞丟失。建議在以下幾種情況中使用。對(duì)一個(gè)已經(jīng)存在大最數(shù)據(jù)量的數(shù)據(jù)庫(kù),在晚間數(shù)據(jù)庫(kù)可以關(guān)閉,此時(shí)應(yīng)用冷物理備份。對(duì)需對(duì)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行升級(jí),(如更換硬盤(pán)),此時(shí)需要備份數(shù)據(jù)庫(kù)信息,并在新的硬盤(pán)中恢復(fù)這些數(shù)據(jù)信息,建議采用冷物理備份。熱物理重要是指?jìng)浞葸^(guò)程在數(shù)據(jù)庫(kù)打開(kāi)并且用戶可以使用的情況下進(jìn)行。需要執(zhí)行熱物理備份的情況有:由于數(shù)據(jù)庫(kù)性質(zhì)規(guī)定不間斷工作,因而此時(shí)只能采用熱物理備份。由于備份的規(guī)定的時(shí)間過(guò)長(zhǎng),而數(shù)據(jù)庫(kù)只能短時(shí)間關(guān)閉時(shí)。邏輯備份(EXP/IMP)邏輯備份用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)對(duì)象的恢復(fù)。但不是基于時(shí)間點(diǎn)可完全恢復(fù)的備份策略。只能作為聯(lián)機(jī)備份和脫機(jī)備份的一種補(bǔ)充。完全邏輯備份完全邏輯備份是將整個(gè)數(shù)據(jù)庫(kù)導(dǎo)出到一個(gè)數(shù)據(jù)庫(kù)的格式文獻(xiàn)中,該文獻(xiàn)可以在不同的數(shù)據(jù)庫(kù)版本、操作系統(tǒng)和硬件平臺(tái)之間進(jìn)行移植。指定表的邏輯備份通過(guò)備份工具,可以將指定的數(shù)據(jù)庫(kù)表備份出來(lái),這可以避免完全邏輯備份所帶來(lái)的時(shí)間和財(cái)力上的浪費(fèi)。2歸檔是什么含義關(guān)于歸檔日記:Oracle要將填滿的在線日記文獻(xiàn)組歸檔時(shí),則要建立歸檔日記(archivedredolog)。其對(duì)數(shù)據(jù)庫(kù)備份和恢復(fù)有下列用處:數(shù)據(jù)庫(kù)后備以及在線和歸檔日記文獻(xiàn),在操作系統(tǒng)和磁盤(pán)故障中可保證所有提交的事物可被恢復(fù)。在數(shù)據(jù)庫(kù)打開(kāi)和正常系統(tǒng)使用下,假如歸檔日記是永久保存,在線后備可以進(jìn)行和使用。數(shù)據(jù)庫(kù)可運(yùn)營(yíng)在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELO(píng)G方式數(shù)據(jù)庫(kù)在NOARCHIVELOG方式下使用時(shí),不能進(jìn)行在線日記的歸檔,數(shù)據(jù)庫(kù)在ARCHIVELOG方式下運(yùn)營(yíng),可實(shí)行在線日記的歸檔歸檔是歸檔當(dāng)前的聯(lián)機(jī)redo日記文獻(xiàn)。SVRMGR>altersystemarchivelogcurrent;數(shù)據(jù)庫(kù)只有運(yùn)營(yíng)在ARCHIVELOG模式下,并且可以進(jìn)行自動(dòng)歸檔,才可以進(jìn)行聯(lián)機(jī)備份。有了聯(lián)機(jī)備份才有也許進(jìn)行完全恢復(fù)。3假如一個(gè)表在2023-08-0410:30:00被drop,在有完善的歸檔和備份的情況下,如何恢復(fù)9i新增的FLASHBACK應(yīng)當(dāng)可以;Logminer應(yīng)當(dāng)可以找出DML。有完善的歸檔和備份,先歸檔當(dāng)前數(shù)據(jù),然后可以先恢復(fù)到刪除的時(shí)間點(diǎn)之前,把DROP的表導(dǎo)出來(lái),然后再恢復(fù)到最后歸檔時(shí)間;手工拷貝回所有備份的數(shù)據(jù)文獻(xiàn)Sql〉startupmount;sql〉alterdatabaserecoverautomat(yī)icuntiltime'2023-08-04:10:30:00';sql〉alterdatabaseopenresetlogs;4rman是什么,有何特點(diǎn)RMAN(RecoveryManager)是DBA的一個(gè)重要工具,用于備份、還原和恢復(fù)oracle數(shù)據(jù)庫(kù),RMAN可以用來(lái)備份和恢復(fù)數(shù)據(jù)庫(kù)文獻(xiàn)、歸檔日記、控制文獻(xiàn)、系統(tǒng)參數(shù)文獻(xiàn),也可以用來(lái)執(zhí)行完全或不完全的數(shù)據(jù)庫(kù)恢復(fù)。RMAN有三種不同的用戶接口:COMMANDLINE方式、GUI方式(集成在OEM中的備份管理器)、API方式(用于集成到第三方的備份軟件中)。具有如下特點(diǎn):1)功能類(lèi)似物理備份,但比物理備份強(qiáng)大N倍;2)可以壓縮空塊;3)可以在塊水平上實(shí)現(xiàn)增量;4)可以把備份的輸出打包成備份集,也可以按固定大小分割備份集;5)備份與恢復(fù)的過(guò)程可以自動(dòng)管理;6)可以使用腳本(存在Recoverycatalog中)7)可以做壞塊監(jiān)測(cè)5standby的特點(diǎn)備用數(shù)據(jù)庫(kù)(standbydatabase):ORACLE推出的一種高可用性(HIGHAVAILABLE)數(shù)據(jù)庫(kù)方案,在主節(jié)點(diǎn)與備用節(jié)點(diǎn)間通過(guò)日記同步來(lái)保證數(shù)據(jù)的同步,備用節(jié)點(diǎn)作為主節(jié)點(diǎn)的備份,可以實(shí)現(xiàn)快速切換與劫難性恢復(fù),從920開(kāi)始,還開(kāi)始支持物理與邏輯備用服務(wù)器。9i中的三種數(shù)據(jù)保護(hù)模式分別是:1)、MAXIMIZEPROTECTION:最大數(shù)據(jù)保護(hù)與無(wú)數(shù)據(jù)分歧,LGWR將同時(shí)傳送到備用節(jié)點(diǎn),在主節(jié)點(diǎn)事務(wù)確認(rèn)之前,備用節(jié)點(diǎn)也必須完全收到日記數(shù)據(jù)。假如網(wǎng)絡(luò)不好,引起LGWR不能傳送數(shù)據(jù),將引起嚴(yán)重的性能問(wèn)題,導(dǎo)致主節(jié)點(diǎn)DOWN機(jī)。2)、MAXIMIZEAVAILABILITY:無(wú)數(shù)據(jù)丟失模式,允許數(shù)據(jù)分歧,允許異步傳送。正常情況下運(yùn)營(yíng)在最大保護(hù)模式,在主節(jié)點(diǎn)與備用節(jié)點(diǎn)的網(wǎng)絡(luò)斷開(kāi)或連接不正常時(shí),自動(dòng)切換到最大性能模式,主節(jié)點(diǎn)的操作還是可以繼續(xù)的。在網(wǎng)絡(luò)不好的情況下有較大的性能影響。3)、MAXIMIZEPERFORMANCE:這種模式應(yīng)當(dāng)可以說(shuō)是從8i繼承過(guò)來(lái)的備用服務(wù)器模式,異步傳送,無(wú)數(shù)據(jù)同步檢查,也許丟失數(shù)據(jù),但是能獲得主節(jié)點(diǎn)的最大性能。9i在配置DATAGUARD的時(shí)候默認(rèn)就是MAXIMIZEPERFORMANCE6對(duì)于一個(gè)規(guī)定恢復(fù)時(shí)間比較短的系統(tǒng)(數(shù)據(jù)庫(kù)50G,天天歸檔5G),你如何設(shè)計(jì)備份策略數(shù)據(jù)庫(kù)比較大邏輯備份沒(méi)什么必要,天天歸檔5G,每周三/周六自動(dòng)歸檔10G,每月RMAN歸檔全庫(kù)。應(yīng)當(dāng)有standby。rman/每月一號(hào)level0每周末/周三level1其它天天level2四:系統(tǒng)管理類(lèi)1.
對(duì)于一個(gè)存在系統(tǒng)性能的系統(tǒng),說(shuō)出你的診斷解決思緒ü
做stat(yī)spack收集系統(tǒng)相關(guān)信息
了解系統(tǒng)大體情況/擬定是否存在參數(shù)設(shè)立不合適的地方/查看top5event/查看topsql等ü
查v$system_event/v$session_event/v$session_wait從v$system_event開(kāi)始,擬定需要什么資源(dbfilesequentialread)等,進(jìn)一步研究v$session_event,擬定等待事件涉及的會(huì)話,從v$session_wait擬定具體的資源爭(zhēng)用情況(p1-p3的值:file_id/block_id/blocks等)ü
通過(guò)v$sql/v$sqltext/v$sqlarea表擬定disk_reads、(buffer_gets/executions)值較大的SQL2.
列舉幾種診斷IO、CPU、性能狀況的方法top
uptime
vmstat
iostat(yī)
statspack
sql_trace/tkprof查v$system_event/v$session_event/v$session_wait查v$sqlarea(disk_reads或buffer_gets/executions較大的SQL)或者第三方的監(jiān)視工具,TO(shè)AD就不錯(cuò)。3.
對(duì)stat(yī)spack有何結(jié)識(shí)結(jié)識(shí)不深。僅限了解。StapSpack是Oracle公司提供的一個(gè)收集數(shù)據(jù)庫(kù)運(yùn)營(yíng)性能指標(biāo)的軟件包??梢宰鰯?shù)據(jù)庫(kù)健康檢查報(bào)告。StapSpack是Oracle公司提供的一個(gè)收集數(shù)據(jù)庫(kù)運(yùn)營(yíng)性能指標(biāo)的軟件包,該軟件包從8i起,在9i、10g都有顯著的增強(qiáng)該軟件包的輔助表(存儲(chǔ)相關(guān)參數(shù)與收集的性能指標(biāo)的表)由最初的25個(gè)增長(zhǎng)到43個(gè)收集級(jí)別參數(shù)由本來(lái)的3個(gè)(0、5、10)增長(zhǎng)到5個(gè)(0、5、6、7、10)通過(guò)度析收集的性能指標(biāo),數(shù)據(jù)庫(kù)管理員可以具體地了解數(shù)據(jù)庫(kù)目前的運(yùn)營(yíng)情況,對(duì)數(shù)據(jù)庫(kù)實(shí)例、等待事件、SQL等進(jìn)行優(yōu)化調(diào)整運(yùn)用statspack收集的snapshot,可以記錄制作數(shù)據(jù)庫(kù)的各種性能指標(biāo)的記錄趨勢(shì)圖表。4.
假如系統(tǒng)現(xiàn)在需要在一個(gè)很大的表上創(chuàng)建一個(gè)索引,你會(huì)考慮那些因素,如何做以盡量減小相應(yīng)用的影響可以先表分析一下,然后測(cè)試創(chuàng)建索引前后相應(yīng)用的性能影響;需要考慮的是該索引列不經(jīng)常更新,不是有很多反復(fù)值的情況時(shí),在大表中使用索引特別有效.創(chuàng)建的索引可以跟數(shù)據(jù)表分不同表空間存儲(chǔ)。在系統(tǒng)比較空閑時(shí)nologging選項(xiàng)(假如有dataguard則不可以使用nologging)大的sort_ared_size或pga_aggregat(yī)e_target較大5.
對(duì)raid10和raid5有何結(jié)識(shí)RAID10(或稱(chēng)RAID1+0)與RAID0+1不同,它是用硬盤(pán)驅(qū)動(dòng)器先組成RAID1陣列,然后在RAID1陣列之間再組成RAID0陣列。RAID10模式同RAID0+1模式同樣具有良好的數(shù)據(jù)傳輸性能,但卻比RAID0+1具有更高的可靠性。RAID10陣列的實(shí)際容量為M×n/2,磁盤(pán)運(yùn)用率為50%。RAID10也需要至少4個(gè)硬盤(pán)驅(qū)動(dòng)器構(gòu)成,因而價(jià)格昂貴。RAID10的可靠性同RAID1同樣,但由于RAID10硬盤(pán)驅(qū)動(dòng)器之間有數(shù)據(jù)分割,因而數(shù)據(jù)傳輸性能優(yōu)良。
RAID5與RAID3很相似,不同之處在于RAID5的奇偶校驗(yàn)信息也同數(shù)據(jù)同樣被分割保存到所有的硬盤(pán)驅(qū)動(dòng)器,而不是寫(xiě)入一個(gè)指定的硬盤(pán)驅(qū)動(dòng)器,從而消除了單個(gè)奇偶校驗(yàn)硬盤(pán)驅(qū)動(dòng)器的瓶頸問(wèn)題。RAID5磁盤(pán)陣列的性能比RAID3有所提高,但仍然需要至少3塊硬盤(pán)驅(qū)動(dòng)器。其實(shí)際容量為M×(n-1),磁盤(pán)運(yùn)用率為(n-1)/n。
五:綜合隨意類(lèi)1.
你最擅長(zhǎng)的是oracle哪部分?pl/sql及sql優(yōu)化2.
喜歡oracle嗎?喜歡上論壇嗎?或者偏好oracle的哪一部分?喜歡。PL/SQL比較得心應(yīng)手。3.
隨意說(shuō)說(shuō)你覺(jué)得oracle最故意思的部分或者最困難的部分我對(duì)數(shù)據(jù)庫(kù)的備份/恢復(fù)和性能調(diào)優(yōu)經(jīng)驗(yàn)明顯局限性,自然覺(jué)得有些困難?;贠RACLE的研究應(yīng)當(dāng)是個(gè)寬廣的領(lǐng)域,所以我覺(jué)得還是故意思的。4.
為什么要選擇做DBA呢?我對(duì)數(shù)據(jù)庫(kù)的備份/恢復(fù)和性能調(diào)優(yōu)經(jīng)驗(yàn)明顯局限性,重要是缺少環(huán)境和交流。因此,算不上什么DBA。但是因此我更需要這樣的機(jī)會(huì)。但是就整個(gè)ORACLE來(lái)說(shuō),一直從事與它相關(guān)的工作,感情還是頗深的。放棄可惜。并且就技術(shù)自身而言我覺(jué)得自己還是有學(xué)習(xí)和創(chuàng)新的能力,它的諸如數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘之類(lèi)的領(lǐng)域也很廣。數(shù)據(jù)庫(kù)面試筆試題集
第一套一.選擇題1.下面敘述對(duì)的的是______。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)B、算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)C、算法的有窮性是指算法必須能在執(zhí)行有限個(gè)環(huán)節(jié)之后終止D、以上三種描述都不對(duì)2.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是_____(dá)_。A、隊(duì)列B、線性表C、二叉樹(shù)D、棧3.在一棵二叉樹(shù)上第5層的結(jié)點(diǎn)數(shù)最多是__(dá)___(dá)_。A、8B、16C、32D、154.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是___(dá)___。A、使用順序、選擇和反復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表達(dá)程序的控制邏輯B、模塊只有一個(gè)入口,可以有多個(gè)出口C、注重提高程序的執(zhí)行效率D、不使用goto語(yǔ)句5.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖牵撸撸撸撸達(dá)。A、對(duì)象B、繼承C、類(lèi)D、過(guò)程調(diào)用6.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開(kāi)發(fā)階段是__(dá)___(dá)_。A、可行性分析B、需求分析C、具體設(shè)計(jì)D、程序編碼7.在軟件開(kāi)發(fā)中,下面任務(wù)不屬于設(shè)計(jì)階段的是______(dá)。A、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)B、給出系統(tǒng)模塊結(jié)構(gòu)C、定義模塊算法D、定義需求并建立系統(tǒng)模型8.數(shù)據(jù)庫(kù)系統(tǒng)的核心是___(dá)__(dá)_。A、數(shù)據(jù)模型B、數(shù)據(jù)庫(kù)管理系統(tǒng)C、軟件工具D、數(shù)據(jù)庫(kù)9.下列敘述中對(duì)的的是_____(dá)_。A、數(shù)據(jù)庫(kù)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B、數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)C、數(shù)據(jù)庫(kù)技術(shù)的主線目的是要解決數(shù)據(jù)共享的問(wèn)題D、數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致10.下列模式中,可以給出數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是___(dá)___。A、內(nèi)模式B、外模式C、概念模式D、邏輯模式11.VisualFoxPro數(shù)據(jù)庫(kù)文獻(xiàn)是______。A、存放用戶數(shù)據(jù)的文獻(xiàn)B、管理數(shù)據(jù)庫(kù)對(duì)象的系統(tǒng)文獻(xiàn)C、存放用戶數(shù)據(jù)和系統(tǒng)的文獻(xiàn)D、前三種說(shuō)法都對(duì)12.SQL語(yǔ)句中修改表結(jié)構(gòu)的命令是__(dá)____。A、MODIFYTABLEB、MODIFYSTRUCTUREC、ALTERTABLED、ALTERSTRUCTURE13.假如要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)組分組報(bào)表,第一個(gè)分組表達(dá)式是"部門(mén)",第二個(gè)分組表達(dá)式是"性別",第三個(gè)分組表達(dá)式是"基本工資",當(dāng)前索引的索引表達(dá)式應(yīng)當(dāng)是______。A、部門(mén)+性別+基本工資B、部門(mén)+性別+STR(基本工資)C、STR(基本工資)+性別+部門(mén)D、性別+部門(mén)+STR(基本工資)14.把一個(gè)項(xiàng)目編譯成一個(gè)應(yīng)用程序時(shí),下面的敘述對(duì)的的是___(dá)__(dá)_。A、所有的項(xiàng)目文獻(xiàn)將組合為一個(gè)單一的應(yīng)用程序文獻(xiàn)B、所有項(xiàng)目的包含文獻(xiàn)將組合為一個(gè)單一的應(yīng)用程序文獻(xiàn)C、所有項(xiàng)目排除的文獻(xiàn)將組合為一個(gè)單一的應(yīng)用程序文獻(xiàn)D、由用戶選定的項(xiàng)目文獻(xiàn)將組合為一個(gè)單一的應(yīng)用程序文獻(xiàn)15.?dāng)?shù)據(jù)庫(kù)DB、數(shù)據(jù)庫(kù)系統(tǒng)DBS、數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS三者之間的關(guān)系是______。A、DBS涉及DB和DBMSB、DBMS涉及DB和DBSC、DB涉及DBS和DBMSD、DBS就是DB,也就是DBMS16.在"選項(xiàng)"對(duì)話框的"文獻(xiàn)位置"選項(xiàng)卡中可以設(shè)立___(dá)___。A、表單的默認(rèn)大小B、默認(rèn)目錄C、日期和時(shí)間的顯示格式D、程序代碼的顏色17.要控制兩個(gè)表中數(shù)據(jù)的完整性和一致性可以設(shè)立"參照完整性",規(guī)定這兩個(gè)表___(dá)___。A、是同一個(gè)數(shù)據(jù)庫(kù)中的兩個(gè)表B、不同數(shù)據(jù)庫(kù)中的兩個(gè)表C、兩個(gè)自由表D、一個(gè)是數(shù)據(jù)庫(kù)表另一個(gè)是自由表18.定位第一條記錄上的命令是_____(dá)_。A、GOTOPB、GOBOTTOMC、GO6D、SKIP19.在關(guān)系模型中,實(shí)現(xiàn)"關(guān)系中不允許出現(xiàn)相同的元組"的約束是通過(guò)_____(dá)_。A、候選鍵B、主鍵C、外鍵D、超鍵20.設(shè)當(dāng)前數(shù)據(jù)庫(kù)有10條記錄(記錄未進(jìn)行任何索引),在下列三種情況下,當(dāng)前記錄號(hào)為1時(shí);EOF()為真時(shí);BOF()為真時(shí),命令?RECN()的結(jié)果分別是______。A、1,11,1B、1,10,1C、1,11,0D、1,10,021.下列表達(dá)式中結(jié)果不是日期型的是______。A、CTOD("2023/10/01")B、{^99/10/01}+365C、VAL("2023/10/01")D、DATE()22.只有滿足聯(lián)接條件的記錄才包含在查詢(xún)結(jié)果中,這種聯(lián)接為__(dá)___(dá)_。A、左聯(lián)接B、右聯(lián)接C、內(nèi)部聯(lián)接D、完全聯(lián)接23.索引字段值不唯一,應(yīng)當(dāng)選擇的索引類(lèi)型為__(dá)____。A、主索引B、普通索引C、候選索引D、唯一索引24.執(zhí)行SELECT0選擇工作區(qū)的結(jié)果是______。A、選擇了0號(hào)工作區(qū)B、選擇了空閑的最小號(hào)工作區(qū)C、關(guān)閉選擇的工作區(qū)D、選擇已打開(kāi)的工作區(qū)25.從數(shù)據(jù)庫(kù)中刪除表的命令是______(dá)。A、DROPTABLEB、ALTERTABLEC、DELETETABLED、USE26.DELETEFROMSWHERE年齡>60語(yǔ)句的功能是____(dá)__。A、從S表中徹底刪除年齡大于60歲的記錄B、S表中年齡大于60歲的記錄被加上刪除標(biāo)記C、刪除S表D、刪除S表的年齡列27.SELECT-SQL語(yǔ)句是______。A、選擇工作區(qū)語(yǔ)句B、數(shù)據(jù)查詢(xún)語(yǔ)句C、選擇標(biāo)準(zhǔn)語(yǔ)句D、數(shù)據(jù)修改語(yǔ)句28.SQL語(yǔ)言是______(dá)語(yǔ)言。A、層次數(shù)據(jù)庫(kù)B、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)C、關(guān)系數(shù)據(jù)庫(kù)D、非數(shù)據(jù)庫(kù)29.在SQL中,刪除視圖用___(dá)___。A、DROPSCHEMA命令B、CREATETABLE命令C、DROPVIEW命令D、DROPINDEX命令30.以下屬于非容器類(lèi)控件的是______。A、FormB、LabelC、pageD、Container31.將查詢(xún)結(jié)果放在數(shù)組中應(yīng)使用____(dá)__短語(yǔ)。A、INTO(shè)CURSORB、TOARRAYC、INTOTABLED、INTOARRAY32.在命令窗口執(zhí)行SQL命令時(shí),若命令要占用多行,續(xù)行符是____(dá)__。A、冒號(hào)(:)B、分號(hào)(;)C、逗號(hào)(,)D、連字符(-)33.設(shè)有圖書(shū)管理數(shù)據(jù)庫(kù):圖書(shū)(總編號(hào)C(6),分類(lèi)號(hào)C(8),書(shū)名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書(shū)證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱(chēng)C(6),地址C(20))借閱(借書(shū)證號(hào)C(4),總編號(hào)C(6),借書(shū)日期D(8))對(duì)于圖書(shū)管理數(shù)據(jù)庫(kù),查詢(xún)0001號(hào)借書(shū)證的讀者姓名和所借圖書(shū)的書(shū)名。SQL語(yǔ)句對(duì)的的是____(dá)__。SELECT姓名,書(shū)名FROM借閱,圖書(shū),讀者WHERE;借閱.借書(shū)證號(hào)="0001"AND;____________A、圖書(shū).總編號(hào)=借閱.總編號(hào)AND;讀者.借書(shū)證號(hào)=借閱.借書(shū)證號(hào)B、圖書(shū).分類(lèi)號(hào)=借閱.分類(lèi)號(hào)AND;讀者.借書(shū)證號(hào)=借閱.借書(shū)證號(hào)C、讀者.總編號(hào)=借閱.總編號(hào)AND;讀者.借書(shū)證號(hào)=借閱.借書(shū)證號(hào)D、圖書(shū).總編號(hào)=借閱.總編號(hào)AND;讀者.書(shū)名=借閱.書(shū)名34.設(shè)有圖書(shū)管理數(shù)據(jù)庫(kù):圖書(shū)(總編號(hào)C(6),分類(lèi)號(hào)C(8),書(shū)名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書(shū)證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱(chēng)C(6),地址C(20))借閱(借書(shū)證號(hào)C(4),總編號(hào)C(6),借書(shū)日期D(8))對(duì)于圖書(shū)管理數(shù)據(jù)庫(kù),分別求出各個(gè)單位當(dāng)前借閱圖書(shū)的讀者人次。下面的SQL語(yǔ)句對(duì)的的是______。SELECT單位,___(dá)___(dá)FROM借閱,讀者WHERE;借閱.借書(shū)證號(hào)=讀者.借書(shū)證號(hào)_____(dá)_A、COUNT(借閱.借書(shū)證號(hào))GROUPBY單位B、SUM(借閱.借書(shū)證號(hào))GROUPBY單位C、COUNT(借閱.借書(shū)證號(hào))ORDERBY單位D、COUNT(借閱.借書(shū)證號(hào))HAVING單位35.設(shè)有圖書(shū)管理數(shù)據(jù)庫(kù):圖書(shū)(總編號(hào)C(6),分類(lèi)號(hào)C(8),書(shū)名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書(shū)證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱(chēng)C(6),地址C(20))借閱(借書(shū)證號(hào)C(4),總編號(hào)C(6),借書(shū)日期D(8))對(duì)于圖書(shū)管理數(shù)據(jù)庫(kù),檢索借閱了《現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)》一書(shū)的借書(shū)證號(hào)。下面SQL語(yǔ)句對(duì)的的是____(dá)__。SELECT借書(shū)證號(hào)FROM借閱WHERE總編號(hào)=;__(dá)____A、(SELECT借書(shū)證號(hào)FROM圖書(shū)WHERE書(shū)名="現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)")B、(SELECT總編號(hào)FROM圖書(shū)WHERE書(shū)名="現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)")C、(SELECT借書(shū)證號(hào)FROM借閱WHERE書(shū)名="現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)")D、(SELECT總編號(hào)FROM借閱WHERE書(shū)名="現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)")二、填空題36.算法的復(fù)雜度重要涉及__(dá)____復(fù)雜度和空間復(fù)雜度。37.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱(chēng)為數(shù)據(jù)的____(dá)__。38.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和__(dá)___(dá)_測(cè)試方法。39.假如一個(gè)工人可管理多個(gè)設(shè)施,而一個(gè)設(shè)施只被一個(gè)工人管理,則實(shí)體"工人"與實(shí)體"設(shè)備"之間存在___(dá)___(dá)聯(lián)系。40.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的專(zhuān)門(mén)關(guān)系運(yùn)算涉及選擇、連接和____(dá)__。41.命令?LEN("THISISMYBOOK")的結(jié)果是______(dá)。42.SQLSELECT語(yǔ)句為了將查詢(xún)結(jié)果存放到臨時(shí)表中應(yīng)當(dāng)使用___(dá)___(dá)短語(yǔ)。43.多欄報(bào)表的欄目數(shù)可以通過(guò)______來(lái)設(shè)立。44.在打開(kāi)項(xiàng)目管理器之后再打開(kāi)"應(yīng)用程序生成器",可以通過(guò)按ALT+F2鍵,快捷菜單和"工具"菜單中的______。45.?dāng)?shù)據(jù)庫(kù)系統(tǒng)的核心是___(dá)___。46.查詢(xún)?cè)O(shè)計(jì)器中的"聯(lián)接"選項(xiàng)卡,可以控制______選擇。47.設(shè)有圖書(shū)管理數(shù)據(jù)庫(kù):圖書(shū)(總編號(hào)C(6),分類(lèi)號(hào)C(8),書(shū)名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書(shū)證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱(chēng)C(6),地址C(20))借閱(借書(shū)證號(hào)C(4),總編號(hào)C(6),借書(shū)日期D(8))用SQL的CREATE命令建立借閱表(字段順序要相同),請(qǐng)對(duì)下面的SQL語(yǔ)句填空:__(dá)__(dá)__48.設(shè)有圖書(shū)管理數(shù)據(jù)庫(kù):圖書(shū)(總編號(hào)C(6),分類(lèi)號(hào)C(8),書(shū)名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書(shū)證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱(chēng)C(6),地址C(20))借閱(借書(shū)證號(hào)C(4),總編號(hào)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林藝術(shù)學(xué)院《素描造型人體訓(xùn)練》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《短片寫(xiě)作》2021-2022學(xué)年第一學(xué)期期末試卷
- 中藥材基地管理協(xié)議書(shū)范文
- 2024年大學(xué)黨建共建協(xié)議書(shū)模板
- 2024年大人簽離婚協(xié)議書(shū)模板
- 2024年大件物標(biāo)書(shū)購(gòu)買(mǎi)合同范本
- 奶茶店撤股協(xié)議書(shū)范文模板
- 2022年公務(wù)員多省聯(lián)考《申論》真題(四川縣鄉(xiāng)卷)及答案解析
- 吉林師范大學(xué)《歷史學(xué)科課程與教學(xué)論》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林師范大學(xué)《行書(shū)理論與技法III》2021-2022學(xué)年第一學(xué)期期末試卷
- (2024年)量子計(jì)算機(jī)課件(精)
- 糖尿病酮癥酸中毒的診斷和治療
- GB/T 19812.7-2024塑料節(jié)水灌溉器材第7部分:微灌用塑料閥門(mén)
- 世界工廠的中國(guó)特色新時(shí)期工人狀況的社會(huì)學(xué)鳥(niǎo)瞰
- 2023中國(guó)路跑賽事藍(lán)皮書(shū)
- 鄉(xiāng)鎮(zhèn)社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2023年高考物理(江蘇卷)真題詳細(xì)解讀及評(píng)析
- 應(yīng)用研究型人才培養(yǎng)方案設(shè)計(jì)
- 車(chē)輛司機(jī)安全教育培訓(xùn)
- ecmo患者撤機(jī)后的護(hù)理
- GJB工藝設(shè)計(jì)依據(jù)
評(píng)論
0/150
提交評(píng)論