數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)
二、名詞解釋
1.數(shù)據(jù)冗余定義:同一數(shù)據(jù)存儲(chǔ)在不同的數(shù)據(jù)文件中的現(xiàn)象。2.DBA數(shù)據(jù)庫管理員
3.事務(wù)指訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit)。4.數(shù)據(jù)字典:數(shù)據(jù)庫中所有對(duì)象及其關(guān)系的信息集合。5.數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性。
6.物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨(dú)立的7.邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的8.存儲(chǔ)過程是一組為了完成特定功能的SQL語句集
9.觸發(fā)器可以查詢其他表,而且可以包含復(fù)雜的SQL語句。它們主要用于強(qiáng)制服從復(fù)雜的業(yè)務(wù)規(guī)則或要求10.SQL語言中的視圖
答:在SQL中,外模式一級(jí)數(shù)據(jù)結(jié)構(gòu)的基本單位是視圖,它是從若干基本表和(或)其它視圖中構(gòu)造出來的,視圖并不存儲(chǔ)對(duì)應(yīng)的數(shù)據(jù),只是將視圖的定義存于數(shù)據(jù)字典中。
四、簡答題
1.數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?
答:數(shù)據(jù)庫定義、操縱、保護(hù)、存儲(chǔ)、維護(hù)和數(shù)據(jù)字典。2.數(shù)據(jù)庫系統(tǒng)中的常見故障有哪些?答:.事務(wù)故障,系統(tǒng)故障、介質(zhì)故障。3.簡述SQL語言的組成。答:分為四個(gè)部分:
數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制、嵌入式SQL語言的使用規(guī)定。4.說明關(guān)系模型有哪三類完整性規(guī)則?
答:實(shí)體完整性、參照完整性、用戶自定義完整性。
5.請(qǐng)闡述在網(wǎng)狀模型和關(guān)系模型中,實(shí)體之間聯(lián)系的實(shí)現(xiàn)方法。答:在網(wǎng)狀模型中,聯(lián)系用指針實(shí)現(xiàn)。
在關(guān)系模型中,聯(lián)系用關(guān)鍵碼(或外鍵,或關(guān)系運(yùn)算)來實(shí)現(xiàn)。6.DBS由哪幾個(gè)部分組成?
答:DBS由四部分組成:數(shù)據(jù)庫、硬件、軟件、數(shù)據(jù)庫管理員。7.數(shù)據(jù)庫的并發(fā)操作會(huì)帶來哪些問題?
答:數(shù)據(jù)庫的并發(fā)操作會(huì)帶來三類問題:丟失更新問題;不一致分析問題和“臟數(shù)據(jù)”的讀出。8.簡述客戶/服務(wù)器模式DBS的一般結(jié)構(gòu)。此時(shí)數(shù)據(jù)庫應(yīng)用的功能如何劃分?
答:DBS:數(shù)據(jù)庫系統(tǒng)(DatabaseSystem),DBS是實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問的計(jì)算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)。
9.什么是日志文件?為什么要設(shè)立日志文件?答:(1)日志文件是用來記錄事務(wù)對(duì)數(shù)據(jù)庫的更新操作的文件。
(2)設(shè)立日志文件的目的是:進(jìn)行事務(wù)故障恢復(fù);進(jìn)行系統(tǒng)故障恢復(fù);協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。
10.SQL中表達(dá)完整性約束的規(guī)則主要有哪幾種?
答:有主鍵約束、外鍵約束、屬性值約束和全局約束等。11.什么是分布式數(shù)據(jù)庫的分布透明性?
答:分布透明性是指用戶不必關(guān)心數(shù)據(jù)的邏輯分片,不必關(guān)心數(shù)據(jù)物理位置分配的細(xì)節(jié),也不必關(guān)心各個(gè)場地上數(shù)據(jù)庫的數(shù)據(jù)模型。12.什么是對(duì)象關(guān)系數(shù)據(jù)模型?
答:在傳統(tǒng)的關(guān)系數(shù)據(jù)模型基礎(chǔ)上,提供元組、數(shù)組、集合等數(shù)據(jù)類型以及處理新的數(shù)據(jù)類型操作的能力,這樣形成的數(shù)據(jù)模型,稱為“對(duì)象關(guān)系數(shù)據(jù)模型”。13.數(shù)據(jù)庫恢復(fù)的基本技術(shù)有哪些?
答:數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登錄日志文件是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。當(dāng)系統(tǒng)運(yùn)行過程中發(fā)生故障,利用轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復(fù)到故障前的某個(gè)一致性狀態(tài)。
五、論述題
1.數(shù)據(jù)庫中為什么要有恢復(fù)子系統(tǒng)?它的功能是什么?
答:因?yàn)橛?jì)算機(jī)系統(tǒng)中硬件的故障、軟件的錯(cuò)誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運(yùn)行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分?jǐn)?shù)據(jù)丟失,因此必須要有恢復(fù)子系統(tǒng)。
恢復(fù)子系統(tǒng)的功能是:把數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。
2.數(shù)據(jù)庫運(yùn)行中可能產(chǎn)生的故障有哪幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些故障破壞數(shù)據(jù)庫數(shù)據(jù)?
答:數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類:(1)事務(wù)內(nèi)部的故障;(2)系統(tǒng)故障;(3)介質(zhì)故障;(4)計(jì)算機(jī)病毒。
事務(wù)故障、系統(tǒng)故障和介質(zhì)故障影響事務(wù)的正常執(zhí)行;介質(zhì)故障和計(jì)算機(jī)病毒破壞數(shù)據(jù)庫數(shù)據(jù)。
3.登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫?答:把對(duì)數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個(gè)修改的日志記錄寫到日志文件中是兩個(gè)不同的操作。有可能在這兩個(gè)操作之間發(fā)生故障,即這兩個(gè)寫操作只完成了一個(gè)。
如果先寫了數(shù)據(jù)庫修改,而在運(yùn)行記錄中沒有登記這個(gè)修改,則以后就無法恢復(fù)這個(gè)修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫,在恢復(fù)時(shí)只不過是多執(zhí)行一次UNDO操作,并不會(huì)影響數(shù)據(jù)庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修改。
4.什么是數(shù)據(jù)庫鏡像?它有什么用途?
答:數(shù)據(jù)庫鏡像即根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫或者其中的部分關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上。每當(dāng)主數(shù)據(jù)庫更新時(shí),DBMS自動(dòng)把更新后的數(shù)據(jù)復(fù)制過去,即DBMS自動(dòng)保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。
數(shù)據(jù)庫鏡像的用途有:
一是用于數(shù)據(jù)庫恢復(fù)。當(dāng)出現(xiàn)介質(zhì)故障時(shí),可由鏡像磁盤繼續(xù)提供使用,同時(shí)DBMS自動(dòng)利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本。
二是提高數(shù)據(jù)庫的可用性。在沒有出現(xiàn)故障時(shí),當(dāng)一個(gè)用戶對(duì)某個(gè)數(shù)據(jù)加排它鎖進(jìn)行修改時(shí),其他用戶可以讀鏡像數(shù)據(jù)庫上的數(shù)據(jù),而不必等待該用戶釋放鎖。5.試述事務(wù)的概念及事務(wù)的四個(gè)特性。答:
事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個(gè)不可分割的工作單位。
事務(wù)具有四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個(gè)四個(gè)特性也簡稱為ACID特性。
原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。
持續(xù)性:持續(xù)性也稱永久性(Permanence),指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。六、綜合題
(一)現(xiàn)有關(guān)系數(shù)據(jù)庫如下:
學(xué)生(學(xué)號(hào),姓名,性別,專業(yè),獎(jiǎng)學(xué)金)課程(課程號(hào),名稱,學(xué)分)學(xué)習(xí)(學(xué)號(hào),課程號(hào),分?jǐn)?shù))用SQL語言實(shí)現(xiàn)如下小題:
1.檢索不學(xué)課程號(hào)為“C135”課程的學(xué)生信息,包括學(xué)號(hào),姓名和專業(yè)SELECT學(xué)號(hào),姓名,專業(yè)FROM學(xué)生
WHERE學(xué)號(hào)NOTIN(SELECT學(xué)號(hào)FROM學(xué)習(xí)
WHERE課程號(hào)="C135")
2.檢索至少學(xué)過課程號(hào)為“C135”和“C219”的學(xué)生信息,包括學(xué)號(hào)、姓名和專業(yè);
.SELECT學(xué)號(hào),姓名,專業(yè)FROM學(xué)生
WHERE學(xué)號(hào)IN(SELECTX.學(xué)號(hào)
FROM學(xué)習(xí)ASX,學(xué)習(xí)ASY
WHEREX.學(xué)號(hào)=Y.學(xué)號(hào)ANDX.課程號(hào)="C135"ANDX課程號(hào)=’C219’)
3.從學(xué)生表中刪除成績出現(xiàn)過0分的所有學(xué)生信息;DELETEFROM學(xué)生WHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)FROM學(xué)習(xí)
WHERE分?jǐn)?shù)=0)
3.定義“英語”專業(yè)學(xué)生所學(xué)課程的信息視圖AAA,包括學(xué)號(hào)、姓名、課程號(hào)和分?jǐn)?shù)。CREATEVIEWAAA(學(xué)號(hào),姓名,課程號(hào),分?jǐn)?shù))ASSELECT學(xué)號(hào),姓名,課程號(hào),分?jǐn)?shù)FROM學(xué)生,學(xué)習(xí)
WHERE學(xué)生.學(xué)號(hào)=學(xué)習(xí).學(xué)號(hào)AND專業(yè)=’英語’
(二)現(xiàn)有如下關(guān)系:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè),出生年月)教師(教師編號(hào),姓名,所在部門,職稱)
授課(教師編號(hào),學(xué)號(hào),課程編號(hào),課程名稱,教材,學(xué)分,成績)
1.查找學(xué)習(xí)“數(shù)據(jù)庫原理”課程且成績不及格的學(xué)生學(xué)號(hào)和任課教師編號(hào);2.查找學(xué)習(xí)“英語”課程的“計(jì)算機(jī)應(yīng)用”專業(yè)學(xué)生的學(xué)號(hào),姓名和成績;
3.查找教師“李洪”所教過的學(xué)生成績?yōu)?0分以上(包括90)的學(xué)生學(xué)號(hào),姓名和專業(yè);4.刪除學(xué)生表中學(xué)號(hào)為“9903016”的記錄;
5.將編號(hào)為“60016”的教師所在的部門該為“計(jì)算機(jī)”;6.建立“計(jì)算機(jī)應(yīng)用”專業(yè)成績有過不及格的學(xué)生的視圖;7.向?qū)W生表中增加一個(gè)“獎(jiǎng)學(xué)金”列,其數(shù)據(jù)類型為數(shù)值型。1、SELECT學(xué)號(hào),教師編號(hào)FROM授課
WHERE課程名稱="數(shù)據(jù)庫原理"AND成績=90;4、DELETEFROM學(xué)生
WHERE學(xué)號(hào)="9903016";5、UPDATE教師
SET所在部門="計(jì)算機(jī)系"WHERE教師編號(hào)="60016";6、CREATEVIEW成績
ASSELECT學(xué)生.學(xué)號(hào),姓名,成績FROM學(xué)生,授課
WHERE學(xué)生.學(xué)號(hào)=授課.學(xué)號(hào)AND專業(yè)="計(jì)算機(jī)應(yīng)用"AND成績
擴(kuò)展閱讀:數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)
題型:
一、選擇題(每題1分,共10分)二、簡答題:(每題10分,共30分)
三、應(yīng)用題:(第1題15分,第2題45分,共60分)
考試范圍:第一章
1、數(shù)據(jù)、的定義描述事物的符號(hào)記錄稱為數(shù)據(jù)。
數(shù)據(jù)庫是長期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。
2、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)的特點(diǎn)(了解)3、DBMS的功能(了解)
4、實(shí)體間聯(lián)系的三種類型(1:1,1:n,m:n)5、E-R圖的畫法
a、不必畫出中間步驟。b、標(biāo)出實(shí)體間聯(lián)系的類型。c、只需畫出關(guān)鍵字對(duì)應(yīng)的屬性。
6、數(shù)據(jù)庫系統(tǒng)的組成、核心7、數(shù)據(jù)庫設(shè)計(jì)的步驟
第二章認(rèn)識(shí)關(guān)系運(yùn)算符第五章
1、數(shù)據(jù)庫的創(chuàng)建CREATEDATABASE2、創(chuàng)建表CREATETABLE3、數(shù)據(jù)插入INSERT4、數(shù)據(jù)修改UPDATE5、數(shù)據(jù)刪除DELETE
第六章
1、相關(guān)子查詢和非相關(guān)子查詢之間的區(qū)別2、視圖的優(yōu)點(diǎn)(了解)3、數(shù)據(jù)查詢SELECT:
1)內(nèi)連接2)分組、統(tǒng)計(jì)函數(shù)3)排序4)非相關(guān)子查詢
第七章
1、觸發(fā)器的寫法
小結(jié)(第一章課件34到56第五章課件64到75
第六章課件(SELECT語句,內(nèi)連接,分組、統(tǒng)計(jì)函數(shù),排序,非相關(guān)子查詢)重點(diǎn)第七章課件58到71)
數(shù)據(jù)(DATA,簡稱D)
定義:描述事物的符號(hào)記錄稱為數(shù)據(jù)。數(shù)據(jù)庫(DataBase,簡稱DB)
.定義:是長期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。.特點(diǎn):
(1)數(shù)據(jù)庫中的數(shù)據(jù)按照一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存。
(2)具有較小的冗余度。
(3)較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。數(shù)據(jù)庫管理系統(tǒng)(DBMS)主要功能:
1)數(shù)據(jù)定義功能:。
2)數(shù)據(jù)組織、存儲(chǔ)和管理功能:3)數(shù)據(jù)操縱功能:4)數(shù)據(jù)庫的事務(wù)管理和運(yùn)行管理5)數(shù)據(jù)庫的建立和維護(hù)功能簡答題:
1.相關(guān)子查詢和非相關(guān)子查詢之間的區(qū)別
a)非相關(guān)子查詢是獨(dú)立于外部查詢的子查詢,子查詢總共執(zhí)行一次,執(zhí)行完畢后將值
傳遞給外部查詢。
b)相關(guān)子查詢是內(nèi)層子查詢條件依賴于外層父查詢的某個(gè)屬性值的子查詢,外部查詢
執(zhí)行一行,子查詢就執(zhí)行一次。2.數(shù)據(jù)庫設(shè)計(jì)的步驟
1需求分析;2概念結(jié)構(gòu)設(shè)計(jì);3邏輯結(jié)構(gòu)設(shè)計(jì);4數(shù)據(jù)庫物理設(shè)計(jì)數(shù)據(jù)庫實(shí)施;5數(shù)據(jù)庫運(yùn)行和維護(hù)
3.視圖的優(yōu)點(diǎn)(了解)
(1)為用戶集中數(shù)據(jù),簡化用戶的數(shù)據(jù)查詢和處理。(2)屏蔽數(shù)據(jù)庫的復(fù)雜性。(3)簡化用戶權(quán)限的管理。(4)便于數(shù)據(jù)共享。
(5)可以重新組織數(shù)據(jù)以便輸出到其他用程序中。
例5-1創(chuàng)建一個(gè)名為BookSys的數(shù)據(jù)庫。例5-2創(chuàng)建一個(gè)名為KEJI_DB的數(shù)據(jù)庫。要求有三個(gè)文件,其中,主數(shù)據(jù)文件為10MB,最大大小為50MB,每次增長20%;輔助數(shù)據(jù)文件屬于文件組Fgroup,文件為10MB,大小不受限制,每次增長10%;事務(wù)日志文件大小為20MB,最大100MB,每次增長10MB。文件存儲(chǔ)在‘c:\\db’路徑下。
CREATEDATABASEKEJI_DB/*數(shù)據(jù)庫名*/
ONPRIMARY/*主文件組*/(NAME="KEJI_DB_Data1",/*主文件邏輯名稱*/FILENAME="c:\\db\\KEJI_DB_Data1.mdf",/*主文件物理名稱*/SIZE=10mb,MAXSIZE=50mb,FILEGROWTH=20%),
FILEGROUPFgroup/*文件組*/(NAME="KEJI_DB_Data2",/*主文件邏輯名稱*/FILENAME="c:\\db\\KEJI_DB_Data2.ndf",/*主文件物理名稱*/
MAXSIZE=UNLIMITED,/*增長不受限制*/SIZE=10Mb,FILEGROWTH=10mb)LOGON
(NAME="KEJI_DB_Log",/*日志文件邏輯名稱*/FILENAME="c:\\db\\KEJI_DB_Log.ldf",
/*日志文件物理名稱*/SIZE=20mb,MAXSIZE=100mb,FILEGROWTH=10mb)
使用SQL語句(1)修改數(shù)據(jù)庫內(nèi)容語法:
ALTERDATABASEdatabase_name{ADDFILE[,…n]
[TOFILEGROUPfilegroup_name]/*在文件組中增加數(shù)據(jù)文件*/
|ADDLOGFILE[,…n]/*增加事務(wù)日志文件*/
|REMOVEFILElogical_file_name/*刪除數(shù)據(jù)文件*/
|ADDFILEGROUPfilegroup_name/*增加文件組*/|REMOVEFILEGROUPfilegroup_name/*刪除文件組*/|MODIFYFILE[,…n]
/*修改文件屬性*/|MODIFYNAME=new_dbname/*更新數(shù)據(jù)庫名稱*/}例:使用觸發(fā)器判斷插入的工資數(shù)據(jù),如果工資超過100,000則不允許插入。CREATETABLEtrig_example(idINT,
nameVARCHAR(10),salaryMONEY)GO
CREATETRIGGERinsertrigONtrig_exampleFORINSERTAS
IF(SELECTCOUNT(*)FROMINSERTEDWHEREsalary>100000)>0BEGIN
PRINT"數(shù)據(jù)插入錯(cuò)誤:您試圖插入一個(gè)大于$100,000的工資數(shù)據(jù)!"ROLLBACKTRANSACTION--事務(wù)回滾END`
1.使用后級(jí)觸發(fā)器的插入和刪除
例題:使用(后級(jí))觸發(fā)器判斷插入的工資數(shù)據(jù),如果工資超過100,000則不允許插入。CREATETABLEtrig_example(idINT,
nameVARCHAR(10),salaryMONEY)GO
CREATETRIGGERinsertrigONtrig_exampleFORINSERTAS
IF(SELECTCOUNT(*)FROMINSERTEDWHEREsalary>100000)>0BEGIN
PRINT"數(shù)據(jù)插入錯(cuò)誤:您試圖插入一個(gè)大于$100,000的工資數(shù)據(jù)!"ROLLBACKTRANSACTION--事務(wù)回滾END
練習(xí):使用后級(jí)觸發(fā)器對(duì)數(shù)據(jù)刪除操作進(jìn)行檢查,如果刪除工資大于5000的記錄時(shí)提示錯(cuò)誤信息,并回滾到刪除前的狀態(tài)。
Insertintotrig_exampleValues(1,"tom",201*)Insertintotrig_exampleValues(2,"marry",6000)Insertintotrig_exampleValues(3,"rose",8000)
CREATETRIGGERdeletedONtrig_exampleFORdeleteAS
IF(SELECTCOUNT(*)FROMdeletedWHEREsalary>100000)>0BEGIN
PRINT"數(shù)據(jù)插入錯(cuò)誤:您試圖刪除一個(gè)大于$100,000的工資數(shù)據(jù)!"ROLLBACKTRANSACTION--事務(wù)回滾END
.使用前級(jí)級(jí)觸發(fā)器的插入和刪除
1.使用前級(jí)觸發(fā)器判斷插入trig_example表的工資數(shù)據(jù),如果工資超過100,000則不允許插入。
CREATETRIGGERinsert_trig_exampleONtrig_exampleInsteadofinsertAS
declare@salarymoney
select@salary=salaryfrominsertedIF@salary>1000print"wongdata!"elsebegin
insertintotrig_exampleselect*frominsertedend
2.使用前級(jí)觸發(fā)器對(duì)trig_example表的數(shù)據(jù)刪除操作進(jìn)行檢查,如果刪除工資大于5000的記錄時(shí)提示錯(cuò)誤信息,不刪除記錄;否則刪除相應(yīng)記錄。
CREATETRIGGERdelete_trig_exampleONtrig_exampleInsteadofdeleteAS
declare@idint,@salarymoneyselect@id=idfromdeletedIF@salary>100000print"刪除的數(shù)據(jù)大于!"elsebegin
deletetrig_examplewhere@id=idend
五、(12分)某商店管理涉及商店、商品和職工三個(gè)實(shí)體,它們分別具有下列屬性:
商店:商店編號(hào),店名,店址,店經(jīng)理商品:商品編號(hào),商品名,單價(jià),產(chǎn)地職工:職工編號(hào),職工名,性別,工資這些實(shí)體間的聯(lián)系如下:百貨公司管轄若干個(gè)連鎖商店,每家商店經(jīng)營若干商品,每家商店有若干職工,但每個(gè)職工只能服務(wù)于一家商店。職工參加某商店工作有開始時(shí)間,商店銷售商品的有月銷售量。①請(qǐng)畫出商店、商品和職工的ER圖。②將該ER圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型。
答:實(shí)體:商店(商店編號(hào),店號(hào),店址,店經(jīng)理)(0.5分)商品(商品編號(hào),商品名,單價(jià),產(chǎn)地)(0.5分)職工(職工編號(hào),職工名,性別,工資)(0.5分)聯(lián)系:P1-商店銷售商品的有銷售量間(0.5分)P2-職工參加某商店工作的開始時(shí)(0.5分)ER圖:(5分)
關(guān)系模式集:商店模式(商店編號(hào),店號(hào),店址,店經(jīng)理)(0.5分)商品模式(商品編號(hào),商品名,單價(jià),產(chǎn)地)(0.5分)
職工模式(職工編號(hào),職工名,性別,工資,商店編號(hào),開始時(shí)間)分)
P1模式(商店編號(hào),商品編號(hào),月銷售量)(0.5分)
2.使用sql語句創(chuàng)建表authors,結(jié)構(gòu)如下表所示(本題8分)列名數(shù)據(jù)類型大小是否為空默認(rèn)值說明authorIDint4N編號(hào)(主鍵),自動(dòng)增長authorNamenvarchar50N姓名Phonenvarchar13Y電話addressnvarchar255Y地址
2.createtableauthors
(authoridintidentity(1,1)primarykeynotnull,authornamenvarchar(50)notnull,phonenvarchar(13)null,addressnvarchar(255))
3.使用SQL語句對(duì)2中創(chuàng)建的authors表進(jìn)行如下修改:(每小題5分,共15分)(1)添加Sex列char(2),city列varchar(20)。(2)刪除city列。
(3)修改作者信息表authors中的address列將該列的屬性的長度更改為500。3.(1)altertableauthors
addsexchar(2)null,citynvarchar(20)null;(2)altertableauthorsdropcolumncity(3)altertableauthors
altercolumnaddressnvarchar(500)notnull
5.表結(jié)構(gòu)的修改
1(使用SQL語句將ygqk表的“姓名”列的數(shù)據(jù)類型改為varchar,長度
為20;
使用SQL語句在xmqk表中添加新列"立項(xiàng)時(shí)間",類型為datetime;使用SQL語句刪除xmqk表中的"立項(xiàng)時(shí)間"列。
useyeelgo
altertableygqk
altercolumnnamevarchar(20)
useyeelgo
altertablexmqk
addlixiangshijiandatetime
useyeelgo
altertablexmqk
dropcolumnlixiangshijian
4.表中數(shù)據(jù)的修改和刪除
使用SQL語句將ygqk表中第一條記錄的"郵政編碼"改為"450044"刪除ygqk表中出生日期在"1960-1-1"日之前的員工信息;
useyeelgo
updateygqk
setzip="450044"
useyeelgo
deleteygqk
wherebirthdayaltertable成績表add總成績float
update成績表
set總成績=數(shù)學(xué)+英語+數(shù)據(jù)庫+操作系統(tǒng)/*4*/
altertable成績表add平均成績float
update成績表
set平均成績=(數(shù)學(xué)+英語+數(shù)據(jù)庫+操作系統(tǒng))/4
selectsno學(xué)號(hào),(數(shù)學(xué)+英語+數(shù)據(jù)庫+操作系統(tǒng))/4平均成績from成績表
where數(shù)學(xué)>=60and英語>=60and數(shù)據(jù)庫>=60and操作系統(tǒng)>=60/*5*/
6.1.4函數(shù)的使用練習(xí):
1.查詢男生(女生)的人數(shù)。2.查詢‘計(jì)算06’班的最小年齡selectcount(*)fromstudentwheressex="男"
selectmax(sbirthday)fromstudent
6.1.5查詢結(jié)果排序練習(xí):
1.查詢所有學(xué)生的信息,將結(jié)果按系別降序、班級(jí)升序排列。
2.查詢‘信息系’年齡最大的3個(gè)學(xué)生的信息select*
fromstudent
orderbydepartdesc
selecttop3sno,sname,sage,departfromstudent
wheredepart="信息系"orderbysagedesc6.1.6使用分組練習(xí):
1.查詢?nèi)藬?shù)大于等于3的班級(jí)。2.查詢各個(gè)姓氏的學(xué)生人數(shù)。selectclass,count(*)fromstudentgroupbyclasshavingcount(*)>=3
selectleft(sname,1)as姓氏,count(*)as人數(shù)fromstudent
groupbyleft(sname,1)6.2.1連接查詢
2.查詢學(xué)生的學(xué)號(hào),所選課程的課程號(hào)、課程名和學(xué)分。
3.查詢學(xué)生的學(xué)號(hào)、姓名,所選課程的課程號(hào)、課程名和成績信息。selectsno,score.cno,cname,creditfromcourseinnerjoinscoreonscore.cno=course.cno/*92頁題*/
selectsname,student.sno,score.cno,cname,degreefromcourse,score,student
wherestudent.sno=score.snoandscore.cno=course.cno/*92頁題*/6.2.1連接查詢
3.查詢每門課程間接先行課的先行課
selectfrist.cno,frist.cpno,second.cpno,third.cpnofrom課程表frist,課程表second,課程表third
wherefrist.cpno=second.cnoandsecond.cpno=third.cnoandthird.cpnoisnotnull/*109頁題*/6.2.3子查詢練習(xí):
1.查詢選修了‘C語言’的學(xué)生學(xué)號(hào)。selectsnofromscorewherecno=(selectcnofromcourse
wherecname="C語言")/*139頁題*/6.2.3子查詢
3.查詢選修了“C語言”的學(xué)生姓名selectsnamefromStudentwheresnoin
(selectsnofromScorewherecno=
(selectcnofromCoursewherecname="c語言"))/*145頁第三題*/
友情提示:本文中關(guān)于《數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)》給出的范例僅供您參考拓展思維使用,數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。