數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)
文件處理系統(tǒng)存在問題:數(shù)據(jù)的冗余和不一致,數(shù)據(jù)訪問困難,數(shù)據(jù)孤立,完整性問題,原子性問題,并發(fā)訪問異常,安全性問題
數(shù)據(jù)庫三級(jí)抽象物理層:最低層次的抽象,描述數(shù)據(jù)實(shí)際上是怎樣存儲(chǔ)的。邏輯層:比物理層層次稍高的抽象,描述數(shù)據(jù)庫中存儲(chǔ)什么數(shù)據(jù)及這些數(shù)據(jù)間存在什么關(guān)系。視圖層:最高層次的抽象,只描述整個(gè)數(shù)據(jù)庫的某個(gè)部分
數(shù)據(jù)操縱語言DML:使用戶可以訪問或操作那些按其某種適當(dāng)?shù)臄?shù)據(jù)模型組織起來的數(shù)據(jù)。過程化DML:要求用戶指定需要什么數(shù)據(jù)以及如何獲得這些數(shù)據(jù)。非過程化DML:只要求用戶指定需要什么數(shù)據(jù),而不指明如何獲得這些數(shù)據(jù)事務(wù)狀態(tài)圖活動(dòng)狀態(tài):初始狀態(tài);事務(wù)執(zhí)行時(shí)處于這個(gè)狀態(tài)。部分提交狀態(tài):最后一條語句執(zhí)行后。失敗狀態(tài):發(fā)現(xiàn)正常的執(zhí)行不能繼續(xù)之后。中止?fàn)顟B(tài):事務(wù)回滾并且數(shù)據(jù)庫已恢復(fù)到事務(wù)開始執(zhí)行前的狀態(tài)之后。提交狀態(tài):成功完成后事務(wù)進(jìn)入中止?fàn)顟B(tài),系統(tǒng)有兩種選擇:重啟事務(wù):事務(wù)中止是硬件錯(cuò)誤或不是由事務(wù)的內(nèi)部邏輯產(chǎn)生的軟件錯(cuò)誤時(shí)。殺死事務(wù):事務(wù)的內(nèi)部邏輯錯(cuò)誤,或者由于輸入錯(cuò)誤,或所需數(shù)據(jù)在數(shù)據(jù)庫中沒有找到
可恢復(fù)調(diào)度:對于每對事務(wù)和,如果讀取了由所寫的數(shù)據(jù)項(xiàng),則先于提交無級(jí)聯(lián)調(diào)度:對于每對事務(wù)和,如果讀取了由所寫的數(shù)據(jù)項(xiàng),則必須在這一讀取前提交,容易驗(yàn)證無級(jí)聯(lián)調(diào)度總是可恢復(fù)的。級(jí)聯(lián)回滾:因一個(gè)事無故障導(dǎo)致一系列事物回滾的現(xiàn)象。
強(qiáng)實(shí)體集:主碼是生成的模式的主碼。弱實(shí)體集:主碼由其所依賴的強(qiáng)實(shí)體集的主碼與弱實(shí)體集的分辨符組合而成超碼:一個(gè)或多個(gè)屬性的集合,這些屬性的組合可以使我們在一個(gè)關(guān)系中唯一地標(biāo)識(shí)一個(gè)元組。候選碼:任意子集都不能成為超碼。主碼:代表被數(shù)據(jù)庫設(shè)計(jì)者選中的用來在同一關(guān)系中區(qū)分不同元組的候選碼
事務(wù)ACID特性:原子性:事務(wù)的所有操作在數(shù)據(jù)庫中要么全部正確反映,要么全部不反映。一致性:隔離執(zhí)行事務(wù)時(shí)保持?jǐn)?shù)據(jù)庫的一致性。隔離性:盡管多個(gè)事務(wù)可能并發(fā)執(zhí)行,但系統(tǒng)保證,對于每對事務(wù)和,在看來,或者在開始之前已經(jīng)完成執(zhí)行,或者在完成之后開始執(zhí)行。持久性:一個(gè)事務(wù)成功完成后,它對數(shù)據(jù)庫的改變是永久的,即使系統(tǒng)可能出現(xiàn)故障
視圖:任何不是邏輯模型的一部分但作為虛關(guān)系對用戶可見的關(guān)系。屏蔽數(shù)據(jù)庫的邏輯細(xì)節(jié),提供防止用戶訪問數(shù)據(jù)庫的某些部分的安全性機(jī)制。createviewvas
物化視圖:保證如果用于定義視圖的實(shí)際關(guān)系改變了,視圖也跟著修改。視圖維護(hù):保證視圖一直是最新的過程。用其他視圖定義視圖:一個(gè)視圖可能被用到定義另一個(gè)視圖的表達(dá)式中視圖展開:該過程家丁視圖定義不是遞歸的
完整性約束:保證當(dāng)授權(quán)用戶對數(shù)據(jù)庫進(jìn)行修改時(shí)不會(huì)破壞數(shù)據(jù)的一致性,防止對數(shù)據(jù)的意外破壞
DBMS數(shù)據(jù)庫管理系統(tǒng):由一個(gè)互相關(guān)聯(lián)的數(shù)據(jù)的集合和一組可以訪問這些數(shù)據(jù)的程序組成。該集合為數(shù)據(jù)庫。目標(biāo):提供一個(gè)可以方便高效的存取數(shù)據(jù)庫信息的環(huán)境。廣義投影:運(yùn)算通過允許在投影列表中使用算數(shù)函數(shù)來對投影進(jìn)行擴(kuò)展П1~(E),其中E是任意關(guān)系代數(shù)表達(dá)式,而F1…Fn中的每一個(gè)都是涉及常量以及E的模式中屬性的算術(shù)表達(dá)式
刪除:r←r-Er是關(guān)系而E是關(guān)系代數(shù)查詢插入:r←r∪E更新:r←П1~(r)
數(shù)據(jù)定義:數(shù)據(jù)庫中的關(guān)系集合由數(shù)據(jù)定義語言(DDL)指定給系統(tǒng),包括每個(gè)關(guān)系的模式每個(gè)屬性的值域完整性約束每個(gè)關(guān)系維持的索引集合,每個(gè)關(guān)系安全性和權(quán)限信息。磁盤上每個(gè)關(guān)系的物理存儲(chǔ)結(jié)構(gòu)
建造表createtabler(A1D1,…,AnDn,,)r是關(guān)系名Ai是關(guān)系r模式的一個(gè)屬性名Di是屬性Ai域的值的域類型notnull數(shù)據(jù)不允許有空值insertinto關(guān)系名values()deletefrom關(guān)系名(表名)刪除droptabler去掉一個(gè)關(guān)系
altertableraddAD修改關(guān)系表r是已有關(guān)系名字A是要添加的屬性的名字D是要添加的屬性的域
as子句給結(jié)果關(guān)系中的屬性賦個(gè)名稱groupby子句中的一個(gè)或多個(gè)屬性是用來構(gòu)造分組的distinct用來刪除重復(fù)元組having分組限定條件空值檢測null有空值參與比較運(yùn)算,結(jié)果是unknow
集合成員資格:in測試元組是否是集合中成員,也可以用于枚舉集合
集合的比較:至少比某一個(gè)要大>some(some任意一個(gè)all所有每一個(gè))=some等價(jià)于inall等價(jià)于notin
將“關(guān)系A(chǔ)包含B”寫成“notexists(BexceptA)”
測試是否存在重復(fù)元組:結(jié)果中沒有重復(fù)的元組,unique返回真刪除:deletefromrwhereP插入:insertintoaccountvalues更新:updateaccountset
事務(wù):由查詢和更新語句序列組成commitwork提交當(dāng)前事務(wù)rollbackwork回滾當(dāng)前事務(wù)
notnull約束:禁止在該屬性上插入一個(gè)空值;同樣可以被用在用戶定義域的聲明中,由此該域類型的屬性不能為空
unique:指出Aj1….Ajm屬性形成了一個(gè)候選碼,候選碼的屬性可為空check:保證屬性值滿足指定的條件參照完整性:保證一個(gè)關(guān)系中給定屬性集上的取值也在另一關(guān)系的某一屬性集的取值中出現(xiàn)
函數(shù)依賴推導(dǎo):模式R上函數(shù)依賴α→β成立的條件是:如果對任意合法關(guān)系r(R)及r中任意兩個(gè)元組t1和t2,若t1[α]=t2[α],則t1[β]=t2[β]保持依賴判別:r分解為n份后,f的閉包不變。視圖等價(jià)的串行調(diào)度
1對于每個(gè)數(shù)據(jù)項(xiàng)Q,若事務(wù)Ti在調(diào)度S中讀取Q的初始值,那么在調(diào)度S’中Ti也必須讀取Q的初始值。2對于每個(gè)數(shù)據(jù)項(xiàng)Q,若事務(wù)Ti在調(diào)度S執(zhí)行read(Q),并且讀取的值是由事務(wù)Tj執(zhí)行的write(Q)產(chǎn)生的,則在調(diào)度S’中,Ti的read(Q)操作讀取的值Q也必須是有Tj的同一個(gè)write(Q)產(chǎn)生的。3對于每個(gè)數(shù)據(jù)項(xiàng)Q,若在調(diào)度S中有事務(wù)執(zhí)行最后的write(Q)操作,則在調(diào)度S’中操作該事務(wù)也必須執(zhí)行最后的write(Q)
BCNF滿足條件:對所有+中形如α→β的函數(shù)依賴下面至少一個(gè)成立:α→β是平凡依賴;α是R的一個(gè)超碼。分解方法:設(shè)R為不屬于BCNF的一個(gè)模式,則至少有一個(gè)非平凡的函數(shù)依賴α→β,且α不是R的超碼,我們在設(shè)計(jì)中用一下兩個(gè)模式取代R:(α∪β)(R-(β-α))
3NF滿足條件:+中所有形如α→β的函數(shù)依賴,至少有以下之一成立:α→β是一個(gè)平凡的函數(shù)依賴;α是R的一個(gè)超碼;β-α中的每個(gè)屬性A都包含在R的一個(gè)候選碼中
無損分解:如果我們把r投影至R1和R2上,然后計(jì)算投影結(jié)果的自然連接,我們?nèi)匀坏玫揭幻粯拥膔,ΠR1(r)ΠR2(r)=r。判別:R1交R2是二者中任意一個(gè)的超碼。
屬性集閉包(Armstring公理)自反律:βα,則α→β
增補(bǔ)律:α→β,則γα→βγ傳遞律:α→β及β→γ則α→γ合并律α→β及→γ,α→βγ分解律α→βγ,則α→βα→γ
偽傳遞律:若有α→β及γβ→δ則αγ→δ
閉包:α為一屬性集,我們稱在函數(shù)依賴集F下由α函數(shù)確定的所有屬性的集合為F下α的閉包α
屬性集閉包算法用途:1判定α是否為超碼,通過計(jì)算α,看α是否包含了R中的所有屬性。2通過檢驗(yàn)是否βα,我們可以驗(yàn)證函數(shù)依賴α→β是否成立。3對任意γR,我們找出閉包γ
+++++;對任意的Sγ
+,我們輸出一個(gè)函數(shù)
依賴γS
無關(guān)屬性:考慮函數(shù)依賴集F及F中函數(shù)依賴α→β,如果A∈α并且F邏輯蘊(yùn)涵(Fα→β)∪(αA)→β,則A在α中是無關(guān)的;如果如果A∈β并且F邏輯蘊(yùn)涵(Fα→β)∪α(β→A),則屬性A在β中是無關(guān)的
正則覆蓋(Canonicalcover)
F的一個(gè)正則覆蓋Fc是一個(gè)依賴集,使得F邏輯蘊(yùn)涵Fc中的所有依賴,并且Fc邏輯蘊(yùn)涵F中的所有依賴,此外Fc必須具有如下性質(zhì):Fc中任何函數(shù)依賴都不含無關(guān)屬性;Fc中函數(shù)依賴的左半部都是唯一的
若一個(gè)調(diào)度s于一個(gè)串行調(diào)度沖突等價(jià),稱調(diào)度s是沖突可串行化的
如果調(diào)度S可以經(jīng)過一系列非沖突指令交換轉(zhuǎn)換s’,我們稱S與S’是沖突等價(jià)的如果某個(gè)調(diào)度視圖等價(jià)于一個(gè)串行調(diào)度,則我們說這個(gè)調(diào)度S是視圖可串行化的共享鎖若事務(wù)Ti獲得了數(shù)據(jù)項(xiàng)Q的共享型鎖,則Ti可讀取但不能寫Q排它鎖:若事務(wù)Ti獲得了數(shù)據(jù)項(xiàng)Q的排他型鎖,則Ti可讀取又能寫Q兩階段封鎖協(xié)議:增長階段事務(wù)可以獲得鎖,但不能釋放鎖?s減階段事務(wù)可以釋放鎖,但不能獲得鎖。
兩階段封鎖協(xié)議保證沖突可串行化,并不保證不發(fā)生死鎖,級(jí)聯(lián)回滾可能發(fā)生嚴(yán)格兩階段封鎖協(xié)議:不僅要求封鎖是兩階段,還要求事務(wù)持有的所有排它鎖必須在事務(wù)提交后方可釋放。強(qiáng)兩階段封鎖協(xié)議:要求事務(wù)提交之前不得釋放任何鎖基于圖的協(xié)議:樹形協(xié)議只使用排他鎖樹形協(xié)議遵循規(guī)則:Ti首次加鎖可以對任何一個(gè)數(shù)據(jù)項(xiàng)進(jìn)行;此后Ti對數(shù)據(jù)項(xiàng)Q加鎖的前提是Ti持有Q的父項(xiàng)上的鎖;對數(shù)據(jù)項(xiàng)解鎖可以隨時(shí)進(jìn)行;數(shù)據(jù)項(xiàng)被Ti加鎖并解鎖后,Ti不能再對數(shù)據(jù)項(xiàng)加鎖
Distinct
primaryforeignreferencescheckunionIntersectExcept
擴(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)鍵字對應(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ā)器對數(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ā)器對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í)間,商店銷售商品的有月銷售量。①請畫出商店、商品和職工的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語句對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)問題,請聯(lián)系我們及時(shí)刪除。