數(shù)據(jù)庫(kù)知識(shí)點(diǎn)總結(jié)
數(shù)據(jù)庫(kù)系統(tǒng):數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)用系統(tǒng)數(shù)據(jù)庫(kù)管理員
數(shù)據(jù)庫(kù)特點(diǎn):永久貯存有組織可共享
-----較小的冗余度較高的數(shù)據(jù)獨(dú)立性易擴(kuò)展性用戶(hù)共享
數(shù)據(jù)庫(kù)管理員:決定信息內(nèi)容和結(jié)構(gòu)儲(chǔ)存結(jié)構(gòu)和存取策略定義安全性完整性監(jiān)控使用運(yùn)行改進(jìn)重組重構(gòu)
DBMS的主要功能:數(shù)據(jù)定義數(shù)據(jù)操作數(shù)據(jù)庫(kù)的運(yùn)行管理數(shù)據(jù)庫(kù)的建立和維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化共享性高冗余度低以擴(kuò)充數(shù)據(jù)獨(dú)立性高由DBMS統(tǒng)一管理完整性安全性多用戶(hù)并發(fā)控制故障恢復(fù)數(shù)據(jù)模型組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作完整性約束數(shù)據(jù)字典系統(tǒng)中各類(lèi)數(shù)據(jù)描述的集合
基本關(guān)系代數(shù)運(yùn)算∪-×σπ傳統(tǒng)的關(guān)系運(yùn)算∪∩×-專(zhuān)門(mén)關(guān)系運(yùn)算σπ連接Sql組成:數(shù)據(jù)定義數(shù)據(jù)操縱數(shù)據(jù)控制嵌入式sql
SQL語(yǔ)言特點(diǎn):統(tǒng)一綜合高度非過(guò)程化面向集合操作自含嵌入語(yǔ)言簡(jiǎn)潔數(shù)據(jù)定義模式定義:createschemaauthorization
刪除:dropschema基本表定義:createtable(...)
修改:altertableadd新列完整性約束條件drop刪除Modify修改
索引定義create[union唯一][cluster聚簇]indexon
刪除dropindex
數(shù)據(jù)查詢(xún)select…fromorderby排序groupby分組
Where子句作用于基本表或試圖having作用于組選擇滿(mǎn)足條件的組
數(shù)據(jù)更新插入insert()into()value()修改updataset=刪除deletefrom
視圖定義createviewas刪除dropview查詢(xún)select..from更新updata..set...
數(shù)據(jù)庫(kù)設(shè)計(jì)步驟:需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施授權(quán)grantontableto[withgrantoption];回收revokeonfromcascade級(jí)聯(lián)角色createrole授權(quán)的集合
授權(quán)grantonnameto
角色授予其他grantto[withadminoption]
收回revokeonfrom
完整性約束constraint[primarykey..|foreignkey..|check..]Constraintprimarykey
Foreignkeysnoreferencesstudent(sno)
數(shù)據(jù)庫(kù)安全性控制:用戶(hù)標(biāo)識(shí)和鑒別存取控制試圖機(jī)制審計(jì)數(shù)據(jù)加密事務(wù)的特性:原子性一致性隔離性持續(xù)性并發(fā)控制:丟失修改不可重復(fù)讀讀臟數(shù)據(jù)
Odbc的流程:配置數(shù)據(jù)源初始化環(huán)境建立連接分配語(yǔ)句句柄執(zhí)行sql語(yǔ)句結(jié)果及處理終止處理結(jié)束后,釋放語(yǔ)句句柄釋放連接句柄并斷開(kāi)連接釋放環(huán)境句柄可串行化非串行化
時(shí)間T1T2T3時(shí)間T1T2T3t1slockAt1slockAT2x=A=0t2slockAT3unlockAt3x=A=0
T4xlockAt4x=A=0T5slockAt5unlockA
T6a=x+2等t6slockAT7unlockAt7unlockA
T8x=A=2t8x=A=0T9unlockAt9unlockAT10xlockAt10xlockAT11slockAt11A=x+2
T12A=x+2等t12xlockA
T13unlockAt13unlockAT14x=A=4t14xlockAT15unlockAt15A=x*2
T16xlockAt16A=x*xT17A=x*xt17unlockA
T18unlockAt18unlockA不產(chǎn)生死鎖的可串行化調(diào)度(t3t1t2)T1T2T3T1xlockAT2x=A=0T3xlockA
T4等A=x*xT5unlockAT6x=A=0T7xlockAT8A=x+2等T9unlockA
T10x=a=2T11A=x*2T12unlockA
等
擴(kuò)展閱讀:數(shù)據(jù)庫(kù)知識(shí)點(diǎn)總結(jié)
題型:
一、選擇題(每題1分,共10分)二、簡(jiǎn)答題:(每題10分,共30分)
三、應(yīng)用題:(第1題15分,第2題45分,共60分)
考試范圍:第一章
1、數(shù)據(jù)、的定義描述事物的符號(hào)記錄稱(chēng)為數(shù)據(jù)。
數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。
2、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)(了解)3、DBMS的功能(了解)
4、實(shí)體間聯(lián)系的三種類(lèi)型(1:1,1:n,m:n)5、E-R圖的畫(huà)法
a、不必畫(huà)出中間步驟。b、標(biāo)出實(shí)體間聯(lián)系的類(lèi)型。c、只需畫(huà)出關(guān)鍵字對(duì)應(yīng)的屬性。
6、數(shù)據(jù)庫(kù)系統(tǒng)的組成、核心7、數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟
第二章認(rèn)識(shí)關(guān)系運(yùn)算符第五章
1、數(shù)據(jù)庫(kù)的創(chuàng)建CREATEDATABASE2、創(chuàng)建表CREATETABLE3、數(shù)據(jù)插入INSERT4、數(shù)據(jù)修改UPDATE5、數(shù)據(jù)刪除DELETE
第六章
1、相關(guān)子查詢(xún)和非相關(guān)子查詢(xún)之間的區(qū)別2、視圖的優(yōu)點(diǎn)(了解)3、數(shù)據(jù)查詢(xún)SELECT:
1)內(nèi)連接2)分組、統(tǒng)計(jì)函數(shù)3)排序4)非相關(guān)子查詢(xún)
第七章
1、觸發(fā)器的寫(xiě)法
小結(jié)(第一章課件34到56第五章課件64到75
第六章課件(SELECT語(yǔ)句,內(nèi)連接,分組、統(tǒng)計(jì)函數(shù),排序,非相關(guān)子查詢(xún))重點(diǎn)第七章課件58到71)
數(shù)據(jù)(DATA,簡(jiǎn)稱(chēng)D)
定義:描述事物的符號(hào)記錄稱(chēng)為數(shù)據(jù)。數(shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱(chēng)DB)
.定義:是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。.特點(diǎn):
(1)數(shù)據(jù)庫(kù)中的數(shù)據(jù)按照一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存。
(2)具有較小的冗余度。
(3)較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶(hù)共享。數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)主要功能:
1)數(shù)據(jù)定義功能:。
2)數(shù)據(jù)組織、存儲(chǔ)和管理功能:3)數(shù)據(jù)操縱功能:4)數(shù)據(jù)庫(kù)的事務(wù)管理和運(yùn)行管理5)數(shù)據(jù)庫(kù)的建立和維護(hù)功能簡(jiǎn)答題:
1.相關(guān)子查詢(xún)和非相關(guān)子查詢(xún)之間的區(qū)別
a)非相關(guān)子查詢(xún)是獨(dú)立于外部查詢(xún)的子查詢(xún),子查詢(xún)總共執(zhí)行一次,執(zhí)行完畢后將值
傳遞給外部查詢(xún)。
b)相關(guān)子查詢(xún)是內(nèi)層子查詢(xún)條件依賴(lài)于外層父查詢(xún)的某個(gè)屬性值的子查詢(xún),外部查詢(xún)
執(zhí)行一行,子查詢(xún)就執(zhí)行一次。2.數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟
1需求分析;2概念結(jié)構(gòu)設(shè)計(jì);3邏輯結(jié)構(gòu)設(shè)計(jì);4數(shù)據(jù)庫(kù)物理設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施;5數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)
3.視圖的優(yōu)點(diǎn)(了解)
(1)為用戶(hù)集中數(shù)據(jù),簡(jiǎn)化用戶(hù)的數(shù)據(jù)查詢(xún)和處理。(2)屏蔽數(shù)據(jù)庫(kù)的復(fù)雜性。(3)簡(jiǎn)化用戶(hù)權(quán)限的管理。(4)便于數(shù)據(jù)共享。
(5)可以重新組織數(shù)據(jù)以便輸出到其他用程序中。
例5-1創(chuàng)建一個(gè)名為BookSys的數(shù)據(jù)庫(kù)。例5-2創(chuàng)建一個(gè)名為KEJI_DB的數(shù)據(jù)庫(kù)。要求有三個(gè)文件,其中,主數(shù)據(jù)文件為10MB,最大大小為50MB,每次增長(zhǎng)20%;輔助數(shù)據(jù)文件屬于文件組Fgroup,文件為10MB,大小不受限制,每次增長(zhǎng)10%;事務(wù)日志文件大小為20MB,最大100MB,每次增長(zhǎng)10MB。文件存儲(chǔ)在‘c:\\db’路徑下。
CREATEDATABASEKEJI_DB/*數(shù)據(jù)庫(kù)名*/
ONPRIMARY/*主文件組*/(NAME="KEJI_DB_Data1",/*主文件邏輯名稱(chēng)*/FILENAME="c:\\db\\KEJI_DB_Data1.mdf",/*主文件物理名稱(chēng)*/SIZE=10mb,MAXSIZE=50mb,FILEGROWTH=20%),
FILEGROUPFgroup/*文件組*/(NAME="KEJI_DB_Data2",/*主文件邏輯名稱(chēng)*/FILENAME="c:\\db\\KEJI_DB_Data2.ndf",/*主文件物理名稱(chēng)*/
MAXSIZE=UNLIMITED,/*增長(zhǎng)不受限制*/SIZE=10Mb,FILEGROWTH=10mb)LOGON
(NAME="KEJI_DB_Log",/*日志文件邏輯名稱(chēng)*/FILENAME="c:\\db\\KEJI_DB_Log.ldf",
/*日志文件物理名稱(chēng)*/SIZE=20mb,MAXSIZE=100mb,FILEGROWTH=10mb)
使用SQL語(yǔ)句(1)修改數(shù)據(jù)庫(kù)內(nèi)容語(yǔ)法:
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ù)庫(kù)名稱(chēng)*/}例:使用觸發(fā)器判斷插入的工資數(shù)據(jù),如果工資超過(guò)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ù),如果工資超過(guò)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ù),如果工資超過(guò)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)營(yíng)若干商品,每家商店有若干職工,但每個(gè)職工只能服務(wù)于一家商店。職工參加某商店工作有開(kāi)始時(shí)間,商店銷(xiāo)售商品的有月銷(xiāo)售量。①請(qǐng)畫(huà)出商店、商品和職工的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-商店銷(xiāo)售商品的有銷(xiāo)售量間(0.5分)P2-職工參加某商店工作的開(kāi)始時(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),開(kāi)始時(shí)間)分)
P1模式(商店編號(hào),商品編號(hào),月銷(xiāo)售量)(0.5分)
2.使用sql語(yǔ)句創(chuàng)建表authors,結(jié)構(gòu)如下表所示(本題8分)列名數(shù)據(jù)類(lèi)型大小是否為空默認(rèn)值說(shuō)明authorIDint4N編號(hào)(主鍵),自動(dòng)增長(zhǎng)authorNamenvarchar50N姓名Phonenvarchar13Y電話(huà)addressnvarchar255Y地址
2.createtableauthors
(authoridintidentity(1,1)primarykeynotnull,authornamenvarchar(50)notnull,phonenvarchar(13)null,addressnvarchar(255))
3.使用SQL語(yǔ)句對(duì)2中創(chuàng)建的authors表進(jìn)行如下修改:(每小題5分,共15分)(1)添加Sex列char(2),city列varchar(20)。(2)刪除city列。
(3)修改作者信息表authors中的address列將該列的屬性的長(zhǎng)度更改為500。3.(1)altertableauthors
addsexchar(2)null,citynvarchar(20)null;(2)altertableauthorsdropcolumncity(3)altertableauthors
altercolumnaddressnvarchar(500)notnull
5.表結(jié)構(gòu)的修改
1(使用SQL語(yǔ)句將ygqk表的“姓名”列的數(shù)據(jù)類(lèi)型改為varchar,長(zhǎng)度
為20;
使用SQL語(yǔ)句在xmqk表中添加新列"立項(xiàng)時(shí)間",類(lèi)型為datetime;使用SQL語(yǔ)句刪除xmqk表中的"立項(xiàng)時(shí)間"列。
useyeelgo
altertableygqk
altercolumnnamevarchar(20)
useyeelgo
altertablexmqk
addlixiangshijiandatetime
useyeelgo
altertablexmqk
dropcolumnlixiangshijian
4.表中數(shù)據(jù)的修改和刪除
使用SQL語(yǔ)句將ygqk表中第一條記錄的"郵政編碼"改為"450044"刪除ygqk表中出生日期在"1960-1-1"日之前的員工信息;
useyeelgo
updateygqk
setzip="450044"
useyeelgo
deleteygqk
wherebirthdayaltertable成績(jī)表add總成績(jī)float
update成績(jī)表
set總成績(jī)=數(shù)學(xué)+英語(yǔ)+數(shù)據(jù)庫(kù)+操作系統(tǒng)/*4*/
altertable成績(jī)表add平均成績(jī)float
update成績(jī)表
set平均成績(jī)=(數(shù)學(xué)+英語(yǔ)+數(shù)據(jù)庫(kù)+操作系統(tǒng))/4
selectsno學(xué)號(hào),(數(shù)學(xué)+英語(yǔ)+數(shù)據(jù)庫(kù)+操作系統(tǒng))/4平均成績(jī)from成績(jī)表
where數(shù)學(xué)>=60and英語(yǔ)>=60and數(shù)據(jù)庫(kù)>=60and操作系統(tǒng)>=60/*5*/
6.1.4函數(shù)的使用練習(xí):
1.查詢(xún)男生(女生)的人數(shù)。2.查詢(xún)‘計(jì)算06’班的最小年齡selectcount(*)fromstudentwheressex="男"
selectmax(sbirthday)fromstudent
6.1.5查詢(xún)結(jié)果排序練習(xí):
1.查詢(xún)所有學(xué)生的信息,將結(jié)果按系別降序、班級(jí)升序排列。
2.查詢(xún)‘信息系’年齡最大的3個(gè)學(xué)生的信息select*
fromstudent
orderbydepartdesc
selecttop3sno,sname,sage,departfromstudent
wheredepart="信息系"orderbysagedesc6.1.6使用分組練習(xí):
1.查詢(xún)?nèi)藬?shù)大于等于3的班級(jí)。2.查詢(xún)各個(gè)姓氏的學(xué)生人數(shù)。selectclass,count(*)fromstudentgroupbyclasshavingcount(*)>=3
selectleft(sname,1)as姓氏,count(*)as人數(shù)fromstudent
groupbyleft(sname,1)6.2.1連接查詢(xún)
2.查詢(xún)學(xué)生的學(xué)號(hào),所選課程的課程號(hào)、課程名和學(xué)分。
3.查詢(xún)學(xué)生的學(xué)號(hào)、姓名,所選課程的課程號(hào)、課程名和成績(jī)信息。selectsno,score.cno,cname,creditfromcourseinnerjoinscoreonscore.cno=course.cno/*92頁(yè)題*/
selectsname,student.sno,score.cno,cname,degreefromcourse,score,student
wherestudent.sno=score.snoandscore.cno=course.cno/*92頁(yè)題*/6.2.1連接查詢(xún)
3.查詢(xún)每門(mén)課程間接先行課的先行課
selectfrist.cno,frist.cpno,second.cpno,third.cpnofrom課程表frist,課程表second,課程表third
wherefrist.cpno=second.cnoandsecond.cpno=third.cnoandthird.cpnoisnotnull/*109頁(yè)題*/6.2.3子查詢(xún)練習(xí):
1.查詢(xún)選修了‘C語(yǔ)言’的學(xué)生學(xué)號(hào)。selectsnofromscorewherecno=(selectcnofromcourse
wherecname="C語(yǔ)言")/*139頁(yè)題*/6.2.3子查詢(xún)
3.查詢(xún)選修了“C語(yǔ)言”的學(xué)生姓名selectsnamefromStudentwheresnoin
(selectsnofromScorewherecno=
(selectcnofromCoursewherecname="c語(yǔ)言"))/*145頁(yè)第三題*/
友情提示:本文中關(guān)于《數(shù)據(jù)庫(kù)知識(shí)點(diǎn)總結(jié)》給出的范例僅供您參考拓展思維使用,數(shù)據(jù)庫(kù)知識(shí)點(diǎn)總結(jié):該篇文章建議您自主創(chuàng)作。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。