數(shù)據(jù)庫數(shù)據(jù)的定義(SQL語言).ppt_第1頁
數(shù)據(jù)庫數(shù)據(jù)的定義(SQL語言).ppt_第2頁
數(shù)據(jù)庫數(shù)據(jù)的定義(SQL語言).ppt_第3頁
數(shù)據(jù)庫數(shù)據(jù)的定義(SQL語言).ppt_第4頁
數(shù)據(jù)庫數(shù)據(jù)的定義(SQL語言).ppt_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第二章關(guān)系數(shù)據(jù)庫,1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義2數(shù)據(jù)的定義(SQL語言)關(guān)系的完整性關(guān)系操作,關(guān)系數(shù)據(jù)的定義,SQL語言數(shù)據(jù)的定義,SQL概述,SQL(StructuredQueryLanguage)結(jié)構(gòu)化查詢語言,是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL是一個通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言,SQL語言功能概述,四部分:數(shù)據(jù)定義功能、數(shù)據(jù)控制功能、數(shù)據(jù)查詢功能和數(shù)據(jù)操縱功能。,二、數(shù)據(jù)類型,SQL中域的概念用數(shù)據(jù)類型來實(shí)現(xiàn)定義表的屬性時需要指明其數(shù)據(jù)類型及長度選用哪種數(shù)據(jù)類型取值范圍要做哪些運(yùn)算,二、數(shù)據(jù)類型,數(shù)據(jù)定義,SQL的數(shù)據(jù)定義功能:模式定義、表定義、視圖和索引的定義,數(shù)據(jù)庫的定義,數(shù)據(jù)庫定義的語法格式:CREATEDATABASE,例:創(chuàng)建一個學(xué)生選課數(shù)據(jù)庫,取名為StudentInfo,關(guān)鍵字,CREATEDATABASEStudentInfo,數(shù)據(jù)庫的刪除,數(shù)據(jù)庫刪除的語法格式:DROPDATABASE,例:將數(shù)據(jù)庫StudentInfo刪除,關(guān)鍵字,DROPDATABASEStudentInfo,定義基本表,使用SQL語言中的CREATETABLE語句實(shí)現(xiàn),其一般格式為:CREATETABLE(列級完整性約束定義,列級完整性約束定義,表級完整性約束定義),關(guān)系模式,關(guān)系模式,學(xué)生(學(xué)號,姓名,性別,年齡,所在系)課程(課程號,課程名,學(xué)分)選課(學(xué)號,課程號,成績),關(guān)系,Courses表,students表,SC表,學(xué)生表Student,例5建立“學(xué)生”表Student,學(xué)號是主碼。CREATETABLEStudent(SnoCHAR(10)PRIMARYKEY,/*列級完整性約束條件*/SnameCHAR(8),SsexCHAR(2),SageSMALLINT,SdeptCHAR(15);,主碼,課程表Course,例6建立一個“課程”表CourseCREATETABLECourse(CnoCHAR(6)PRIMARYKEY,CnameCHAR(20),CcreditSMALLINT,);,學(xué)生選課表SC,例7建立一個“學(xué)生選課”表SCCREATETABLESC(SnoCHAR(10),CnoCHAR(6),GradeSMALLINT,PRIMARYKEY(Sno,Cno),);,如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。,在列級完整性約束定義處可以定義的約束,NOTNULL:限制列取值非空。PRIMARYKEY:指定本列為主碼。FOREIGNKEY:定義本列為引用其他表的外碼。使用形式為:FOREIGNKEY()REFERENCES()UNIQUE:限制列取值不重復(fù)。CHECK:限制列的取值范圍。DEFAULT:給定列的默認(rèn)值。,約束定義,列取值非空約束NOTNULL例:snamechar(10)NOTNULL,約束定義(續(xù)),表主碼約束在定義列時定義主碼(僅用于單列主碼)列定義PRIMARYKEY例:SNOchar(7)PRIMARYKEY在定義完列時定義主碼(用于單列或多列主碼,表級約束)PRIMARYKEY()例:PRIMARYKEY(SNO)PRIMARYKEY(SNO,CNO),約束定義(續(xù)),外碼引用約束,指明本表外碼列引用的表及表中的主碼列。,FOREIGNKEY()REFERENCES(),例:FOREIGNKEY(sno)REFERENCES學(xué)生表(sno),約束定義(續(xù)),默認(rèn)值約束格式:DEFAULT默認(rèn)值例:定義系的默認(rèn)值為“計(jì)算機(jī)系”。DEFAULT計(jì)算機(jī)系,約束定義(續(xù)),CHECK約束格式:CHECK(約束表達(dá)式)例:定義成績大于等于0。CHECK(grade=0),約束定義(續(xù)),UNIQUE約束在列級約束定義(僅用于單列約束)列定義UNIQUE例:SNAMEchar(7)UNIQUE在表級約束定義(用于單列或多列組合約束)UNIQUE()例:UNIQUE(SNO,CNO),關(guān)系,Courses表,students表,SC表,主鍵為(Sno,Cno),創(chuàng)建學(xué)生表,CREATETABLEStudent(Snochar(7)PRIMARYKEY,Snamechar(10)NOTNULL,Ssexchar(2)CHECK(Ssex=男ORSsex=女),SagetinyintCHECK(Sage=15ANDSage0),SemesterintCHECK(Semester0),PeriodintCHECK(Period0),PRIMARYKEY(Cno),練習(xí),P745,刪除表,當(dāng)確信不再需要某個表時,可以將其刪除刪除表時會將與表有關(guān)的所有對象一起刪掉,包括表中的數(shù)據(jù)。刪除表的語句格式為:DROPTABLE例:刪除test表的語句為:DROPTABLEtest,數(shù)據(jù)的定義,基本表的定義與刪除修改表結(jié)構(gòu),修改表結(jié)構(gòu),在定義完表之后,如果需求有變化,比如添加列、刪除列或修改列定義,可以使用ALTERTABLE語句實(shí)現(xiàn)。ALTERTABLE語句可以對表添加列、刪除列、修改列的定義、定義主碼、外碼,也可以添加和刪除約束。,修改表結(jié)構(gòu)語法,ALTERTABLEALTERCOLUMN|ADD|DROPCOLUMN|ADDPRIMARYKEY(列名,n)|ADDFOREIGNKEY(列名)REFERNECES表名(列名)、|ADDDEFAULT默認(rèn)值FOR(列名)|ADDCHECK(約束表達(dá)式),示例,例為SC表添加“修課類別”列,此列的定義為:XKLBchar(4),只能為空,或默認(rèn),不能為NOTNULL,ALTERTABLESCADDXKLBchar(4)NULL,示例,例3將新添加的XKLB的類型改為char(6)。,ALTERTABLESCALTERCOLUMNXKLBchar(6),示例,例4刪除Course表的XKLB列。,ALTERTABLECourseDROPCOLUMNXKLB,例題,將SC表中的Cno設(shè)置為course表中Cno列的外碼,練習(xí),按下面要求用SQL語句修改表結(jié)構(gòu)在Students表中插入學(xué)生宿舍號一列,定義為:Roomchar(6)為Students表中Sage列添加檢查約束,要求Sage的取值范圍為(15,45)將Courses表中的Cname的字符串長度改為16將Courses表中的Cname的取只設(shè)置為唯一取值刪除Students表中學(xué)生宿舍號列為SC表中Grade列添加檢查約束,要求Grade的取值范圍為0,100,數(shù)據(jù)完整性約束,數(shù)據(jù)完整性是指數(shù)據(jù)庫中存儲的數(shù)據(jù)是有意義的或正確的。,主要包括三大類:,實(shí)體完整性參照完整性用戶定義的完整性,實(shí)體完整性,實(shí)體完整性是保證關(guān)系中的每個元組都是可識別的和惟一的。而且表中不允許存在如下的記錄:無主碼值的記錄主碼值相同的記錄,參照完整性,用于描述實(shí)體之間的聯(lián)系。參照完整性一般是指多個實(shí)體(表)之間的關(guān)聯(lián)關(guān)系。一般用外碼實(shí)現(xiàn)。外碼:取作本表(子表)屬性之一的外表(父表,主表)主碼。主碼值先在主表中生成,后在子表中引用,外碼引用例,學(xué)生,課程,修課,(學(xué)號,姓名,),(課程號,課程名,),(學(xué)號,課程號,成績,),參照完整性規(guī)則,參照

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論