付費(fèi)下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1.6習(xí)題Oracle數(shù)據(jù)庫基礎(chǔ).填空題1、關(guān)系模型提供了 3類完整性規(guī)則,分別是 、。參考答案:實(shí)體完整性規(guī)則、參照完整性規(guī)則、用戶定義的完整性規(guī)則2、RDBMS由兩部分組成,即 、兩部分。答案:數(shù)據(jù)庫系統(tǒng)內(nèi)核、數(shù)據(jù)字典3、關(guān)系數(shù)據(jù)庫模型支持三種類型的表關(guān)聯(lián)關(guān)系: 、。答案:一對一、一對多以及多對多4、數(shù)據(jù)模型的種類有很多,例如 、和 等。目前理論最成熟、使用最普及的是 。答案:層次模型、網(wǎng)狀模型、關(guān)系數(shù)據(jù)模型、面向?qū)ο竽P?。關(guān)系數(shù)據(jù)模型、選擇題1、Oracle 11g版本號中字母"g”的含義是()A .產(chǎn)品類型的"代"(generation) B.網(wǎng)格(gri
2、dding)C.集成(integration)D.無含義答案:B2、設(shè)計(jì)性能較優(yōu)的關(guān)系模式稱為規(guī)范化,規(guī)范化主要的理論依據(jù)是()A.關(guān)系規(guī)范化理論B.關(guān)系運(yùn)算理論C.關(guān)系代數(shù)理論D.數(shù)理邏輯答案:A3、消除了部分函數(shù)依賴的1NF的關(guān)系模式必定是()A. 1NF B. 2NFC. 3NF D. 4NF答案:B4、當(dāng)B屬于函數(shù)依賴于 A屬性時(shí),屬性 B與A的聯(lián)系是()A . 1對多B .多對1 C .多對多 D .以上都不是答案:B5、根據(jù)關(guān)系數(shù)據(jù)庫規(guī)范化理論,關(guān)系數(shù)據(jù)庫中的關(guān)系要滿足第一范式。下面“部門” 關(guān)系中,因哪個屬性而使它不滿足第一范式?部門(部門號,部門名,部門成員,部門總經(jīng)理)A.部
3、門總經(jīng)理B.部門成員C.部門名D.部門號答案:B6、下列不屬于 Oracle數(shù)據(jù)庫數(shù)據(jù)類型的是()D BOOLEANA. NUMBER B. FLOAT C. CLOB答案:D 三、簡答題1、簡述數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)的區(qū)別。參考答案:數(shù)據(jù)庫是用來存儲信息或數(shù)據(jù)的機(jī)制,是按照數(shù)據(jù)結(jié)構(gòu)來組織、 存儲和管理數(shù)據(jù)的倉庫。可以被定義為是在計(jì)算機(jī)存儲設(shè)備上合理存放的,互相關(guān)聯(lián)的數(shù)據(jù)集合。數(shù)據(jù)庫管理系統(tǒng),它是基于某種結(jié)構(gòu)數(shù)據(jù)模型、以統(tǒng)一的方式管理和維護(hù)數(shù)據(jù)庫, 并提供訪問數(shù)據(jù)庫接口的通用軟件。2、簡述數(shù)據(jù)庫規(guī)范化的概念及其作用。參考答案:數(shù)據(jù)庫規(guī)范化,又稱數(shù)據(jù)庫或資料庫正規(guī)化、標(biāo)準(zhǔn)化,是數(shù)據(jù)庫設(shè)計(jì)中的一
4、系列原理和技術(shù),以減少數(shù)據(jù)庫中數(shù)據(jù)冗余,增進(jìn)數(shù)據(jù)的一致性。四、應(yīng)用題1、設(shè)有一教學(xué)管理數(shù)據(jù)庫,其屬性為:學(xué)號(S#),課程號(C#),成績(G),任課教師(TN),教師所在的系(D)。這些數(shù)據(jù)有下列語義:- 學(xué)號和課程號分別與其代表的學(xué)生和課程一一對應(yīng)。- 一個學(xué)生所修的每門課程都有一個成績。- 每門課程只有一位任課教師,但每位教師可以有多門課程。- 教師中沒有重名,每個教師只屬于一個系。(1)試根據(jù)上述語義確定函數(shù)依賴集。(2)如果用上面所有屬性組成一個關(guān)系模式,那么該關(guān)系模式為何模式?并舉例說明在進(jìn)行增、刪操作時(shí)的異?,F(xiàn)象。(3)分解為具有依賴保持和無損連接的3NF。參考答案:(1) F=
5、 (S#, C#) - G, C#fTN, TN fD(2)關(guān)系模式為1NF,因?yàn)樵撽P(guān)系模式的候選碼為( S#, C#),則非主屬性有 G, TN 和 D。又 F中有C#f TN, 存在非主屬性 TN對候選碼(S#, C#)的部分依賴,即:若新增設(shè)一門課程而暫時(shí)還沒有學(xué)生選修時(shí),則因缺少碼S#直而不能進(jìn)行插入操作。若某個教師調(diào)離學(xué)校要刪除有關(guān)信息時(shí),會將不該刪除的課程 (C#)信息刪除。(3) Fm= (S#, C#) -G, C#fTN, TN f D . p =R1 , R2, R3其中:R1 =(S#, C#, G)R2=(C#, TN)R3=(TN , D)2.7習(xí)題Oracle系統(tǒng)的
6、安裝一、填空題1、常用的 Oracle服務(wù)主要有如下四種,分別是、參考答案:OracleDBConsoleorcl、OracleJobScheduler<SID>、OracleService<SID>、Oracle<ORACLE_HOME_NAME>TNSListener2、Oracle數(shù)據(jù)庫啟動的三個階段是: 、。參考答案:啟動實(shí)例、打開控制文件、打開數(shù)據(jù)庫3、Oracle 數(shù)據(jù)庫關(guān)閉的四個選項(xiàng)是: 、。參考答案: normal、immediate> transaction、abort二、選擇題1、系統(tǒng)標(biāo)識符(SID)是指唯一在網(wǎng)絡(luò)域中區(qū)別于其他數(shù)據(jù)
7、庫的數(shù)據(jù)庫實(shí)例名,下面 合法的SID是()A . my2orcl B . myoracletest C. my_orcl D. myorcl參考答案:A2、安裝 Oracle Database 11g可以選擇安裝類型,下列不屬于Oracle Database 11g的安裝類型是()A.企業(yè)版 B.個人版C.定制D.免費(fèi)版參考答案:D 三、簡答題1、簡述 Oracle Database 11g在 Windows系統(tǒng)下的安裝步驟。參考答案:選擇安裝方法、選擇安裝類型、指定主目錄詳細(xì)信息、產(chǎn)品特定的先決條件檢查、選擇配置選項(xiàng)、安裝、安裝結(jié)束。2、簡述Oracle中用戶和模式的關(guān)系。參考答案:用戶是用
8、連接數(shù)據(jù)庫和訪問數(shù)據(jù)庫對象的。模式是數(shù)據(jù)庫對象的集合。模式對象是數(shù)據(jù)庫數(shù)據(jù)的邏輯結(jié)構(gòu)。通俗地說,模式是用來創(chuàng)建oracle中各種對象,而用戶用來連接數(shù)據(jù)庫并訪問模式中對象,在oracle中模式與用戶是一一對應(yīng)關(guān)系。四、上機(jī)練習(xí)1、按照書中步驟,正確安裝Oracle Database 11g,創(chuàng)建數(shù)據(jù)庫,并且創(chuàng)建用戶。2、從操作系統(tǒng)提示符界面,采用上題創(chuàng)建的用戶登錄數(shù)據(jù)庫,并創(chuàng)建 EMPLOYEES表 進(jìn)行測試。(表結(jié)構(gòu)如下圖) _turion Ljp*fc*(a(*)vMCWNi!)HIM .DATEMM 的Mum裳劑X: HXDI 口也盤 I $ JDHHEP ;f ocwTwr,®
9、;3、客戶端連接Oracle數(shù)據(jù)庫時(shí),默認(rèn)端口為 1521。創(chuàng)建一個新的監(jiān)聽程序,其端口為1522。然后將ORCL注冊于該監(jiān)聽程序。3.5 習(xí)題 SQL*PLUS 和 SQL DEVELOPER一、填空題1 .查看表結(jié)構(gòu)時(shí),所使用的命令是 ,該命令可以簡寫為 。參考答案:DESCRIBE、DESC2 .使用SQL*Plus語句快速編輯 SQL語句時(shí),可以使用的命令有 APPEND (可以簡寫 為A)命令、 (可以簡寫為 C)命令、(可以簡寫為I)、(可簡寫為L)命令,以及RUN(可以簡寫為R)命令。參考答案:CHANGE、INPUT、LIST3 .在SQL*Plus工具中,可以使用SAVE命令
10、將緩沖區(qū)內(nèi)容保存到文件;可以使用命令讀取并運(yùn)行文件內(nèi)容; 可以使用 命令編輯緩沖區(qū)內(nèi)容或文件內(nèi) 容;還可以使用 SPOOL命令復(fù)制輸出結(jié)果到文件。參考答案:START、EDIT4 .在SQL語句中,如果在某個變量前面使用了&符號,那么就表示該變量是一個臨時(shí)變量。定義變量,可以使用 或ACCEPT命令;刪除變量,可以使用UNDEFINE 命令。參考答案:DEFINE5 .在 SQL*Plus中格式化查詢結(jié)果時(shí), COLUMN 命令可以對列格式化顯示效果, PAGESIZE命令可以 , LINESIZE 命令可以 。參考答案:設(shè)置頁的大小、設(shè)置行寬度6 .創(chuàng)建簡單報(bào)表時(shí),使用 命令和 命令
11、,分別為報(bào)表設(shè)置頁眉 和頁腳信息。參考答案:Ttitle、Btitle二、選擇題1 .在SQL*Plus中連接數(shù)據(jù)庫時(shí),可以使用 CONNECT命令。下面的4個選項(xiàng)中,哪 個命令是正確的?其中,用戶名為 scott,密碼為tiger,數(shù)據(jù)庫名為orcl。()A. CONNECT scott/tiger ;B. CONNECT tiger/scott ;C CONN scott/tiger as sysdba ;D CONN scott/tigerorcl as sysdba ;參考答案:D2.執(zhí)行語句 SAVE scott_emp_query.sql APPEND ,執(zhí)行結(jié)果表示()。A .如
12、果scott emp_query.sql文件不存在,則出現(xiàn)錯誤B.如果scott emp_query.sql文件已經(jīng)存在,則出現(xiàn)錯誤C.將緩沖區(qū)中的內(nèi)容追加到scott_emp_query.sql文件中。如果該文件不存在,會創(chuàng)建該文件D.將緩沖區(qū)中的內(nèi)容替換掉scott_emp_query.sql文件的內(nèi)容。如果該文件不存在,會創(chuàng)建該文件參考答案:C3 .使用SQL*Plus中的,可以將文件中的內(nèi)容檢索到緩沖區(qū),并且不執(zhí)行。)A. SAVE命令B. GET命令C. START 命令D. SPOOL 命令參考答案:B4 .下面是有關(guān)變量的描述,請問哪些描述是正確的?()A.臨時(shí)變量是指僅在某個
13、SQL語句中有效的變量B.臨時(shí)變量是在某個會話期間有效的變量C.已定義變量是指明確定義,其生命期至顯式地刪除、重新定義或退出SQL*Plus 為止D.已定義的變量是不能被刪除的參考答案:B、C5.如果希望控制列的顯式格式,那么可以使用下面的 命令()A.SHOWB.DEFINEC. SPOOL D. COLUMN 參考答案:D 三、簡答題1 .使用DESCRIBE命令,查看 scott用戶的dept表的結(jié)構(gòu)信息。參考答案:descscott. dept2 .使用SAVE命令將緩沖區(qū)內(nèi)容寫入到 e:test.sql文件中;然后使用 START命令將文 件中的內(nèi)容讀入到緩沖區(qū),并且進(jìn)行執(zhí)行。參考答
14、案:savee:test.sqlStart e:test.sql3 .執(zhí)行下列語句,觀察輸出結(jié)果:DEFINE temp = 5000SELECT empno , ename , mgrFROM scott.empWHERE sal >= &temp ;參考答案:略4 .對scott用戶的emp表的輸出信息進(jìn)行格式設(shè)置。其中,empno列設(shè)置標(biāo)題為“員工編號",NUMBER 格式為9999; ename列設(shè)置標(biāo)題為“員工名稱”,格式設(shè)置為 25個字 符;hiredate列設(shè)置標(biāo)題為“受雇日期”,并且標(biāo)題居中顯示。參考答案:col empno heading 員工編號
15、39;format 9999;col ename heading 員工名稱'for A25;col hiredate heading '受雇日期 'justify center;5 .設(shè)置一頁顯示30行數(shù)據(jù),并且設(shè)置一行顯示130個字符,然后車出scott用戶的emp 表的全部信息。參考答案:SET PAGESIZE 30SET LINESIZE 130SELECT * FROM SCOTT.EMP四、操作練習(xí)下載SQL Developer,建立Oracle數(shù)據(jù)庫的連接,按照書中所述步驟,操作熟悉SQLDeveloper 的使用。4.5習(xí)題簡單的SELECT語句一、填空
16、題1 .如果需要在SELECT子句中包括一個表的所有列,可以使用符號 。 參考答案:*2 . WHERE子句可以接收 FROM 子句輸出的數(shù)據(jù);而 HAVING 子句可以接收來自 FROM、或 子句的輸出的數(shù)據(jù)。參考答案:WHERE、GROUP3 .在SELECT語句中,分組條件的子句是 ,對顯示的數(shù)據(jù)進(jìn)行排序的子 句是。參考答案:GROUP BY、ORDER BY4 .在DML語句中,INSERT語句可以實(shí)現(xiàn)插入記錄, 語句可以實(shí)現(xiàn)更新 記錄,語句和 語句可以實(shí)現(xiàn)刪除記錄。參考答案:UPDATE、DELETE、TURNCATE5 . 函數(shù)可以返回某個數(shù)值的ASCII值,函數(shù)可以返回某個ASC
17、II值對應(yīng)的十進(jìn)制數(shù)。參考答案:ASCII、CHR6 .使用 函數(shù),可以把數(shù)字或日期類型的數(shù)據(jù)轉(zhuǎn)換成字符串;使用TO_DATE函數(shù),可以把 轉(zhuǎn)換成,默認(rèn)的日期格式為 。參考答案:TO_CHAR、字符串、日期型、yyyy-MM-dd HH:mm:ss二、選擇題1 .查詢scott用戶的emp表中的總記錄數(shù),可以使用下列哪個語句?()A . SELECT MAX(empno) FROM scott.emp;B. SELECT COUNT(empno) FROM scott.emp;C. SELECT COUNT(comm) FROM scott.emp;D. SELECT COUNT(*) FRO
18、M scott.emp;參考答案:D2 .為了去除結(jié)果集中的重復(fù)行,可以在 SELECT中使用下列哪個關(guān)鍵字?()A ALLB DISTINCTC UPDATAD MERGE參考答案:B3 .在SELECT語句中,HAVING 子句的作用是()A.查詢結(jié)果的分組條件B.組的篩選條件C.限定返回的行的判斷條件D.對結(jié)果集進(jìn)行排序參考答案:B4 .下列哪個聚合函數(shù)可以把一個列中的所有值相加求和?()A. MAX 函數(shù)B. MIN函數(shù) C. COUNT 函數(shù) D. SUM函數(shù)參考答案:D5 .如果要統(tǒng)計(jì)表中有多少行記錄,應(yīng)該使用下列哪個聚合函數(shù)?()A. SUM函數(shù)B. AVG函數(shù) C. COUNT
19、 函數(shù) D. MAX 函數(shù)參考答案:C三、簡答題1 .標(biāo)準(zhǔn)SQL語言的語句類型可以分為哪三大類,每種語句類型分別用來操縱哪些語 句?參考答案:數(shù)據(jù)操縱語言(DML):用來操縱數(shù)據(jù)庫中數(shù)據(jù)的命令。包括:select、insert、update、delete。數(shù)據(jù)定義語言(DDL ):用來建立數(shù)據(jù)庫、數(shù)據(jù)庫對象和定義列的命令。包括:create、alter、drop。數(shù)據(jù)控制語言(DCL):用來控制數(shù)據(jù)庫組件的存取許可、權(quán)限等的命令。包括:grant、deny、 revoke。2 .列舉幾個在 WHERE條件中可以使用的操作符。參考答案:使用=、=、=、符號和 BETWEEN 。 。 。 AND
20、。IN(set)、LIKE、IS NULL 。3 .如果要按照降序?qū)?shù)據(jù)進(jìn)行排序,應(yīng)該在 ORDER BY子句中使用哪個關(guān)鍵字? 參考答案:DESC4 .下面這個SELECT語句能否輸出查詢結(jié)果?如果不能,該如何修改? SELECT empno , ename , deptno , COUNT (*) FROM scott .emp GROUP BY deptno 參考答案:不能。SELECT deptno , COUNT (*) FROM scott .emp GROUP BY deptno5 .指定一個日期值,例如08-8月-2008,獲得這個日期與系統(tǒng)當(dāng)前日期之間相隔的月份數(shù)和天數(shù)。參考
21、答案:select months_between('08-8 月-2008', sysdate) mon_betw from dual;5.8習(xí)題表和完整性約束一、填空題1 .按照約束的用途,主要可以將表的完整性約束分為NOT NULL約束、和。參考答案: Check、Unique Index、Primary key、Foreign key2 .使用 關(guān)鍵字,可以快速刪除表中的所有記錄,并且不在撤消表空間中記錄撤消數(shù)據(jù)。參考答案:truncate3 . 約束用于定義列中不能出現(xiàn) NULL值,約束用于定義列中 不能出現(xiàn)重復(fù)值,而 PRIMARY KEY 約束則可以定義列中既不允許
22、出現(xiàn) NULL值,也不允 許出現(xiàn)重復(fù)值。參考答案:NOT NULL、UNIQUE二、選擇題1 .存儲數(shù)據(jù)123.45,可以使用下面哪種數(shù)據(jù)類型?()A. NUMBER B. NUMBER(5)C. NUMBER(5,3) D. NUMBER(5,2)參考答案:D2 .如果某列定義了 UNIQUE約束,則()A.該列不允許出現(xiàn)重復(fù)值。B,該列不允許出現(xiàn) NULL值。C.該列內(nèi)允許出現(xiàn)一個 NULL值。 D.該列允許出現(xiàn)多個 NULL值。參考答案:A3 .為列定義一個 CHECK約束,希望該約束能對表中已存儲的數(shù)據(jù),以及以后向表中 添加或修改的數(shù)據(jù)都進(jìn)行檢查,則應(yīng)該將該約束設(shè)置為如下哪種狀態(tài)?()
23、A . ENABLE V ALIDATEB . ENABLE NOV ALIDA TEC. DISABLE V ALIDATED . DISABLE NOV ALIDATE參考答案:A4 .使用如下語句創(chuàng)建一個臨時(shí)表空間temp :CREAT TABLESPACE temp 'F: oraclefoletemp.dbf 'SIZE 10MAUTOEXTENT ONNEXT2MMAXSIZE 20M ;請從下列選項(xiàng)中選擇正確的關(guān)鍵字補(bǔ)充上面的語句。()A.(不填)、DATAFILEB. TEMP、TEMPFILEC. TEMPORARY、TEMPFILED. TEMP、DATAF
24、ILE參考答案:C5 .下列關(guān)于約束與索引的說法中哪一項(xiàng)是不正確的?()A.在字段上定義 PRIMARY KEY約束時(shí)會自動創(chuàng)建 B樹惟一索引8 .在字段上定義 UNIQUE約束時(shí)會自動創(chuàng)建 B樹惟一索引C.在默認(rèn)的情況下,禁用約束會刪除對應(yīng)的索引,而激活約束會自動重建相應(yīng)的 索引D.在定義FOREIGN KEY 約束時(shí)會創(chuàng)建 B樹唯一索引參考答案:D三、簡答題1 .比較VARCHAR2與CHAR兩種數(shù)據(jù)類型的區(qū)別,并舉例說明分別在什么情況下使 用這兩種數(shù)據(jù)類型。參考答案:CHAR的長度是固定的,VARCHAR2的長度是可以變化的,存儲字符串“ABC"對于CHAR (10),表示存儲
25、的字符將占10個字節(jié)(包才7個空字符),而同樣的 VARCHAR2 (10)則只占用3個字節(jié)的長度,10只是最大值,當(dāng)你存儲的字符小于 10 時(shí),按實(shí)際長度存儲。 VARCHAR2比CHAR節(jié)省空間,在效率上比 CHAR會稍微差 一些。2 .創(chuàng)建一個表后,為表中的某列添加 CHECK約束,并分別設(shè)置該約束的狀態(tài)為4種不同的狀態(tài),比較這 4種狀態(tài)下的約束檢查效果。參考答案:略3 .建立一個學(xué)生表,表結(jié)構(gòu)如下stu_info ( stuidnumber, name varchar(20), agenumber (2) , sex char(2) , birthday date)(1)在數(shù)據(jù)庫中建立
26、 stu_info表。(2)添加主鍵約束(stuid)(3)添加check約束(插入的年齡必須大于19歲)(4)添加非空約束(要求姓名不能為空值)(5)給上面的表添加 唯一約束(要求姓名不可重復(fù))參考答案:(1) create table stu_info( stuid number, name varchar(20), age number(2), sex char(2), birthday date);(2) ALTER TABLE stu_infoADD CONSTRAINT stu_info _pk PRIMARY KEY (stuid);(3) ALTER TABLE stu_inf
27、oADD CONSTRAINT age_checkcheck(age>19);(4) alter table stu_info modify name not null;(5) ALTER TABLE stu_infoADD CONSTRAINT name_uniunique(name);6.8習(xí)題使用SQL進(jìn)行數(shù)據(jù)操作一、填空題1 .為了保證在 SQL方式下進(jìn)行INSERT、DELETE和UPDATE操作達(dá)到安全的目的, 一般在 SQL下進(jìn)行操作前,建議將環(huán)境設(shè)置成為非自動提交的方式,采用的命令是,若想取消操作,采取的命令是 。參考答案: set autocommit off、 rol
28、lback2 .對某步操作設(shè)置相應(yīng)保存點(diǎn)的命令是 ,當(dāng)根據(jù)需要用命令 來實(shí)現(xiàn)撤 消到這一步。參考答案:SAVEPOINT、ROLLBACK TO3 .關(guān)系數(shù)據(jù)庫中比較常用的 SQL中,采用命令 進(jìn)行插入,采用 來進(jìn)行數(shù)據(jù)更新,而同時(shí)具有更新和插入功能的命令式 。參考答案:INSERT、UPDATA、MERGE二、選擇題1 . PL/SQL塊中不能直接使用的 SQL命令是()。A. SELECT參考答案:DB. INSERTC UPDATED DROP2 .以零作除數(shù)時(shí)會引發(fā)()異常。A VALUE_ERRORC STORAGE_ERROR參考答案:BB . ZERO_DIVIDED . SEL
29、F_IS_NULL3 .要更新游標(biāo)結(jié)果集中的當(dāng)前行,應(yīng)使用()子句。A. WHERE CURRENT OFB . FOR UPDATEC. FOR DELETED . FOR MODIFY參考答案:A4 .下面不是常用的數(shù)據(jù)對象權(quán)限的是()A DELETEB REVOKEC INSERT參考答案:B5 .用于修改表中數(shù)據(jù)的語句是()A. EDITB. MODIFYC. UPDATE參考答案:DD UPDATED ALTER6 .在只讀表空間上可以執(zhí)行以下哪些操作?()A CREATE TABLEB ALTER TABLED. INSERTC DROP TABLE參考答案:C 三、簡答題2 .簡
30、述 DETELE操作與TRUNCA TE操作的異同。參考答案:truncate,可以刪除表中的所有記錄,釋放表空間,只保留表結(jié)構(gòu)。delete,如果沒有where條件,也是刪除表中的所有記錄,但是它不釋放空間。TRUNCATE在各種表上無論是大的還是小白都非???。如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會被撤銷。RUNCATE將重新設(shè)置高水平線和 所有的索引。在對整個表和索引進(jìn)行完全瀏覽時(shí),經(jīng)過TRUNCA TE操作后的表比DELETE操作后的表要快得多。3 .已有表文件teacher(教師代碼(C),姓名(C),學(xué)院(C),職稱(C),年齡(N), 按照要求寫出
31、SQL語句。1 .查詢職稱為“副教授"的教師代碼,姓名,學(xué)院,職稱信息;2 .查詢學(xué)院為電信學(xué)院”并且職稱為餅師”的所有教師的信息,并將查詢結(jié)果按年 齡字段的降序排序。3 .將所有教師的年齡加 1;4 .將表中年齡小于 15歲的教師記錄加上刪除標(biāo)記;參考答案:(1) select教師代碼,姓名,學(xué)院。職稱from teacher where職稱二'副教授;(2)select * from teacher where 學(xué)院='電信學(xué)院and 職稱='講師order by 年齡 desc;(3)update teacher set 年齡=年齡 +1;(4) del
32、ete from teacher where 年齡 <153.有一個表T,有兩個字段a,b,我們想在表T中做Insert/Update,如果存在,則更新 T 中b的值,如果不存在,則插入一條記錄。假設(shè)待 Insert/Update的記錄為(a='001',b=100)。請使用MERGE命令完成。參考答案:MERGE INTO T T1USING (SELECT '1001' AS a,2 AS b FROM dual) T2ON ( T1.a=T2.a)WHEN MATCHED THENUPDATE SET T1.b = T2.bWHEN NOT MATC
33、HED THENINSERT (a,b) VALUES(T2.a,T2.b);7.5習(xí)題索引、視圖和序列一.填空題1 .創(chuàng)建視圖的命令是 。若要保證插入或修改的數(shù)據(jù)行必須滿足視圖定義的約束, 創(chuàng)建時(shí)附帶的參數(shù)是 ;若要保證視圖上不能進(jìn)行任何DML操作,創(chuàng)建時(shí)附帶的參數(shù)是。參考答案:CREATE VIEW、WITH CHECK OPTION > WITH READ ONL Y2 .創(chuàng)建序列的命令是 。若要使序列的增量為 5,創(chuàng)建時(shí)附帶的參數(shù)是 若要使序列開始值為10,創(chuàng)建時(shí)附帶的參數(shù)是 。參考答案:CREATE SEQUENCE > INCREMENT BY 5、START WITH
34、 103 .視圖中的列并不都支持 DML操作,通過數(shù)據(jù)字典 可以了解視圖中哪些 列是可更新的。參考答案: user_updatable_columns4 .使用 可以獲取序列的當(dāng)前值,使用 可以獲取下一個值。參考答案:currval、nextval5 .如果要清除索引中的存儲碎片,可以對索引進(jìn)行合并或參考答案:重建選擇題1 .以下哪個視圖可以查到用戶具有使用權(quán)限的表的信息()A. USER_VIEWSB. USER_TABLESC. ALL_OBJECTSD . USER_OBJECTS參考答案:C2 .要查看當(dāng)前用戶下有哪些數(shù)據(jù)表格,適用下列哪個視圖()A. USER_TABLEB.TABC
35、. USER_ALL_TABLESD.TABLES_USER參考答案:C3 .可以使用()偽列來訪問序列。B . NEXTV AL 和 PREVALD . MAXV ALUE 和 MINV ALUE)選項(xiàng)來創(chuàng)建。B . WITH CHECK OPTIONA. CURRVAL 和 NEXTVALC. CACHE 和 NOCACHE 參考答案:A4.帶有錯誤的視圖可使用(A FORCED. CREATE ERROR VIEW該基表被稱為鍵保留表。C. CREATE VIEW WITH ERROR 參考答案:A5 .在聯(lián)接視圖中,當(dāng)()時(shí),A.基表的主鍵不是結(jié)果集的主鍵B.基表的主鍵是結(jié)果集的主鍵C
36、.基表的主鍵是結(jié)果集的外鍵D.基表的主鍵不是結(jié)果集的外鍵 參考答案:B6 .使用如下語句創(chuàng)建一個視圖:CREATE VIEW test view ASSELECT stu.stuname , stu.stuage + 1 newage , cla.clanameFROM student stu LEFT JOIN class cla ON stu.claid = cla.claid;請問test view視圖中哪些列是可更新的?()A . stunameB . stuname, newageC stuname, clanameD stuname, newage, claname參考答案:C7
37、.如果創(chuàng)建一個序列,用于為表的主鍵列生成主鍵值,則創(chuàng)建該序列時(shí)不應(yīng)該指定以 下哪種參數(shù)?()A. MAXV ALUE 1000B. MINVALUE 10C CACHE 10D CYCLE參考答案:D8 .如果在創(chuàng)建序列時(shí)指定其CACHE參數(shù)值為10,當(dāng)序列的當(dāng)前值為 5時(shí),數(shù)據(jù)庫突然關(guān)閉,再次運(yùn)行數(shù)據(jù)庫后,序列將從以下哪個值開始?()A. 5B. 6C. 11 D. 16參考答案:C9 .下列關(guān)于索引的描述哪一項(xiàng)是不正確的?()A.表是否具有索引不會影響到所使用的sql的編寫形式B.為表創(chuàng)建索引后,所有的查詢操作都會使用索引C.為表創(chuàng)建索引后,可以提高查詢的執(zhí)行速度D.為表創(chuàng)建索引后,Ora
38、cle優(yōu)化器將根據(jù)具體情況決定是否采用索引 參考答案:B 三、簡答題1 .簡述表與視圖的關(guān)系。參考答案:聯(lián)系:視圖(view)是在基本表之上建立的表,它的結(jié)構(gòu)(即所定義的列) 和內(nèi)容(即所有數(shù)據(jù)行) 都來自基本表,它依據(jù)基本表存在而存在。一個視圖可以對應(yīng) 一個基本表,也可以對應(yīng)多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關(guān)系。2 .表結(jié)構(gòu)說明: create table employee( id number(10) not null,一 員工工號salary number(10,2) default 0 not null,一薪水name varchar2(24) not null 姓
39、名);(1) .創(chuàng)建序列seq_employee,該序列每次取的時(shí)候它會自動增加,從 1開始計(jì)數(shù),不 設(shè)最大值,并且一直累加,不循環(huán)。參考答案: create sequence seq_employee2 increment by 13 start with 14 nomaxvalue5 nocycle6 /2 2).寫一個PL/SQL塊,插入表user.employee中100條數(shù)據(jù)。插入該表中字段id用序列seq_employee實(shí)現(xiàn),薪水和姓名字段可以任意填寫。參考答案:略3 .如果對視圖的基表進(jìn)行結(jié)構(gòu)上的改動,將會影響視圖的可用性。請基于一個表創(chuàng)建 一個視圖,在視圖的子查詢語句中使用*
40、查詢基表中的所有列,然后對該表進(jìn)行結(jié)構(gòu)修改,例如增加列、刪除列,修改列名等,測試不同情況下視圖的可用性,并思考其中的原因。參考答案:視圖依賴于基礎(chǔ)表的存在而存在,當(dāng)基礎(chǔ)表進(jìn)行了結(jié)構(gòu)上的修改后,有可能會對視圖產(chǎn)生印象,如果要再次使用此試圖,需要進(jìn)行編譯。4 .如果經(jīng)常需要使用如下語句查詢employee表中的員工信息:SELECT * FROM employee WHERE SUBSTRB(ename , 0,2)= 李;那么應(yīng)該為ename創(chuàng)建什么索引,如何創(chuàng)建?參考答案:創(chuàng)建基于函數(shù)的索引CREATE INDEX EANME_INDEXON employee (SUBSTRB(ename ,
41、 0,2)TABLESPACE myspace8.6習(xí)題PL/SQL基礎(chǔ)一.填空題1. PL/SQL程序由三個塊組成,即 參考答案:聲明部分、執(zhí)行部分、異常處理部分2. Oracle塊根據(jù)應(yīng)用模塊功能,可以分為四種類型,分別是:、O參考答案:匿名塊、命名塊、子程序、觸發(fā)器3. Oracle的游標(biāo)分為、。參考答案:顯示游標(biāo)、隱式游標(biāo)4. Oracle游標(biāo)有4個屬性,判斷游標(biāo)是否被打開,如果打開等于true,否則等于false; 判斷游標(biāo)所在的行是否有效,如果有效,則等于true,否則等于false,屬性與之相反; 返回當(dāng)前位置為止游標(biāo)讀取的記錄行數(shù)。參考答案:ISOPEN、FOUND、 %NOT
42、FOUND、%ROWCOUNT、選擇題1 .關(guān)于存儲過程參數(shù),正確的說法是()A.存儲過程的輸出參數(shù)可以是標(biāo)量類型,也可以是表類型B.存儲過程輸入?yún)?shù)可以不輸入信息而調(diào)用過程C.可以指定字符參數(shù)的字符長度(函數(shù)的()或者過程的(number/varchar2)D.以上說法都不對參考答案:B2 .下列說法,正確的說法是()A.只要在存儲過程中有增刪改語句,一定加自治事務(wù)B.在函數(shù)內(nèi)可以修改表數(shù)據(jù)C.函數(shù)不能遞歸調(diào)用D.以上說法都不對參考答案:B3 .利用游標(biāo)來修改數(shù)據(jù)時(shí),F(xiàn)OR UPDATE充分利用了事務(wù)的哪個特性?()A.原子性 B. 一致性 C.永久性 D.隔離性 參考答案:D4 .下列哪個
43、語句無需 COMMIT而自動提交()A . CREATE TABLE t(t1 NUMBER,t2 NUMBER)B. UPDATE t SET t1=123C DELETE FROM tD. INSERT INTO t V ALUES(1,3)參考答案:A5.下列說法不正確的是()A,在PLSQL自定義函數(shù)中如果包含 UPDATE、DELETE、INSERT語句,不必在函數(shù) 體內(nèi)名出COMMIT;B.自定義函數(shù)可以在 SQL語句中調(diào)用、也可以在 PLSQL塊中調(diào)用C.自定義函數(shù)可以返回表類型D.自定義函數(shù)中的參數(shù)可以是OUT類型參考答案:D6.下面定義PL/SQL記錄的語法正確的是()A.
44、TYPE記錄類型名 > IS RECORDB. TYPE <t己錄類型名 > RECORDC. RECORD <t己錄類型名> D. TYPE RECORD< t己錄類型名>參考答案:A7.在SQL*PLUS環(huán)境中可以利用 DBMS_OUTPUT 包中的PUT_LINE方法來回顯服務(wù) 器端變量的值,但在此之前要利用一個命令打開服務(wù)器的回顯功能,這一命令是()A . set server onB. set serverecho onC. set servershow onD. set serveroutput on參考答案:D三、簡答題1,簡述NO_DA
45、 TA_FOUND %NOTFOUND 兩個保留字的用法。參考答案:SELECT . . . INTO 語句觸發(fā) NO_DATA_FOUND ;當(dāng)一個顯示光標(biāo)的where子句未找到時(shí)觸發(fā) %NOTFOUND ;當(dāng)UPDATE或DELETE 語句的 where子句未找到時(shí)觸發(fā) SQL%NOTFOUND ;在光標(biāo)白提?。‵etch)循環(huán)中要用 %NOTFOUND %FOUND來確定循環(huán)的退出條件,不 要用 NO_DATA_FOUND 。2 .簡述PL/SQL的異常處理機(jī)制。參考答案:當(dāng)發(fā)生錯誤時(shí),程序無條件轉(zhuǎn)到異常處理部分,這就要求代碼要非常干凈并把錯誤處理部分和程序的其它部分分開。oracle允
46、許聲明其他異常條件類型以擴(kuò)展錯誤/異常處理。這種擴(kuò)展使 PL/SQL的異常處理非常靈活。當(dāng)一個運(yùn)行時(shí)錯誤發(fā)生時(shí),稱為一個異常被拋出。PL/SQL程序編譯時(shí)的錯誤不是能被處理得異常,只有在運(yùn)行時(shí)的異常能被處理。 在PL/SQL程序設(shè)計(jì)中異常的拋出和處理是 非常重要的內(nèi)容。3 .查找出當(dāng)前用戶模式下,每張表的記錄數(shù),以 scott用戶為例,結(jié)果應(yīng)如下:DEPT 4EMP 14BONUS 0SALGRADE 5請編寫PL/SQL程序塊實(shí)現(xiàn)。參考答案:DECLAREtype tab_names is table of varchar2(20) index by binary_integer; tab_
47、name tab_names;coun number;str varchar2(100);BEGINselect table_name bulk collect into tab_name from user_tables;for i in tab_name.first.tab_name.last LOOPstr:='select count(*) from '|tab_name(i);execute immediate str into coun; dbms_output.put_line(tab_name(i)|''|coun);ENDLOOP;END;9.
48、6習(xí)題存儲過程、函數(shù)、觸發(fā)器和包一、填空題1. 關(guān)鍵字標(biāo)志著PL/SQL程序中聲明段的開始。參考答案: DECLARE2. PL/SQL的異常處理代碼在 塊中實(shí)現(xiàn)。 參考答案: EXCEPTION3. 觸發(fā)器可以分為三類,分別是: 、。 參考答案:DML觸發(fā)器、替代觸發(fā)器、系統(tǒng)及觸發(fā)器4. 包中包含 和,它們共享公共的變量,公共的局部函數(shù)和過程。參考答案:過程、函數(shù)5. 一個包由兩個分開的部分組成 和。 參考答案: 包說明 (package soecification) > 包主體 (package body )、選擇題1 .關(guān)于觸發(fā)器,下列說法正確的是()A,可以在表上創(chuàng)建INSTEA
49、D OF 觸發(fā)器B.語句級觸發(fā)器不能使用“: old”和“:new”C.行級觸發(fā)器不能用于審計(jì)功能D.觸發(fā)器可以顯式調(diào)用參考答案:B2 .分析下面的 PL/SQL代碼塊:BEGINFOR I IN 1.5 LOOPIF I=1 THEN NULL;ELSEIF I=3 THEN COMMIT;ELSEIF 1=5 THEN ROLLBACK;ELSE INSERT INTO test(results) values(i);END IF;END LOOP;COMMIT;END;有多少個值,被永久地插入到TEST表中?()A. 0B. 1C. 2D. 3參考答案是:B3 .在PL/SQL循環(huán)中,需
50、要測試當(dāng)前的 FETCH是否成功,可以完成這個要求的游標(biāo) 屬性是下列哪個()。A SQL%ISOPENB SQL%ROWCOUNTC. SQL%FOUNDD.這一要求無法使用 SQL游標(biāo)屬性完成。參考答案是:D4 .檢查下面的 PL / SQL塊: DECLARETYPE EmpListIS VARRAY(2) OF employees.employee_id%TYPE NOT NULL;v_employees EmpList := EmpList();BEGINDBMS_OUTPUT.PUT_LINE(v_employees.COUNT);v_employees.EXTEND;v_emplo
51、yees(1) := 30;END;下列關(guān)于上述 PL / SQL塊的結(jié)果的說法,正確的一項(xiàng)是:()。A.它執(zhí)行成功,并顯示值為2B.它執(zhí)行成功,并顯示值為 0C.它生成一個錯誤,因?yàn)閿?shù)組不能擴(kuò)展D.它生成一個錯誤,因?yàn)樵撟冮L數(shù)組的聲明是無效的。參考答案是:B三、簡答題1 .簡述PL/SQL程序包的作用。參考答案:把相關(guān)的過程和函數(shù)歸類,按照功能的相關(guān)性存放在一起, 并賦予一定的管 理功能和使用的一組對象就叫做包。 Oracle系統(tǒng)把相關(guān)的模塊歸類成為包, 可使開發(fā)人員利 用面向?qū)ο蟮姆椒ㄟM(jìn)行內(nèi)嵌過程的開發(fā),從而提高系統(tǒng)性能。2 .簡述存儲過程和函數(shù)的區(qū)別。參考答案:本質(zhì)上沒區(qū)別。只是函數(shù)有如
52、:只能返回一個變量的限制。而存儲過程可以返回多個。而函數(shù)是可以嵌入在sql中使用的,可以在select中調(diào)用,而存儲過程不行。執(zhí)行的本質(zhì)都一樣。函數(shù)限制比較多,比如不能用臨時(shí)表,只能用表變量.還有一些函數(shù)都不可用等等.而 存儲過程的限制相對就比較少。3 .思考如何在PL/SQL里避免重復(fù)編碼的問題,請舉例說明。參考答案:使用存儲過程或函數(shù),舉例略。4 .在PL/SQL里如何使用綁定變量,為何使用綁定變量,請舉例說明。參考答案:這是解決 Oracle應(yīng)用程序可伸縮性的一個關(guān)鍵環(huán)節(jié);而Oracle的共享池就決定了開發(fā)人員必須使用綁定變量;如果想要Oracle運(yùn)行減慢,甚至完全終止,那就可以不用綁
53、定變量;這里舉例說明上述問題;為了查詢一個員工代號是123,你可以這樣查詢:select * from emp where empno= ' 123';你也可以這樣查詢:select * from emp where empno=:empno;第一個查詢使用的頻率越高,所消耗的系統(tǒng)硬件資源越大,從而降低了用戶的使用數(shù)量; 它也會把優(yōu)化好的其它查詢語句從共享池中踢出,系統(tǒng)的整體性能降低;而執(zhí)行綁定變量,提交相同對象的完全相同的查詢的用戶,一次性使用就可重復(fù)使用,提高效率。四、應(yīng)用題1 .用PL/SQL編寫函數(shù)計(jì)算一個給定的正整數(shù)的階乘,并編寫調(diào)用程序?qū)υ摵瘮?shù)進(jìn)行 調(diào)用。參考答案:
54、FUNCTION fac(n POSITIVE)RETURN INTEGER ISBEGINIF n = 1 THENRETURN 1;ELSERETURN n * fac(n - 1);END IF;END fac;BEGINdbms_output.put_line(fac(5); END;2 .給teacher_info表編寫一個(before-delete)觸發(fā)器,當(dāng)要在 teacher_info表中刪除 個記錄,將觸發(fā)該觸發(fā)器。在觸發(fā)器中將判斷老師是否已經(jīng)授課?如果已經(jīng)安排某位教師授 課,它將激發(fā)一個例外,把無法刪除的信息返回用戶。參考答案: create trigger teache
55、r_cancelon teacher_info instead of deleteasdeclare sk int,ID intbeginselect ID=course_id FROM deletedselect sk=SKJL from teacher_info where course_id=IDif(sk=0)delete from teacher_info where course_id=IDelsebeginraiserror('無法刪除',10,1) endend3.根據(jù)下面的要求編寫相應(yīng)存儲過程,并調(diào)用執(zhí)行。具體要求如下:1)編寫一個存儲過程,向表中隨機(jī)插入1000條記錄SerialNo :使用序列方式,自增長。Filepath :使用隨機(jī)插入 6個字母Partid:使用隨機(jī)4位數(shù)字StaffNo :從 YTCZ060001 .YTCZ060020 中隨機(jī)抽取RecordTime :從2012年8月1日之前的6個月中隨機(jī)抽取。2)寫一個程序塊,循環(huán)調(diào)用500次此存儲過程,保證數(shù)據(jù)表中存儲50萬條記錄。參考答案:(1) cre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中生物學(xué)考試題及答案
- 2025-2026人教版小學(xué)二年級科學(xué)上學(xué)期測試卷
- 護(hù)士綜合知識試題及答案
- 2025-2026人教版初中九年級生物上學(xué)期期末測試卷
- 2025-2026人教版五年級科學(xué)測試卷
- 2025-2026七年級地理湘教版期末上學(xué)期卷
- 2025 小學(xué)六年級科學(xué)上冊科學(xué)教育中的實(shí)驗(yàn)教學(xué)改進(jìn)策略課件
- 專賣店衛(wèi)生監(jiān)督管理制度
- 宿舍公用衛(wèi)生間制度
- 衛(wèi)生室工作例會制度
- 化工生產(chǎn)安全用電課件
- 2026屆湖北省武漢市高三元月調(diào)考英語試卷(含答案無聽力原文及音頻)
- 110kV~750kV架空輸電線路施工及驗(yàn)收規(guī)范
- 質(zhì)量檢驗(yàn)部2025年度工作總結(jié)與2026年度規(guī)劃
- 陳世榮使徒課件
- 2025至2030中國丙烯酸壓敏膠行業(yè)調(diào)研及市場前景預(yù)測評估報(bào)告
- 河北省石家莊2026屆高二上數(shù)學(xué)期末考試試題含解析
- EPC工程總承包項(xiàng)目合同管理
- 四年級數(shù)學(xué)除法三位數(shù)除以兩位數(shù)100道題 整除 帶答案
- 村委會 工作總結(jié)
- 廠房以租代售合同范本
評論
0/150
提交評論