




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-第二章ORACLE11g的體系構造4第三章ORACLE11g的數據庫管理7第四章ORACLE11g的表空間管理9第五章ORACLE11g的表管理12第六章ORACLE11g的數據查詢16第七章ORACLE數據的根本操作21第十章PL/SQL根底33第十一章存儲過程與函數38第十四章平安管理48第十五章數據庫備份與恢復50①有一個結點無雙親②其它結點無雙親③有且僅有一個結點無雙親④其它結點有且僅有一個雙親⑤允許其它結點有多個雙親A.①和②B.③和④C.③和⑤D.②和⑤2.以下有關數據庫的描述,正確的選項是(C)A.數據庫是一個DBF文件B.數據庫是一個關系C.數據庫是一個構造化的數據集合D.數據庫是一組文件3.根據關系數據基于的數據模型——關系模型的特征判斷以下正確的一項:(B)A.只存在一對多的實體關系,以圖形方式來表示。B.以二維表格構造來保存數據,在關系表中不允許有重復行存在。C.能表達一對多、多對多的關系,但不能表達一對一的關系。2D.關系模型數據庫是數據庫開展的最初階段。5.用二維表構造表達實體集的模型是〔D〕A.概念模型B.層次模型C.網狀模型D.關系模型6.以下四項中說法不正確的選項是〔C〕A.數據庫減少了數據冗余B.數據庫中的數據可以共享C.數據庫防止了一切數據的重復D.數據庫具有較高的數據獨立性7.以下四項中,不屬于關系數據庫特點的是〔D〕C.數據共享性好D.多用戶訪問下面系統中不屬于關系數據庫管理系統的是〔C〕9.MSSQLServer是〔D〕二、填空題1.在數據庫系統中管理數據的軟件稱為___數據庫管理系統________。3.用樹型構造表示實體類型及實體間聯系的數據模型稱為__層次模型__。4.數據庫系統各類用戶對數據庫的各種操作請求(數據定義、查詢、更新及各種控制)都是由一個復雜的軟件來完成的,這個軟件叫做__數據庫管理系統___。三、簡答題型的分布式網絡進展無縫地、大規模地擴展,允許不同廠商的計算機共同工作來提供無盡的共享計算機資源。比方,有兩臺PC機,分別來自不同廠商,存均為516M,現系統運行要求1G的存,假設PC機單獨執行肯定不能滿足要求,可以通過網格計算和集群技術將兩臺PC機組合在一起,以滿足系統運行需求。錄樹的根,用Oracle_Home表示根目錄下的主目錄。-其他Oracle產品,則使用默認的主目錄\db_1;如果在同一臺主機的同一個根目錄下安裝多個Oracle_Home目錄中包括的主要子目錄有:·\BIN——主要包含用于數據庫管理的各種命令等。·\demo——存放數據庫實例模式的腳本等。·\udump——用戶SQL追蹤文件。文件對應重做日志文件組及其成員。子目錄。該目錄可用于存儲與恢復有關的文件,如控制文件、聯機重做日志副本、歸檔日志、閃回日志以及Oracle數據庫恢復管理器(RMAN)備份等。3.解釋$ORACLE_HOME和$ORACLE_BASE的區別"$ORACLE_BASE下是admin和product;$ORACLE_HOME下則是ORACLE的命令、連$ORACLE_HOME比$ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/version。$ORACLE_BASE是oracle的根目錄,$ORACLE_HOME是oracle產品的目錄。如果裝了2個版本的oracle,則$ORACLE_BASE可以是一個,但$ORACLE_HOME是2個。4ORACLE11g的體系構造一、單項選擇題2.〔B〕進程主要職責是監控效勞器進程和注冊數據庫效勞。A.SMONB.PMONC.CHKTD.LGWR4.用于在啟動實例時配置數據庫,確定Oracle11g的運A.參數文件B.數據文件C.可執行文件D.控制文件A.系統全局區SGAB.PMON后臺進程C.控制文件D.Dnnn調度進程6.在全局存儲區SGA中,哪局部存區域是循環使用的"(B)7.解析后的SQL語句在SGA的哪個區域中進展緩存.〔C〕則將啟動如下哪個進程.〔A〕A.DBWRB.LGWRC.SMOND.PMON〔D〕A.DBWRB.LGWRC.SMOND.PMON10.以下哪個進程用于將修改正的數據從存保存到磁盤數據文件中.〔A〕A.DBWRB.LGWRC.RECOD.ARCH11.當數據庫運行在歸檔模式下時,如果發生日志切換,為了保證不覆蓋舊的日志信息,系統將啟動哪個進程.〔D〕A.DBWRB.LGWRC.SMOND.ARCHA.表空間由段組成,段由盤區組成,盤區由數據塊組成。B.段由表空間組成,表空間由盤區組成,盤區由數據塊組成。D.數據塊由段組成,段由盤區組成,盤區由表空間組成。-二、填空題日志文件、參數文件、口令文件、跟蹤文件、警告日志文件等。2.一般地,Oracle的后臺進程包括數據寫入進場DBWR、日志寫入進場LGWR、檢查點進程CKPT、系統監控進場SMON、進程監控進場PMON、歸檔進程ARCH、恢復進程RECO、封鎖進程LCKn、調度進程Dnnn、效勞器進程Snnn、作業進程SNP等。3.一個表空間物理上對應一個或多個數據文件。4.用戶對數據庫的操作如果產生日志信息,則該日志信息首先存儲在日志緩沖區中,隨后由LGWR進程保存到日志文件。5.在Oralce的邏輯存儲構造中,根據存儲數據的類型,可將段分為數據段、索引段回退段、LOB段和臨時段。7.存構造是指一個進程在其中進展自身對話或與其他進程對話的存區域,Oracle使用兩種類型的存構造,一種是SGA;另一種是PGA。8.數據字典試圖分成3類:DBA_、ALL_和USER_視圖,DBA_視圖包含了數據庫所有對象的信息,ALL_視圖包含了用戶查詢表時可以訪問的所有對象的信息,USER_視圖包含了用戶查詢表時表所擁有的全部對象的信息。三、問答題1.簡要介紹數據文件、表空間、段、盤區和數據塊之間的關系。每一個數據文件都必須隸屬于*個表空間但一個表空間可以由多個數據文件組合而成。Oracle的邏輯存儲單元從小到大依次為數據塊、區、段和表空間。表空間又由許多段組成段由多個區組成區又由多個數據塊組成。用操作系統指令進展管理作業,物理存儲構造組成文件如下所列:時可利用在線重做日志文件進展必要的恢復動作;6〔2〕LGWR(LogWriter)主要的工作是將RedoLogBuffer里的記錄寫到在線重做日志文件數據回寫到數據文件里面。<2>收集空間:將表空間相鄰的空間進展合并的動作;〔4〕PMON(ProcessMonitor):監視數據庫的用PMON更新控制文件和數據庫文件的文件頭;ARCHIVELOGMode時,AR會在Log數據字典是Oracle數據庫的核心組件,它是由一系列只讀的根底表和視圖組成的,它保系統負責,任何數據庫用戶都無法對數據字典中容進展修改,但是可以查看數據字典的容。為了方便用戶查看數據字典中的信息,數據字典中的信息通過表和視圖的形式組織起來。數據字典中的容都被保存在System表空間中,大多數情況下,用戶可以通過數據字典視圖來獲取與數據庫相關的信息,而不需要訪問數據字典表。用戶所使用的數據字典視圖大致分為三類,并且各種類型的視圖以不同名稱的前綴表示。〔1〕USER視圖是以USER_字符為名稱前綴的數據字典視圖。每個數據庫用戶都有一組屬于自己的視圖,在USER視圖中包含了該用戶模式下所有對象的信息。〔2〕ALL視圖ALL視圖是以ALL_字符為名稱前綴的數據字典視圖。ALL數據字典視圖是USER視圖的擴展,在ALL視圖中記錄了屬于該用戶模式的所有對象的信息以及該用戶可以訪問的屬于其他模式的對象的信息。〔3〕DBA視圖DBA視圖是以DBA_字符為名稱前綴的數據字典視圖。在DBA數據字典視圖中記錄了全部數據庫對象的信息。5.在確定數據塊大小〔DB_BLOCK_SIZE〕的時候,要注意考慮哪些因素.如果行很小,而且訪問是隨機的,則應選用較小的塊;如果行很小,而且訪問是順序的,則應選用較大的塊;如果行很小,而且訪問既是隨機又是順序的,則就應該選用較大的塊;如果行很大,應該選用較大的塊。PctUsed:為一個百分比數值,當BLOCK中已經使用的空間降低到該數值以下時,該BLOCK才是可用的,到達或是超過這個數值的BLOCK是不可用的。-PctFree:用于指定BLOCK中必需保存的最小空間的比例。時進入或離開表、索引或簇的可用清單。使用PctUsed參數設置最小塊的閾值來控制一個數據塊應在何時放回到相應段的可用清單中。例如,所有段的缺省PctUsed設置為40%,因此,當事務處理刪除數據塊中的行時,如果它只有39%是裝滿的,ORACLE將該數據塊放回到相應段的可用清單中。如果你預計很少出可用清單。但是,如果你預計將PctUsed設置為較低的值〔如40〕,使ORACLE不常產生塊在表的可用空間中移進或移出的開銷。使用PctFree參數設置最大的閾值,以控制對將來的行的更新操作保存多少數據塊當*個數據塊使PctFree裝滿時,ORACLE從相應段的可用清單中刪除該塊。如果你預計只有ORACLE填滿每個塊的更多的空間。但是,如果你預計更新操作將會經常增加行的大小,則將PctFreeORACLE為已有行的更新操作保存更多的塊空間;否則,7.SGA主要有那些局部,主要作用是什么.〔2〕共享池:相當于程序高速緩沖區,所有的用戶程序都存放在共享SQL池中;〔3〕重做日志緩沖區:用于緩沖區在對數據進展修改的操作過程中生成的重做記錄。ORACLE11g的數據庫管理一、單項選擇題A.系統全局區域B.效勞器進程C.數據庫作者D.系統監控器2.你用DBCA建立了一個數據庫而沒有保存模版定義。現在你打算用DBCA拷貝整個數據庫和數據,以下哪個是首先要做的.〔D〕A.使用腳本建立新的數據庫,使用DBCA導入數據B.用DBCA模版管理從現有數據庫建立一個新的數據庫,數據也如此導入C.從模版列表中選擇先前建立的數據庫模版并建立數據庫D.從現有數據庫中拷貝數據文件建立新的數據庫,然后利用DBCA拷貝數據83.你正在你的組織緊急事件處置演習中。幾乎沒有時間通報用戶,你就需要盡快地停頓數據庫進程。以下命令哪個是你需要要執行的.〔D〕〔A〕二、填空題DBCA。2.啟動數據庫時,如果裝載數據庫但打不開數據庫可執行STARTUPMOUNT命令。SHUTDOWNABORTDB-NAME的長度最大可為8個字符。7.字符集中的NLS-LANG參數包含3個組成局部:語言、地域、字符集。8.可通過在SQL*Plus中查詢動態視圖VINSTANCE來查看實例的制止操作狀態。三、問答題4個默認的數據庫用戶分別為:SYS、SYSTEM、SYSMAN和DBSNMP。〔1〕SYS,默認密碼為CHANGE_ON_INSTALL,當創立一個數據庫時,SYS用戶將被默認創立并授予DBA角色,所有數據庫數據字典中的根本表和視圖都存儲在名為SYS的方案中,這些根本表和視圖對于Oracle數據庫的操作時非常重要的。為了維護數據字典的真實性,SYS方案中的表只能由系統來維護,他們不能被任何用戶或數據庫管理員修改,而且任何用戶不-〔2〕SYSTEM,默認密碼為MANAGER,與SYS一樣,在創立Oracle數據庫時,SYSTEM用戶被默認創立并被授予DBA角色,用于創立顯示管理信息的表或視圖,以及被各種Oracle數據庫應用和工具使用的容表或視圖;〔3〕SYSMAN是Oracle數據庫中用于EM管理的用戶,如果你不用該用戶,也可以刪除。管理數據庫相關性能的用戶,如果停頓該用戶,則無法提取相關的數據信息。3.給出數據庫正常啟動所經歷的幾種狀態"〔1〕STARTUPNOMOUNT—數據庫實例啟動;〔2〕STARTUPMOUNT-數據庫裝載;〔3〕STARTUPOPEN—數據庫翻開。ORACLE11g的表空間管理一、單項選擇題A.100MB.200MC.300MD.400ME.500MA.V$INSTANCEB.V$DATABASEC.V$TABLESPACED.V$DATAFILES4.下面哪個參數不能在STORAGE子句中進展設置〔B〕A.INITIALB.PCTUSEDC.MINE*TENTSD.NE*T數用于設置撤消數據的保存時間。C.UNDO_RETENTIOND.ROLLBACK_SEGMENTS7.把一個表空間切換到OFFLINE狀態時,可以使用4個參數,不包括以下哪個選項.(D)A.IMMEDIATEB.NORMALC.TEMPORARYD.FORCE8.在設置撤消表空間的自動管理功能時,DBA通過使用相關的初始化參數對自動撤消表空間進展配置。下面的4個參數中,哪一個不是與自動撤消管理功能相關的參數.(D)C.UNDO_RETENTIOND.TRANSACTIONS二、填空題2.表空間是Oracle數據庫中數據的邏輯組織,它存儲段的集合,在操作系統級映到一個或多3.創立表空間時Oracle允許指定后來創立的,并分配給表空間的對象的默認存儲參數。其中INITIAL參數設置創立時分配給每一個新對象的初始區間的大小。4.創立表空間時,創立表空間的對象的默認存儲參數中,INITIAL參數和NE*T參數通常大5.DBA-TS-QUOTAS動態視圖中列舉了所有用戶的表空間配額。6.DBA_FREE_SPACE7.表空間的管理類型分為本地管理表空間〔LMT〕和數據字典管理表空間〔DMT〕。8.一個表空間具有離線〔OFFLINE〕、在線〔ONLINE〕、只讀〔READONLY〕和讀寫〔READWRITE〕。9.創立UNDO表空間時,所使用的表空間管理方式為本地管理表空間,并且盤區的管理方式只允許使用臨時表空間方式。三、問答題1.TEMPORARY表空間和PERMANENT表空間的區別是什么"用戶需要保存的任何段和一個會話或事務的應用數據都保存在永久性表空間,如SYSTEM和SYSAU*表空間。從Oracle11g開場,SYSTEM表空間默認為本地化管理,表空間第一個數據文件中的位圖段管理所有的空間使用。個臨時表空間,因為僅只有一個默認的臨時表空間可被賦給用戶。為解決潛在的性能瓶2.本地管理表空間和字典管理表空間的含義與特點是什么.〔1〕字典管理表空間〔DMT〕Oracle使用SYS.FET$表來記錄空閑空間,使用SYS.UET$表來記錄已經使用過的空間。當SYS.FET$和SYS.UET$表。在特定的時間,只有一個進程能獲得STenqueue,這通常會引起競〔2〕本地管理表空間〔LMT〕使用LMT,每個表空間使用表空間數據文件中的一個bitmap構造來管理空閑和已使用的-〔3〕不用定期連接空閑空間,LMT會自動跟蹤相鄰的空閑空間。3.什么是自動撤消管理,它有什么好處.自動撤銷管理允許DBA指定撤銷信息在提交之后需要保存的時間,以防止在長時間的查UNDO_RETENTION參數來實現這撤銷日志。無需定義和管理回滾段,就可以簡單地指定一個撤銷表空間而減輕Oracle的負擔。自動撤銷管理需要一個當地管理撤銷表空間,這一表空間用于存放撤銷段。所需要的建立一個撤銷表空間,設置UNDO_MANAGEMENT=AUTO,然后與數據庫進展連接。當啟動4.如何創立非標準數據塊表空間.如下例:由于我們創立的塊大小與系統默認的塊大小不一致會報ora-29339塊的大小為8K,所以我以16為例創立一個非標準的表空間.ORACLE11g的表管理一、單項選擇題A.唯一鍵標識的列可以為空B.主鍵標識的列可以為空C.唯一鍵標識的列只可以為單列D.主鍵標識的列只可以為單列A.1ST_IDB.CUST*C.ADDRESS1D.E*CEPTION鍵字.〔D〕4.SQL語言中,刪除一個表的命令是〔B〕A.DELETEB.DROPC.CLEARD.REMOREA.實體完整性約束B.參照完整性約束C.用戶自定義完整性約束D.關鍵字完整性約束6.如果要修改表的構造,應該使用SQL語言的命令〔C〕A.UPDATETABLEB.MODIFYTABLEC.ALTERTABLED.CHANGETABLE7.如果各類元組在表的主鍵上取值為空值,則它違反了關系的______A______完整性約束8.下面關于主鍵約束的描述正確的選項是〔A〕A.主鍵約束用于唯一確實定表中的每一行數據。B.在一個表中,最多只能有兩個主鍵約束。D.主鍵約束不能由一個單列組成。-CREATETABLESales11.雇員的情況和其所工作的部門存儲在表Employee和表Depart一樣但雇員代碼不同。除此之外,在一個部門里,可以有多個雇員。CREATETABLEEmployeeCREATETABLEDepartment關于這二表,下述那條述為真.〔D〕D.通過在表Employee的屬性DeA.主鍵字段輸入的數據不允許重復B.主鍵字段的數據,允許輸入空值C.假設主鍵由多個鍵組合而成,則*個主鍵字段可能存在重復值D.主鍵字段可以是字符數據類型A.PCTFREEB.PCTUSEDC.MA*E*TENTSD.PCTINCREASEA.CREATETABLEtab1OFmyOBJ;B.CREATETABLEmyOBJOFtab1;C.CREATETABLEtab1ASmyOBJ;D.CREATETABLEtab1TYPEOFmyOBJ;DECLARE局部聲明了一ALTERTABLEtab1MODIFY〔col1〔NUMBER〔5,2〕〕;二、填空題2.Oracle中DESCRIBE命令可以快速掌握表及其中所有表列的概要。3.表的系統信息包括表的構造和表的屬性等信息,可以使用4.ROWID實際上保存的是記錄的物理地址,因此通過ROWID來訪問記錄可以獲得最快的訪5.為Student表手動分配存儲空間,并且大小由NE*T參數設置,則應使用的語句為ALTERTABLEStudentALLOCATEE*TENT;如果為Student表手動分配一個大小為128KB的新盤區,則應使用的語句為ALTERTABLEStudentALLOCATEE*TENT(SIZE128K)。6.填寫以下語句,使其可以為class表的ID列添加一個名為PK_CLASS_ID的主鍵約束。ALTERTABLEclassAddCONSTRAINTPK_CLASS_IDPRIMARYKEY(ID)。7.在STORAGE子句中可以設置6個存儲參數。其中,INITIAL指定為表中的數據分配的第一個盤區大小;NE*T指定為存儲表中的數據分配的第二個盤區大小;PCTINCREASE指定從第二個盤區之后,每個盤區相對于上一個盤區的增長百分比;MINE*TENTS指定允許為表中的數據所分配的最小盤區數目;MA*E*TENTS指定允許為表中的數據所分配的最大盤區數目。-empno為主關鍵字,deptid為外鍵,引用表DEPT的主鍵。該表創立語句CONSTRAINTFK_DEPTNOFOREIGNKEY(DEPTNO)REFERENCESDEPT(DEPTID)。三、問答題用戶是用來連接數據庫對象。而模式用是用創立管理對象的。模式跟用戶在oracle是一〔1〕DESCRIBE命令;〔2〕DBMS_METADATA.GET_DDL包。3.介紹創立表時常用的數據類型money:貨幣型4.簡要介紹數據庫表的約束和主要類型、作用〔1〕實體完整性約束〔每一行反響不同的實體〕通過索引,唯一約束。主鍵約束或標識屬性來表達;〔2〕域完整性約束〔指給定列的輸入有效性〕通過限制數據類型,檢查約束,輸入格式,外鍵約束,默認值,非空等表達;〔3〕引用完整性約束〔表之間的聯系〕〔4〕自定義完整性約束〔根據用戶的需求〕ORACLE11g的數據查詢一、單項選擇題-1.ORDERBY的作用是〔C〕A.查詢輸出分組B.設置查詢條件C.對記錄排序D.限制查詢返回的數據行2.設有一個關系:DEPT〔DNO,DNAME〕,如果要找出倒數第三個字母為W,并且至少包含4個字母的DNAME,則查詢條件子句應寫成WHEREDNAMELIKE〔B〕A.‘__W_%’B.‘_%W__’C.‘_W__’D.‘_W_%’3.成績關系如以下圖所示。執行SQL語句:SELECTCOUNT〔DISTINCT**〕FROM成績WHERE分數>60查詢結果中包含的元組數目是〔B〕4.基于"學生-選課-課程"數據庫中的三個關系:S〔S*,SNAME,SE*,AGE〕,SC〔S*,C*,GRADE〕,C〔C*,AME,TEACHER〕,假設要求查找選修"數據庫技術"這門課程的學生和成績,將使用關系〔D〕5.基于"學生-選課-課程"數據庫中的三個關系:S〔S*,SNAME,SE*,AGE〕,SC〔S*,C*,GRADE〕,C)〔C*,AME,TEACHER〕,假設要求查找中第一個字為'王'的學生號和。下面列出的SQL語句中,哪個〔些〕是正確的.〔B〕Ⅰ.SELECTS*,SNAMEFROMSWHERESNAME=ˊ王%ˊⅡ.SELECTS*,SNAMEFROMSWHERESNAMELIKEˊ王%ˊⅢ.SELECTS*,SNAMEFROMSWHERESNAMELIKEˊ王_ˊ6.有如下兩個關系,其中雇員信息表關系EMP的主鍵是雇員號,部門信息表關系DEPT的EMP部門號部門號山DEPT請問執行結果中有〔C〕條記錄。7.以下函數不屬于集函數的是〔D〕A.使用主鍵約束B.使用缺省約束C.使用外鍵約束D.使用檢查約束A.MA*B.MINC.COUNTD.TO_CHAR11.HAVING子句的作用是〔A〕A.查詢結果的分組條件B.組的篩選條件C.限定返回的行的判斷條件D.對結果集進展排序12.查詢一個表的總記錄數,可以采用〔C〕統計函數。A.AVG(*)B.SUM(*)C.COUNT(*)D.MA*(*)A.AGEISNULLB.AGEISNOTNULLC.AGE=NULLD.NOT(AGEISNULL)二、填空題1.集合運算符UNION實現了集合的并運算,操作INTERSECT實現了對集合的交運算,而MINUS則實現了減運算。2.如果只需要返回匹配的列,則應當使用INNERJOIN連接。3.如果使用逗號分隔連接查看兩個表,其中一表有20行,而另一表有50行,如果未使用WHERE子句,則將返回1000行。4.外連接的三種類型是LEFTJOIN、RIGHTJOIN和FULLJOIN。5.DISTINCT關鍵字用來限定檢索結果中只顯示那些不冗余的數據,該關鍵字使用在SELECT6.在orderby子句中,ASC關鍵字表示升序排列,DESC關鍵字表示降序排列。-7.在連接操作中,如果左表和右表中不滿足連接條件的數據都出現在結果中,則這種連接是FULLJOIN。8.GROUPBY的作用是實現分組查詢。9.標準的SQL語言語句類型可分為:數據操縱語句〔DML〕、數據定義語句〔DDL、數據控制語句〔DCL〕和數據查詢語句〔DQL〕.三、問答題1.簡要介紹SQL語言的特點。中的地位就猶如英語在世界上的地位一樣,它是數據庫系統的通用語言用戶可以利用它幾條語句。SQL已經被ANSI〔美國國家標準化組織〕確定為數據庫系統的工業標準。關系型數據庫的主要功能都是通過SQL語言來實現的。一般來說,SQL語言按照功能可以分為4大類:數據查詢語言(DQL)、數據定義語言〔DLL〕、數據操作語言〔DML〕和數據控制語言〔DCL〕。數據查詢語言DQL主要用來查詢數據,數據定義語言DDL主要用來建立、刪除和修改數據對象,數據操縱語言DML主要完成數據操作的命令如插入刪除修改數據等操作,數據控制語言DCL主要用來控制對數據庫的訪問,效勞器的關閉、啟動等。SQL語言集DQL、DLL、DML、DCL于一體,可以實現數據庫生命同期的全部活動。數據庫中的數據可以用SQL語言來進展讀取、更新、增加和刪除記錄。SQL構造比擬簡單,其命令總數不超過30個,其中常用命令包括:CREATETABLE、ALTERTABLE、DROPTABLE、INSERT、UPDATE、SELECT、DELETE。SQL語句對大小寫不敏感,但其關鍵詞常用大寫SQL語言簡單易學、風格統一,利用簡單的幾個英語單詞的組合就可以完成所有的功能,幾乎可以不加修改地嵌入到如VB、PB這樣的前端開發平臺上,利用前端工具的計算能力和SQL的數據庫操縱能力,可以快速建立數據庫應用程序。在SQL語言中訪問數據表是通過“用戶名.數據表〞的形式來進展的。比方在Oracle數據連接類型可分為三種:連接、外連接和穿插連接。連接(INNERJOIN)使用比擬運算符進展表間*(些)列數據的比擬操作,并列出這些表中與連接條件相匹配的數據行。根據所使用的比擬方式不同,連接又分為等值連接、自然連接和不等連接三種。外連接分為左外連接(LEFTOUTERJOIN或LEFTJOIN)、右外連接(RIGHTOUTERJOIN或RIGHTJOIN)和全外連接(FULLOUTERJOIN或FULLJOIN)三種。與連接不同的是,外連接不只列出與連接條件相匹條件的數據行。穿插連接(CROSSJOIN)沒有WHERE子句,它返回連接表中所有數據行的笛卡爾積,其結果集合中的數據行數等于第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數。3.設有關系EMP〔ENO,ENAME,SALARY,DNO〕,其中各屬性的含義依次為職工號、、工資和所在部門號,以及關系DEPT〔DNO,DNAME,MANAGER〕,其中各屬性含義依次為部門號、部門名稱、部門經理的職工號。試用SQL語句完成以下查詢:〔3〕請用SQL語句將“銷售部〞的那些工資數額低于600的職工的工資上調10%。〔1〕SELECTAVG(SALARY)FROMEMPWHERESALARY>=600〔2〕SELECTB.DNAMEFROMEMPA,DEPTBWHEREA.DNO=B.DNOANDA.ENO=’001’〔3〕UPDATEASETA.SALARY=A.SALARY*1.1FROMEMPA,DEPTBWHEREA.DNO=B.DNOANDB.DNAME=’銷售部’ANDA.SALARY<6004.有學生關系S〔SNO,SNAME,AGE,DNO〕,各屬性含義依次為**,、年齡和所在系號;學生選課關系SC〔SNO,O,SCORE〕,各屬性含義依次為**、課程號和成績。〔1〕分析以下SQL語句:SELECTSNOFROMSCWHERESCORE=〔SELECTMA*〔SCORE〕FROMSCWHEREO=’002’〕請問上述語句完成了什么查詢操作.按系號列出各系學生的平均成績。〔2〕SELECTDNO,AVG(SCORE)FROMSA,SCBWHEREA.SNO=B.SNOGROUPBYDNO〔3〕SELECTSNOFROMSWHERES.NOIN(SELECTA.SNOFROMSCA,SCBWHEREA.O=001ANDB.O=002ANDA.SNO=B.SNO)-〔1〕請查詢出技術等級大于2的工程代號和工程名稱,同時按工程等級降序排序。〔2〕請查詢出工程技術人員為“三〞,工程代號為“A001〞的工程日報酬。〔3〕請查詢出可以參加編號為“A001〞的工程的工程技術人員代號和。〔4〕請查詢出為“三〞的工程技術人員可以參加的工程代號和工程名稱。WHEREsgrade>2ORDERBYprjnameDESC〔2〕SELECTdaypayFROMempA,payBWHEREA.sno=B.snoANDsname=’三’ANDprjno=’A001’〔3〕SELECTsno,snameFROMempA,payBWHEREA.sno=B.snoANDprjno=’A001’WHEREA.sno=B.snoANDB.prjno=C.prjnoANDsname=’三’ORACLE一、單項選擇題1.以下中哪個不是DML命令.〔B〕A.外部鍵約束能防止刪除行如果刪除行違反外部鍵中定義的關系的話B.外部鍵約束確保在刪除行之前對數據表有正確的權限C.如果只有一行的被刪除,該外部鍵約束將被忽略D.外部鍵對刪除表述沒有影響3.用來插入數據記錄的工具是〔D〕。A.SQLPLUSB.DBCAC.SYSCONFIGD.DBMS4.有如下兩個關系,其中雇員信息表關系EMP的主鍵是雇員號,部門信息表關系DEPT的主鍵是部門號。EMP部門號部門號山馬林生敏DEPT假設執行下面列出的操作,哪個操作不能成功執行(C)。A.從DEPT中刪除部門號=‘03’的行C.將DEPT中部門號=‘02’的部門號改為‘10’D.將DEPT中部門號=‘01’的地址改為‘5號樓’5.SQL語言集數據查詢、數據操作、數據定義和數據控制功能于一體,語句INSERT、DELETE、UPDATE實現哪類功能(B)。6.假設用如下的SQL語句創立了一個表S:CREATETABLES〔S*CHAR〔6〕NOTNULL,SNAMECHAR〔8〕NOTNULL,SE*CHAR〔2〕,AGEINTEGER〕今向S表插入如下行’,NULL,NULL〕7.用于刪除表中所有數據行的命令是〔B〕A.DELETETABLEB.TRUNCATETABLEC.DROPTABLED.ALTERTABLE8.假設ABC中的所有列均為字符數據類型,A列的默認值為“VA〞,同時還有B列和C列,則執行以下SQL語句:INSERTABC〔A,C〕VALUES〔‘V’,‘NULL’〕后,以下的說法哪A.插入B列的值為字符‘NULL’B.插入A列的值為字符VAC.插入B列的值空值D.插入C列的值空值9.如果要設置SQL*PLUS每頁打印的數值,則可以使用如下哪個命令〔C〕A.SETPAGEB.PAGESIZEC.SETPAGESIZED.SIZEA.INSERT,UPDATEB.UPDATE,INSERTC.DELETE,UPDATED.CREATE,INSERTINTO11.在創立序列的過程中,以下〔A〕選項指定序列在到達最大值或最小值后,將繼續從頭二、填空題1.序列是一種可被多個用戶使用的用于產生一系列唯一數字的數據庫對象。尤其適合多用戶環境中,可以生成唯一的序列號而沒有磁盤I/O或事務處理鎖定開銷。3.使用序列可以生成一列整數值,這些整數值可以用作主鍵約束。-4.數據操作語言允許用戶對數據庫中的數據進展查詢、插入、更新和刪除等操作,相應的命令是SELECT、INSERT、UPDATE和DELETE等。5.一般情況下,merge語句包括了兩個數據操縱命令,如果合并條件成立則執行UPDATE命令,如果合并條件不成立則執行INSERT命令。6.如果確定要刪除一個大表的全部記錄,可以執行TRUNCATE命令,它可以釋放占有的數7.要設置SQL*PLUS顯示數字時的格式可以使用NumFormat命令,而要設置*個數字列的顯示格式要使用Column命令。8.使用SAVE命令可以將緩沖區中的SQL命令保存到一個文件中,并且可以使用START命令運行該文件。9.當設置多個列的顯示屬性后,如果去除設置的顯示屬性,可以使用命令CLEAR,當要去除*列具體的顯示屬性時,需要使用命令OFF。10.如果需要向表中插入一批已經存在的數據,可以在INSERT語句中使用SELECT語句。11.用SELECT進展模糊查詢時,可以使用_通配符_或__百分號_匹配符,模糊查詢只能針對12.下面語句創立一個序列對象,該序列對象的開場數為2,每次遞增2,當大于1000后,序列值重新返回到2,在空白處填寫適當的代碼,完成上述要求。三、問答題1.簡述DELETE語句與TRUNCATE語句的差異。然后根據表構造重新建立它,而delete刪除的是記錄,并沒有嘗試去修改表。這也是為什么清空的表插入數據時,數據庫會記住前面產生的AUTOINCREMENT序列,并且繼續利用它對AUTOINCREMENT2.有如下兩個關系,其中雇員信息表關系EMP的主鍵是雇員號,部門信息表關系DEPT的EMP〔EMPNO〕(EMPNAME)山部門號(DEPTID)工資(SALARY)DEPT敏部門號(部門號(DEPTID)部門名地址(ADDRESS)(DEPTNAME)執行語句INSERTEMPVALUES(‘020’,’王五’,’05’)會出現什么錯誤.如何實現將部門號為“01〞的部門刪除.〔1〕DEPT表中的部門號(DEPTID)沒有“05〞的數據,外鍵部門號(DEPTID)的限制所致。〔2〕先刪除表EMP中部門號為“01〞的數據。3.一個員工表TBEmp,包含以下字段namememo〔1〕創立員工表TBEmp〔3〕刪除表的memo字段〔6〕查詢有工資的員工信息〔7〕查詢名字中沒有ac的員工和出生日期-〔10〕查詢拿最高工資的員工信息〔13〕更新表格,在所有員工的后面加上‘emp’〔16〕取出員工的前三個字符、第三個字符、長度〔18〕使用兩種方式刪除所有員工〔19〕刪除TBEmp表格PRIMARYKEY,〔6〕SELECT*FROMTBEmpWHERESALARYISNOTNULL〔7〕SELECTname,birthdayFROMTBEmpWHEREnameNOTIN(SELECTnameFROMTBEmpWHERENAMELIKE‘%ac%’)〔8〕SELECT*FROMTBEmpWHERESALARYBETWEEN900AND2300〔9〕SELECTCOUNT(1)FROMTBEmpWHREse*=’female’〔10〕SELECT*FROMTBEmpWHREIDIN(SELECTIDFROMTBEmpWHERESALARY=(SELECTMA*(SALARY)FROMTBEmp))〔11〕SELECTid,name,birthdayFROMTBEmpORDERBY〔12〕UPDATETBEmpSETbirthday=’1977-2-1’,SALARY=SALARY+200WHEREname=’Jack’〔13〕UPDATETBEmpSETid=id+’emp’〔14〕DELETETBEmpWHEREidIN〔15〕SELECTid+nameASnewnameFROMTBEmp〔16〕SELECTSUBSTR(name,1,3),SUBSTR(name,3,1),LEN(name)FROMTBEmp〔17〕CREATETABLEtbemp2ASSELECT*FROMtbemp〔18〕DELETETBEmp;TRUNCATETABLETBEmp〔19〕DROPTABLETBEmp一、單項選擇題1.下面有關索引的描述正確的選項是〔B〕A.不可以在多個列上創立復合索引。B.可以在多個列上創立復合索引。C.索引列中的數據不能重復出現。D.索引列中的數據必須是數值型。2.如果創立的表其主鍵可以自動編號,則應該為主鍵創立的索引是〔A〕索引。A.反向索引B.B樹索引C.位圖索引D.基于函數的索引3.查看下面語句為〔C〕索引.CREATEINDE*TABLESPACEusersSTORAGE(INITIALA.全局分區索引B.位圖索引C.復合索引D.基于函數的索引4.假設emp表包含一個婚姻狀況的字段,則應該在該字段上創立〔D〕索引。A.B樹唯一索引B.B樹不唯一索引C.基于函數的索引D.位圖索引STUDENTwhereSTUDENT表的SNAME列創立〔C〕索引。A.B樹唯一索引B.B樹不唯一索引C.基于函數的索引D.位圖索引6.下面關于約束與索引的說法不正確的選項是〔D〕A.在字段上定義PRIMARYKEY約束時會自動創立B樹唯一索引B.在字段上定義UNIQUE約束時會自動創立一個B樹唯一索引C.默認情況下,禁用約束會刪除對應的索引,而激活約束會自動重建相應的索引D.定義FOREIGNKEY約束時會創立一個B樹唯一索引。7.假設在一個表的3個字段NAME、SE*和BIRTH中分別保存、性別和出生年月數據,則應-當為這三個字段分別創立〔C〕索引。A.全部創立B樹索引B.全部創立位圖索引C.分別創立B樹索引、位圖索引和位圖索引D.分別創立B樹索引、位圖索引和給予函數的索引8.使用ALTERINDE*…REBUILDER語句不可以執行下面的哪個任務.〔C〕A.將反向鍵索引重建為普通索引B.將一個索引移動到另一個表空間C.將位圖索引更改為普通索引D.將一個索引分區移動到另一個表空間A.表是否具有索引不會影響到所使用的SQL的編寫方式B.在為表創立索引后,所有的查詢操作都會使用索引D.在為表創立索引后,Oracle優化器將根據具體情況決定是否采用索引。10.列上創組合索引〔也稱為___B___〕是在表的多個建的索引。二、填空題1.索引對于查詢的結果沒有任何影響,但能加快對表執行SQL語句的速度,相應地也就提高2.在Oracle的索引類型中,最古老,同時也是最常用的就是標準B樹索引,在效率上通常會3.如果表中*列的基數比擬低,則應該在該列上創立位圖索引。4.如果要獲得索引的使用情況,可以通過查詢V$OBJECT_USAGE視圖;而要獲知索引的當前狀態,可以查詢INDE*_STATS視圖。5.在B樹索引過在索引中保存排過序的索引列值與相對應記錄的ROWID來實現快速查找。6.在Oracle11g中,可以使用CREATEINDE*語句創立索引。三、問答題在關系型數據庫中,索引是一種非常重要的模式對象,是一種與表有關的數據庫構造,它可以用來快速地尋找那些具有特定值的記錄,使對應于表的SQL語句執行得更快。索引的作用相當于圖書的目錄,例如想要在一本書中找到有關方面的知識時,可以采用兩種方法:一種方法是從書的開頭向后逐頁翻閱,這樣需要翻閱全書才能找到所需要的知識容;另一種方法是從書的目錄中查找所需要的知識主題,然后根據目錄中的頁碼找到所需要的知識容。非常明顯,采用第二種方法要比第一種方法查找要快。同樣,如果一個表匯總包含很多記錄,當沒有建立索引,對表進展查詢時,第一種方法執行查詢時必須從第一個記錄開場掃描整個表的所有記錄,直至找到符合要求的記錄。表里面的記錄數量越多,這個操作的代價就越高。第二種方法通過在表中建立類似于目錄的索引,然后在索引中找到符合查詢條件的索引值,最后就可以通過保存在索引中的ROWID〔相當于頁碼〕快速找到表中對應的記錄,而無需掃描任何記錄即可迅速得到目標記錄所在的位置,這就是索引的作用。如果表有1000個記錄,通過索引查找記錄至少要比順序掃描記錄快100倍。在Oracle中可以創立多種數據類型的索引,以適應各種表的特點,常用的索引類型有B樹索引、反向鍵索引、位圖索引、基于函數的索引、簇索引、全局和局部索引等。2.使用索引查詢一定能提高查詢的性能嗎.為什么.索引需要空間來存儲,也需要定期維護,每當有記錄在表中增減或索引列被修改時INSERT,DELETE,UPDATE將為此多付出4,5次的磁盤用索引查詢不一定能提高查詢性能,索引圍查詢(INDE*RANGESCAN)適用于兩種情況:〔1〕基于一個圍的檢索,一般查詢返回結果集小于表中記錄數的30%宜采用;索引就是為了提高查詢性能而存在的,如果在查詢中索引沒有提高性能,只能說是用錯了索3.ORACLE都有什么索引.分別適用于什么情況.常用的索引類型有B樹索引、反向鍵索引、位圖索引、基于函數的索引、簇索引、全局〔1〕B樹索引:適合與大量的增、刪、改,不能用包含OR操作符的查詢;適合高基數的列〔唯一值多〕,典型的樹狀構造;每個結點都是數據塊;大多都是物理上一層、兩層或三層不定,邏輯上三層;葉子塊數據是排序的,從左向右遞增;在分支塊和根塊中放的是索引過來,對于組合鍵,列的順序被保存,但每個列的字節都作了反向。反向鍵索引有它局限性:如果在WHERE語句中,需要對索引列的值進展圍性的搜索,如BETWEEN、<、>等,其反向鍵索引無法使用,此時,Oracle將執行全表掃描;只有對反向鍵索引列進展<>和=的比擬操作時,其反向鍵索引才會得到使用;〔3〕位圖索引:適合與決策支持系統;做UPDATE代價非常高;非常適合OR操作符的查詢;基數比擬少的時候才能建位圖索引;〔4〕基于函數的索引:基于函數的索引只是常規的B樹索引,但它是基于一個應用于表數據的函數,而不是直接放在表中數據本身上的,因此可以把基于函數的索引看成是一個虛擬列上的索引,當然這里的函數可以是系統函數,也可以是用戶自定義的函數。為了在自己的模式中的表上創立基于函數的索引,必須有系統特權QUERYREWRITE;為了在其他模式中的表上創立基于函數的索引,必須有系統特權GLOBALQUERYREWRITE;〔5〕簇索引:用戶創立簇必須具有CREATECLUSTER系統權限,如果想在其他模式中創立簇,還必須具有CREATEANYCLUSTER系統權限。創立簇之后,用戶可以在簇中創立表,也就是簇表〔EMP和DEPT表〕,在將數據行插入簇表之前,還必須創立簇索引;-〔6〕全局和局部索引:通常在對表進展分區時,也會將對應的索引進展分區,分區索引其他分區索引的使用。分區的表可以具有未分區的索引,未分區的表可以具有分區的索引,索引與表是相互獨立的模式對象,對索引進展分區和對表進展分區目的都是為了更加容易管理與維護。全局索引就是在全表上創立索引,它可以為索引創立自己的分區。局部索引就是在各個分區表上創立的索引。4.簡要介紹數據庫中的位圖索引和B樹索引.〔1〕B樹索引是Oracle中默認的最常用的索引,缺省條件下建立的索引就是這種含了關鍵字和給表中每個匹配行的ROWID。人版都支持位圖索引,但標準版不支持。位圖索引是為數據倉庫/在線分析查詢環境設計的,在此所有查詢要求的數據在系統實現時根本不知道。位圖索引特別不適用于OLTP系統,如果系統中的數據會由多個并發會話頻繁地更新,這種系統也不適用位圖索引。5.簡述反向鍵索引的工作原理如果索引列的數據以嚴格的有序的方式插入,則B樹索引樹將變成一棵不對稱的"歪樹",我們使用一個傳統的B樹索引,這些值就可能會放到同一個索引塊上,這樣就會加劇這一葉子結點塊的熱塊競爭。如果在將數據放在索引中之前,將先把所存儲數據的字節反轉,這樣原本可能在索引中相鄰放置的值在字節反轉之后就會相距很遠,通過反轉字節,對索引擬對稱,從而提高表的查詢性能,如圖2所示:列的順序被保存,但每個列的字節都作了反向。反向鍵索引有它局限性:如果在WHERE語句中,需要對索引列的值進展圍性的搜索,如BETWEEN、<、>等,其反向鍵索引無法使用,此時,Oracle將執行全表掃描;只有對反向鍵索引列進展<>和=的比擬操作時,其反向鍵一、單項選擇題1.視圖定義是〔D〕A.一個基表中導出的基表B.一個基表中導出的虛表C.一個或幾個基表或視圖中導出的基表D.一個或幾個基表或視圖中導出的虛表2.在視圖上不能完成的操作是(C)A.更新視圖C.在視圖上定義新的根本表D.在視圖上定義新視圖3.在根本SQL語言中,不可以實現(D)C.查詢視圖和基表D.并發控制4.以下關于關系數據庫視圖的說法中,哪些是正確的"(A)C.Ⅱ、Ⅲ、Ⅳ和ⅤD.都正確5.以下模式對象不會占用實際的存儲空間是〔D〕6.查看視圖中哪些字段可以更新應查詢〔D〕視圖A.DBA_VIEWSB.DBA_CLU_COLUMNSC.DBA_OBJJECTSD.DBA_UPDATABLE_COLUMNA.視圖數據只能用來查詢和瀏覽,不能進展修改、插入和刪除B.可以修改和刪除視圖的數據,但是這些數據不更新到數據庫表中C.可以在查詢分析器中使用INSERT/UPDATE/DELETE等SQL語句對視圖進展操作-D.由于視圖是數據庫基表數據的復制,因此刪除視圖中數據行,不會影響到基表的數據。As以下評述正確的選項是〔A〕B.語法錯誤:第一行的列名不能這樣指定二、填空題1.視圖是一個表示表的數據的數據庫對象,它允許用戶從一個表或一組表過一定的查詢語句2.可以通過在SQL*PIUS中查詢Oracle數據庫字典的動態視圖是V$NLS-PARAMETERS。3.DBA_DATA_FILES視圖用來檢查數據文件的大小,DBA_FREE_SPACE視圖用來判斷4.當對視圖進展UPDATE、INSERT和DELETE操作時,為了保證被操作的行滿足視圖定義中子查詢語句的謂詞條件,應在視圖定義語句中使用可選擇項WITHCHECKOPTION。5.在不為視圖指定列名的情況下,視圖列的名稱將使用表列的名稱。三、問答題視圖是基于一個表或多個表或視圖的邏輯表,本身不包含數據,通過它可以對表里面的對其中所引用的根底表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當前或其它數據庫的一個或多個表,或者其它視圖。分布式查詢也可用于定義使用多個異類源數據的視圖。如果有幾臺不同的效勞器分別存儲組織中不同地區的數據,而您需要將這些效勞器上相似構造的數據組合起來,這種方式就很有用。視圖中沒有數據,僅僅是一條SQL語句,查詢語句檢索出來的數據以表的形式表示;視圖的定義存儲在數據字典中,視圖的查詢基于表;視圖沒有直接的相關物理數據,不能像表3.舉例說明WITHCHECKOPTION的作用(WITHCHECKOPTIONwhere子句違規〞。進展插入、修改、刪除操作時,DBMS會自動加上條件〔在本例中加的條件是:sid=2〕。4.創立一個視圖時,使用SELECT語句如下:SELECTCOUNT(*)FROM商品信息,為什么不能更新這個視圖.如何查看該試圖是否可以更新.〔1〕表商品信息無COUNT(*)對應的字段。〔2〕視圖的更新能唯一地有意義地轉換成對相應根本表的就可以更新。其中S,C,SC分別代表學生,課程及學生-課程。S*,SN,SA,SG,C*PC*,G分別表示**,學生,年齡,系別,課程號,課程名,預修課號,成績等,以上述模式為根底做一個視圖VSC〔S*,SN,SA〕,該視圖表示計算機系學生的視圖。CREATEVIEWASVSC〔S*,SN,SA〕SELECTA.S*,SN,SAFROMSA,CB,SCCWHEREA.S*=C.S*ANDB.C*=C.C*ANDPC*=’計算機’-第十章PL/SQL根底一、單項選擇題2.在PL/SQL中,以下(D)變量名合法。A.1VARB."var_abC.$ABCD.ROS$$_14.PL/SQL語言的根本邏輯構造不包括〔A〕。5.在以下的表的顯示結果中,以下語句的執行結果是USERIDUSERNAMEUSERNAMEGRADE執行語句rownum<=1);6.以下哪個語句允許檢查UPDATE語句所影響的行數.(B)A.SQL%FOUNDB.SQL%ROWCOUNTC.SQL%COUNTD.SQL%NOTFOUND8.聲明%TYPE類型的變量時,效勞器將會做什么操作.〔A〕A.為該變量檢索數據庫列的數據類型B.復制一個變量C.檢索數據庫中的數據D.為該變量檢索列的數據類型和值9.如何終止LOOP循環,而不會出現死循環.〔D〕A.在LOOP語句中的條件為FALSE時停頓。B.這種循環限定的次數,它會自動終止循環。C.E*ITWHEN語句中的條件為TRUED.E*ITWHEN語句中的條件為FALSE10.有一段PL/SQL程序如下所示:LOOPE*ITWHENvar1>12;DBMS_OUTPUT.PUT_LINE(‘A’);ENDLOOP;A.AB.AAC.AAD.AAA11.DBMS_LOB數據包提供的〔D〕,返回LOB值的長度。A.LENGTHB.SUBSTRC.INSTRD.GETLENGTH12.PL/SQL為存耗盡時,預定義了〔C〕異常。A.NO_DATA_FOUNDB.MEMORY_ERRORC.STORAGE_ERRORD.NO_MEMEORY_FOUND13.在PL/SQL中,在執行任何DML語句前,SQL%NOTFOUND的值為〔CA.NOTFOUNDB.TRUEC.NULLD.FALSE二、填空題1.PL/SQL程序塊主要包含3個主要局部:聲明局部、可執行局部和異常處理局部。-2.使用顯式游標主要有4個步驟:聲明游標、翻開游標、檢索數據、關閉游標。3.你剛剛編譯了一個PL/SQLPackage但是有錯誤報道,使用SHOWERRORS命令顯示出錯信4.查看下面程序塊,DBMS_OUTPUT將顯示什么結果.N。DECLAREBEGINDECLAREBEGINEND;DBMA_OUTPUT.put_line(vaEND;DECLAREBEGINIFvar1>500THENELSEIFvar1>1000THENELSEENDIF;END;6.自定義異常必須使用RAISE語句引發。三、問答題1.PL/SQL提供了哪些循環構造.舉例說明1))LOOP語句格式:LOOP執行語句;E*ITWHENENDLOOP;v_Sum:=v_Sum+v_i;DBMS_OUTPUT.PUT_LINE(v_Sum);2))WHILE語句格式:-v_Sum:=v_Sum+v_I;WHENWHENWHENENDCASEWHENWHENWHENEND2.關鍵字%TYPE和%ROWTYPE的含義和作用是什么.如果聲明的變量是直接映射到數據庫的*一列上,則就可以使用%type關鍵字將變量錨定當數據類型發生變化時,此方法顯得非常靈活。如果更改了列的長度,則錨定到該列上的所有變量都會自動更改其長度;我們得手動將v_enam更改為emp.ename一樣的數據當我們使用錨定類型后,變量就會自動進展調整。%rowtype與%type相似;不過它將變量錨定到表的所有列,而不是錨定到*一列;3.如何處理用戶自定義的異常.使用RAISE_APPLICATION_ERROR函數,該函數是將應用程序專有的錯誤從效勞器端轉到達客戶端應用程序(其他機器上的SQLPLUS或者前臺開發語言)。一、單項選擇題2.以下哪個語句可以在SQL*PLUS中直接調用一個過程.〔D〕A.RETURNB.CALLC.SETD.E*EC-A.INB.INOUTC.OUTIND.OUT4.如果存在一個名為TEST的過程,它包括3個參數:第一個參數為P_NUM1,第二個參數為P_NUM2,第三個參數為P_NUM3。3個參數的模式都是IN,P_NUM1參數的數據類型是NUMBER,P_NUM2參數的數據類型是VARCHAR2,P_NUM3參數的數據類型是VARCHAR2,以下哪一個是該過程的有效調用.〔D〕A.TEST(1010,P_NUM3>=’abc’,P_num2>=’bcd’)B.TEST(P_NUM1>=1010,P_num2=>’abc’,’bcd’)C.TEST(P_NUM1=>1010,’abc’,’bcd’)D.上述都對5.函數頭部中的RETURN語句的作用是〔A〕A.聲明返回的數據類型B.聲明返回值的大小和數據類型D.函數頭部不能使用RETURN語句6.如果在程序包的主體中包括了一個過程,但沒有在程序包規中聲明這個過程,則它將會被認為是〔D〕7.對于下面的函數,哪個語句能成功地調用.〔D〕CREATEORREPLACEFUNCTIONAsSumnumber;BEGINSum:=Addend_*+Addend_y;END;B.E*ECUTECalc_Sum(45)C.E*ECUTECalc_Sum(23,12)8.當滿足以下〔B〕條件時允許兩個過程具有一樣的名稱.A.參數的名稱或數量不一樣時B.參數的數量或數據類型不一樣時C.參數的數據類型和名稱不一樣時D.參數的數量和數據類型不一樣時9.在FUNCTION主體中,不可能有〔A〕個RETURN語句。FUNCTIONCHAR〕RETURNDATEIS以下〔D〕程序段正確地調用該數據包的函數。A.DECLAREBEGINB.DECLAREBEGINC.DECLAREvalue1DATE;BEGIND.DECLAREvalue1DATE;BEGIN二、填空題3.程序包包括兩個組成局部,即和包體。前者包含了該程序包的信息、過程和函數列表,后4.如果希望查看過程的有關信息,則可以使用USER_SOURCE數據字典視圖。5.創立和替換存儲過程的語句是CREATEORREPLACEPROCEDURE,刪除存儲過程的語句是DROPPROCEDURE,創立和替換函數的語句是CREATEORREPLACEFUNCTION,刪除函數的語句是DROPFUNCTION。6.在下面程序的空白處填寫一定的代碼,使該函數輸出0-100的值-7.在下面程序的空白處填寫一定的代碼,使該函數可以獲取指定編號的商品價格。CREATEOREPLACEFUNCTIONRETURNNUMBERISV_priceNUMBERBEGINSELECT單價INTOV_priceFROM商品信息WHERE商品編號=pid;RETURNv_priceE*CEPTIONWHENNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE(‘查找的商品不存在!’);WHENTOO_MANY_ROWSTHENDBMS_OUTPUT.PUT_LINE(‘程序運行錯誤!請使用游標’);WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE(‘發生其他錯誤!’);三、問答題句集,經編譯后存儲在數據庫中,用戶通過指定存儲過程的名字并給出參數〔如果該存儲過程帶有參數〕來執行它。〔1〕存儲過程只在創造時進展編譯,以后每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高數據庫執行速度。復雜操作用存儲過程封裝起來與數據庫提供的事務處理結合一起使用。這些操作,如果用程序來完成,就變成了一條條的SQL語句,可能要屢次連接數據庫。而換成存儲,只需要連接一次數據庫就可以了。2.創立存儲過程,要求輸入員工號,輸出該員工的工資CREATEORREPLACEPROCEDUREPRO_NAME〔in_idINVARCHAR2,out_wageOUTVARCHAR2)ASBEGINSELECT工資intoout_wageFROM資料WHEREENDPRO_NAME;3.創立一個存儲過程P1,要求執行改存儲過程能夠返回考生數據表(tblkaosheng)中bmdwdm該結果集要按照bmdwdm〔報位代碼〕和號升序排列CREATEPROCEDUREp1ASCREATEPROCEDUREp2ASCREATEORREPLACEPACKAGE"MYPACKAGE"as-CREATEORREPLACEFUNCTION一、單項選擇題1.觸發器的類型不包括的是〔B〕。A.DML觸發器B.DDL觸發器C.替代觸發器D.系統觸發器2.在SQL語言中,如果要建立一個工資表,包含職工號、、職稱、工資等字段。假設要保證"工資"字段的取值不低于800元,最適宜的實現方法是〔C〕D.為工資表數據輸入編寫一個程序進展控制3.如果希望執行*個操作時,該操作本身不執行,而是去執行另外的*些操作,則可以使用什么方式完整這種操作.〔A〕4.系統事件觸發器共支持5種系統事件,以下〔B〕事件不A.更新數據B.查詢數據C.刪除數5.在使用CREATETRIGGER語句創立行級觸發器時,哪一個語句用來引用舊數據.〔D〕A.FOREACHB.ONC.REFERENCINGD.OLD6.在創立觸發器時,哪一個語句決定了觸發器是針對每一行執行一次,還是針對每一個語句執行一次.〔D〕A.FOREACHB.ONC.REFERENCINGD.NEWA.ALTERTABLEB.MODIFYTRIGGERC.ALTERTRIGGERD.DROPTRIGGER9.可以使用哪個語句來更改相關性標識符的名稱.〔A〕A.REFERENCINGB.WHENC.INSTEADOFD.RENAMEA.CREATETRIGGERBEFOREINSERTONmyViewBEGINB.CREATETRIGGERAFTERINSERTONmyViewBEGINC.CREATETRIGGERINSTEADOFINSERTONmyViewBEGIND.以上都不對二、填空題1.創立和替換觸發器的語句是CREATEORREPLACETRIGGER,刪除觸發器的語句是DROPTRIGGER。2.在觸發器定義中,可以使用OLD引用修改前的數據,使用NEW引用新插入的數據。3.假設有一個表TEST,它僅包含一個字段DATA.現在創立一個觸發器,實現將添加的數據變為大寫,請在空白處填寫適當的語句。onTEST4.BEFORE和AFTER指定了觸發器的觸發時間。當為一個表配置了約束時,它們將會特別有用,BEFORE可以規定Oracle在應用約束前調用觸發器,而AFTER規定在應用約束后調用觸三、問答題1.描述一個觸發器包括哪幾局部及其作用.-觸發器主要由觸發器名稱、觸發語句、觸發時間、觸發事件、觸發級別等組成。〔1〕觸發器名:觸發器對象的名稱。由于觸發器是數據庫自動執行的,因此該名稱只是一個名稱,沒有實質的用途。〔2〕觸發時間:指明觸發器何時執行,該值可取:BEFORE表示在數據庫動作之前觸發器執行;AFTER表示在數據庫動作之后出發器執行。INSERT:數據庫插入會觸發此觸發器;UPDATE:數據庫修改會觸發此觸發器;DELETE:數據庫刪除會觸發此觸發器。〔1〕DML觸發器由DML語句觸發,語句的類型確定DML觸發器的類型,可以定義為INSERT,UPDATE,DELETE操作,可以在操作之前或之后被觸發。觸發器是在視圖上而不是在表上定義的觸發器,它是用來替換所使用實際語句的觸發器。〔3〕系統觸發器在DDL事件或者數據庫事件〔比方用戶登陸注銷,效勞器錯誤等等〕系統觸發器分模式觸發器和數據庫觸發器,模式觸發器只有當前的觸發事件以指定模式truncate等DDL語句,如果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 兒童心理健康教育工作小組職責與管理體系
- 2025年企業信用報告-安徽燦晨幕墻裝飾工程有限公司
- 學校心臟驟停搶救流程與培訓方案
- 建筑裝修材料計劃
- 2025年金屬制廚房調理器具項目立項報告
- 班主任新學期班會活動計劃
- 城市道路改建工程的交通分流措施
- 企業美容美發店的計劃書
- 醫療器械開發流程中的法規遵從
- 2025年手電動兩用密閉閥項目投資可行性研究分析報告
- 高考英語高頻詞600
- 2022年江蘇省江陰市四校高一物理第二學期期末經典試題含解析
- 2023年江蘇省南京市中考化學真題(原卷版)
- DB15-T 3619-2024 旅游風景道驛站等級劃分與評定
- (高清版)DB15∕T 3585-2024 高標準農田施工質量評定規程
- 中考物理實驗19 (考點精講)測量滑輪組的機械效率
- 武進經濟發展集團筆試
- 全員消防安全責任制
- 2024年安徽省高考生物試卷(真題+答案)
- 小學六年級數學奧數題100題附答案(完整版)
- 加盟如家合同范本
評論
0/150
提交評論