軟件開發(fā)技術(shù)數(shù)據(jù)庫(kù)復(fù)習(xí)PPT課件
《軟件開發(fā)技術(shù)數(shù)據(jù)庫(kù)復(fù)習(xí)PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件開發(fā)技術(shù)數(shù)據(jù)庫(kù)復(fù)習(xí)PPT課件(57頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫(kù)設(shè)計(jì)過程E/RE/R圖到關(guān)圖到關(guān)系模式的系模式的轉(zhuǎn)換轉(zhuǎn)換關(guān)系模式關(guān)系模式的規(guī)范化的規(guī)范化需求分析需求分析概念模式設(shè)計(jì)概念模式設(shè)計(jì)邏輯模式設(shè)計(jì)邏輯模式設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施數(shù)據(jù)庫(kù)實(shí)施E/RE/R圖圖UMLUMLRDBMSRDBMS模式模式存儲(chǔ)模式存儲(chǔ)模式數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)第1頁(yè)/共57頁(yè)概念模式設(shè)計(jì)概念模式設(shè)計(jì)ER圖圖實(shí)體聯(lián)系模型(實(shí)體聯(lián)系模型(Entity-Relationship Model,簡(jiǎn)稱,簡(jiǎn)稱E-R模型)模型)第2頁(yè)/共57頁(yè)E-R模型的基本概念模型的基本概念 實(shí)體實(shí)體(entity):客觀存在,可以相互區(qū)別的事物稱為實(shí)體。:客觀存在,可以相互區(qū)別的事物稱為實(shí)體。 實(shí)體
2、集實(shí)體集(entity set):性質(zhì)相同的同類實(shí)體的集合,稱實(shí)體集。:性質(zhì)相同的同類實(shí)體的集合,稱實(shí)體集。 屬性屬性(attribute):實(shí)體有很多特性,每一個(gè)特性稱為屬性。每:實(shí)體有很多特性,每一個(gè)特性稱為屬性。每一個(gè)屬性有一個(gè)值域,其類型可以是整數(shù)型、實(shí)數(shù)型、字符串型一個(gè)屬性有一個(gè)值域,其類型可以是整數(shù)型、實(shí)數(shù)型、字符串型等。等。 實(shí)體標(biāo)識(shí)符實(shí)體標(biāo)識(shí)符(identifier):能惟一標(biāo)識(shí)實(shí)體的屬性或?qū)傩约?,稱:能惟一標(biāo)識(shí)實(shí)體的屬性或?qū)傩约?,稱 為實(shí)體標(biāo)識(shí)符。有時(shí)也稱為關(guān)鍵碼為實(shí)體標(biāo)識(shí)符。有時(shí)也稱為關(guān)鍵碼(key),或簡(jiǎn)稱為,或簡(jiǎn)稱為鍵鍵。 聯(lián)系聯(lián)系(relationship)是實(shí)體之間
3、的相互關(guān)系。是實(shí)體之間的相互關(guān)系。 數(shù)據(jù)模型數(shù)據(jù)模型: 能表示實(shí)體類型及實(shí)體間聯(lián)系的模型稱為能表示實(shí)體類型及實(shí)體間聯(lián)系的模型稱為“數(shù)據(jù)模數(shù)據(jù)模型型”。 第3頁(yè)/共57頁(yè)E-R圖的基本組成部分圖的基本組成部分 E/RE/R圖有四個(gè)主要部分:圖有四個(gè)主要部分:(1 1)實(shí)體集,用矩形表示。)實(shí)體集,用矩形表示。(2 2)屬性,用橢圓形表示。)屬性,用橢圓形表示。(3 3)聯(lián)系,用菱形表示。)聯(lián)系,用菱形表示。(4 4)直線,表示聯(lián)系的類型及實(shí)體與實(shí)體之間的聯(lián)系;)直線,表示聯(lián)系的類型及實(shí)體與實(shí)體之間的聯(lián)系;第4頁(yè)/共57頁(yè)數(shù)據(jù)聯(lián)系數(shù)據(jù)聯(lián)系 聯(lián)系(聯(lián)系(relationshiprelationshi
4、p)是實(shí)體之間的相互關(guān)系。)是實(shí)體之間的相互關(guān)系。 二元聯(lián)系有以下三種類型:二元聯(lián)系有以下三種類型:一對(duì)一聯(lián)系一對(duì)一聯(lián)系:實(shí)體集:實(shí)體集E1E1中每個(gè)實(shí)體至多和實(shí)體集中每個(gè)實(shí)體至多和實(shí)體集E2E2中中的一個(gè)實(shí)體有聯(lián)系,反之亦然,那么實(shí)體集的一個(gè)實(shí)體有聯(lián)系,反之亦然,那么實(shí)體集E1E1和和E2E2的的聯(lián)系稱為聯(lián)系稱為“一對(duì)一聯(lián)系一對(duì)一聯(lián)系”,記為,記為“1:11:1”。一對(duì)多聯(lián)系一對(duì)多聯(lián)系:實(shí)體集:實(shí)體集E1E1中每個(gè)實(shí)體可以與實(shí)體集中每個(gè)實(shí)體可以與實(shí)體集E2E2中中任意個(gè)(零個(gè)或多個(gè))實(shí)體間有聯(lián)系,而任意個(gè)(零個(gè)或多個(gè))實(shí)體間有聯(lián)系,而E2E2中每個(gè)實(shí)中每個(gè)實(shí)體至多和體至多和E1E1中一個(gè)實(shí)體
5、有聯(lián)系,那么稱中一個(gè)實(shí)體有聯(lián)系,那么稱E1E1對(duì)對(duì)E2E2的聯(lián)系的聯(lián)系是是“一對(duì)多聯(lián)系一對(duì)多聯(lián)系”,記為,記為“1:N1:N”。 多對(duì)多聯(lián)系多對(duì)多聯(lián)系:如果實(shí)體集:如果實(shí)體集E1E1中每個(gè)實(shí)體可以與實(shí)體集中每個(gè)實(shí)體可以與實(shí)體集E2E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)系,反之亦然,中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)系,反之亦然,那么稱那么稱E1E1和和E2E2的聯(lián)系是的聯(lián)系是“多對(duì)多聯(lián)系多對(duì)多聯(lián)系”,記為,記為“M:NM:N”。 第5頁(yè)/共57頁(yè)三種聯(lián)系的三種聯(lián)系的E-R圖圖實(shí)體實(shí)體1 1實(shí)體實(shí)體2 2聯(lián)系聯(lián)系實(shí)體實(shí)體1 1實(shí)體實(shí)體2 2聯(lián)系聯(lián)系實(shí)體實(shí)體1 1實(shí)體實(shí)體2 2聯(lián)系聯(lián)系 1 11 1聯(lián)系聯(lián)
6、系 1 1n n聯(lián)系聯(lián)系 m mn n聯(lián)系聯(lián)系第6頁(yè)/共57頁(yè)三種聯(lián)系的三種聯(lián)系的E-R圖圖客人客人飛機(jī)座位飛機(jī)座位號(hào)號(hào)聯(lián)系聯(lián)系院系院系教師教師聯(lián)系聯(lián)系課程課程學(xué)生學(xué)生聯(lián)系聯(lián)系 1 11 1聯(lián)系聯(lián)系 1 1n n聯(lián)系聯(lián)系 m mn n聯(lián)系聯(lián)系第7頁(yè)/共57頁(yè)E-R圖實(shí)例圖實(shí)例例:設(shè)計(jì)一個(gè)學(xué)生選課數(shù)據(jù)庫(kù)。要求包括學(xué)生例:設(shè)計(jì)一個(gè)學(xué)生選課數(shù)據(jù)庫(kù)。要求包括學(xué)生(student)(student)、課程、課程(course)(course)和教師和教師(teacher)(teacher)的信息。的信息。 實(shí)體中存在如下聯(lián)系:實(shí)體中存在如下聯(lián)系: 一個(gè)學(xué)生可以選修多門課,而每門課也能由多個(gè)學(xué)生選修;一個(gè)
7、學(xué)生可以選修多門課,而每門課也能由多個(gè)學(xué)生選修;一位教師可以教多門課,每門課也可以由多個(gè)教師講授;用一位教師可以教多門課,每門課也可以由多個(gè)教師講授;用E-RE-R圖來描述此數(shù)據(jù)庫(kù)。圖來描述此數(shù)據(jù)庫(kù)。 學(xué)生信息:學(xué)號(hào)(sNo)、學(xué)生姓名(sName)、年齡(age)、地址(sAddress)課程信息:課程號(hào)(cNo)、課程名(cName)、課程學(xué)分(credit)教師信息:工號(hào)(tNo)、姓名(tName)、教師的地址(tAddress)第8頁(yè)/共57頁(yè)學(xué)生學(xué)生-課程課程-教師教師E-R圖圖studentcourseteachertaketeachcreditscNamecNumsAddres
8、sagesNamesNotAddresstNametNoscore注意:如果一個(gè)聯(lián)系具有屬性,則這些屬性也與該注意:如果一個(gè)聯(lián)系具有屬性,則這些屬性也與該聯(lián)系連接起來。聯(lián)系連接起來。TeachCourseNo第9頁(yè)/共57頁(yè)概念模式設(shè)計(jì)概念模式設(shè)計(jì)UML從用例圖分析出對(duì)象StudentStudentstudentNostudentNostudentNamestudentNamesexsexdepartmentIddepartmentIdmajormajor第10頁(yè)/共57頁(yè)概念模式設(shè)計(jì)概念模式設(shè)計(jì)UMLTeacherteacherIdteacherNamesex對(duì)象之間的關(guān)系Departmen
9、tDepartmentIddeptNamelocation工作第11頁(yè)/共57頁(yè)概念模式設(shè)計(jì)概念模式設(shè)計(jì)UML對(duì)象之間的關(guān)系分類一元關(guān)系第12頁(yè)/共57頁(yè)概念模式設(shè)計(jì)概念模式設(shè)計(jì)UMLTeacherteacherIdteacherNamesex對(duì)象之間的關(guān)系分類DepartmentDepartmentIddeptNamelocation工作二元關(guān)系第13頁(yè)/共57頁(yè)概念模式設(shè)計(jì)概念模式設(shè)計(jì)UMLTeacherteacherIdteacherNamesex關(guān)系的重?cái)?shù)DepartmentDepartmentIddeptNamelocation1.n1重?cái)?shù)1.n重?cái)?shù)1第14頁(yè)/共57頁(yè)概念模式設(shè)計(jì)概
10、念模式設(shè)計(jì)UML關(guān)聯(lián)2個(gè)對(duì)象關(guān)聯(lián)產(chǎn)生屬性第15頁(yè)/共57頁(yè)關(guān)系模型的結(jié)構(gòu)關(guān)系模型的結(jié)構(gòu) - - 數(shù)據(jù)模型三要素之一數(shù)據(jù)模型三要素之一 一個(gè)關(guān)系的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。一個(gè)關(guān)系的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。關(guān)關(guān)系系關(guān)系名關(guān)系名第16頁(yè)/共57頁(yè)l 元組元組:表中的一行即為一個(gè)元組或記錄;:表中的一行即為一個(gè)元組或記錄;l 字段字段:表中的一列,列值稱為字段值,列名稱為字段名:表中的一列,列值稱為字段值,列名稱為字段名l 值域值域:字段值的取值范圍:字段值的取值范圍元組元組 ( (記錄)記錄)屬性屬性 ( (字段字段) )第17頁(yè)/共57頁(yè)l主鍵主鍵:能唯一標(biāo)識(shí)一個(gè)元組的
11、屬性集合。:能唯一標(biāo)識(shí)一個(gè)元組的屬性集合。l外鍵外鍵:若屬性組:若屬性組F F不是關(guān)系不是關(guān)系R1R1的主鍵,但它是關(guān)系的主鍵,但它是關(guān)系R2R2的主的主 鍵,則鍵,則F F稱是關(guān)系稱是關(guān)系R1R1的外鍵。的外鍵。主鍵主鍵主鍵主鍵外鍵外鍵第18頁(yè)/共57頁(yè)關(guān)系的完整性關(guān)系的完整性域完整性域完整性 實(shí)體完整性實(shí)體完整性 參照完整性參照完整性 第19頁(yè)/共57頁(yè)1)第一范式)第一范式(First Normal Form,1NF) 定義:定義: 如果一個(gè)關(guān)系模式如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基的所有屬性都是不可分的基 本本 數(shù)據(jù)項(xiàng),則關(guān)系數(shù)據(jù)項(xiàng),則關(guān)系R屬于第一范式。屬于第一范式。p第20
12、頁(yè)/共57頁(yè)2)第二范式)第二范式( Second Normal Form,2NF ) 定義:定義:若關(guān)系模式若關(guān)系模式R屬于第一范式,且每個(gè)非主屬性都完屬于第一范式,且每個(gè)非主屬性都完 全函數(shù)依賴于主鍵,全函數(shù)依賴于主鍵,則則R屬于第二范式屬于第二范式。t第21頁(yè)/共57頁(yè)3 3)第三范式)第三范式定義:定義:如果一個(gè)關(guān)系如果一個(gè)關(guān)系R是第二范式的,并且每個(gè)非主是第二范式的,并且每個(gè)非主屬性屬性 都不傳遞依賴于主鍵,則都不傳遞依賴于主鍵,則R屬于第三范屬于第三范式。式。 第22頁(yè)/共57頁(yè)4 4、E-R(UML)E-R(UML)模型到關(guān)系模式的轉(zhuǎn)換模型到關(guān)系模式的轉(zhuǎn)換1)實(shí)體)實(shí)體(對(duì)象對(duì)象
13、)到關(guān)系模式的轉(zhuǎn)換到關(guān)系模式的轉(zhuǎn)換2)聯(lián)系)聯(lián)系(關(guān)系關(guān)系)到關(guān)系模式的轉(zhuǎn)換到關(guān)系模式的轉(zhuǎn)換第23頁(yè)/共57頁(yè)1)實(shí)體到關(guān)系模式的轉(zhuǎn)換)實(shí)體到關(guān)系模式的轉(zhuǎn)換 規(guī)則:規(guī)則:將實(shí)體的名稱作為關(guān)將實(shí)體的名稱作為關(guān)系的名稱,將實(shí)體系的名稱,將實(shí)體的屬性作為關(guān)系的的屬性作為關(guān)系的屬性,并用下劃線屬性,并用下劃線標(biāo)識(shí)出主屬性。標(biāo)識(shí)出主屬性。 studentstudentcoursecoursetaketakesNosNosnamesnamesaddresssaddressageage cNocNo cnamecnamecreditscreditsgradegradestudent(sNo,sName,se
14、x,age),表示student關(guān)系,其中sNo為主鍵。course(cNo,cName,credits),表示course關(guān)系,其中cNo為主鍵。第24頁(yè)/共57頁(yè)2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換)聯(lián)系到關(guān)系模式的轉(zhuǎn)換 1:1 若實(shí)體間聯(lián)系是若實(shí)體間聯(lián)系是1:11:1,可以在兩個(gè)實(shí)體轉(zhuǎn)換成的兩個(gè),可以在兩個(gè)實(shí)體轉(zhuǎn)換成的兩個(gè)關(guān)系模式后,然后在其中任意一個(gè)關(guān)系模式的屬性集中關(guān)系模式后,然后在其中任意一個(gè)關(guān)系模式的屬性集中加入另一個(gè)關(guān)系模式的主鍵和聯(lián)系自身的屬性。加入另一個(gè)關(guān)系模式的主鍵和聯(lián)系自身的屬性。 也就也就是說是說1:11:1聯(lián)系不單獨(dú)轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系。聯(lián)系不單獨(dú)轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系。第25頁(yè)
15、/共57頁(yè)2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換)聯(lián)系到關(guān)系模式的轉(zhuǎn)換 1:N 若實(shí)體間聯(lián)系是若實(shí)體間聯(lián)系是1:N1:N,則在,則在N N端實(shí)體轉(zhuǎn)換成的關(guān)端實(shí)體轉(zhuǎn)換成的關(guān)系模式中加入系模式中加入1 1端實(shí)體的主鍵和聯(lián)系的屬性。端實(shí)體的主鍵和聯(lián)系的屬性。 同樣同樣1:N1:N聯(lián)系也不獨(dú)立構(gòu)成一個(gè)關(guān)系。聯(lián)系也不獨(dú)立構(gòu)成一個(gè)關(guān)系。TeacherteacherIdteacherNamesexDepartmentDepartmentIddeptNamelocation工作二元關(guān)系第26頁(yè)/共57頁(yè)2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換)聯(lián)系到關(guān)系模式的轉(zhuǎn)換 M:N若實(shí)體間聯(lián)系是若實(shí)體間聯(lián)系是M:NM:N,則將聯(lián)系轉(zhuǎn)換成一個(gè)關(guān)系模式
16、,其屬性為兩端實(shí)體的主鍵加,則將聯(lián)系轉(zhuǎn)換成一個(gè)關(guān)系模式,其屬性為兩端實(shí)體的主鍵加上聯(lián)系自身的屬性,而聯(lián)系關(guān)系的主鍵為一復(fù)合鍵,通常是兩端實(shí)體主鍵的組合。上聯(lián)系自身的屬性,而聯(lián)系關(guān)系的主鍵為一復(fù)合鍵,通常是兩端實(shí)體主鍵的組合。 第27頁(yè)/共57頁(yè)對(duì)于對(duì)于“學(xué)生選課學(xué)生選課”E/R圖的課程圖的課程和學(xué)生之間的多對(duì)多的聯(lián)系,和學(xué)生之間的多對(duì)多的聯(lián)系,可轉(zhuǎn)換成關(guān)系模式:可轉(zhuǎn)換成關(guān)系模式: take(sNo,cNo,grade) 主鍵為復(fù)合鍵主鍵為復(fù)合鍵sNo,cNo。 studentstudentcoursecoursetaketakesNosNosnamesnamesaddresssaddressa
17、geage cNocNo cnamecnamecreditscreditsgradegrade例:例:第28頁(yè)/共57頁(yè)關(guān)系數(shù)據(jù)庫(kù)的組織表1表2表3DBColumn or FieldRecord第29頁(yè)/共57頁(yè)SQL 2000SQL 2000字段類型Char varchar int dateTime第30頁(yè)/共57頁(yè)字段的屬性 請(qǐng)與Insertq 字段長(zhǎng)度 對(duì)于字符類型,例如char和varchar,定義字段的同時(shí)可以 指 定 字 段 存 放 的 字 符 的 個(gè) 數(shù) , 例 如 定 義 姓 名 字 段 為 n a m e varchar(20),表示該字段最多存放20個(gè)字符。數(shù)值型的字段,除
18、了decimal由用戶自己定義長(zhǎng)度和小數(shù)位數(shù)外,其他的如int, float等,系統(tǒng)自定義其占用的字節(jié)數(shù)。q 小數(shù)位數(shù) 用于decimal和貨幣類型的字段q 標(biāo)識(shí)種子 用于數(shù)據(jù)庫(kù)表的記錄號(hào)的自動(dòng)增加,經(jīng)常用于做表中記錄的主鍵。用于整型數(shù)值.q 默認(rèn)值 當(dāng)表中新增加一個(gè)記錄時(shí),又不想具體指定某個(gè)字段的值??梢越o它一個(gè)默認(rèn)的值。q 非空限制 用于限制字段的值不能為空,例如學(xué)生的姓名字段,每一個(gè)記錄都必須有值,因?yàn)閷W(xué)生不能沒有名字。q 索引 對(duì)字段進(jìn)行索引,可以通過設(shè)定該字段為查詢條件來加快數(shù)據(jù)的檢索速度和統(tǒng)計(jì)、分組的速度。q 關(guān)鍵字 關(guān)系模式中的主鍵,用于唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的記錄。第31頁(yè)/共57
19、頁(yè)簡(jiǎn)單的SQL 查詢語(yǔ)句 Select SELECT 字段1,字段2,| * FROM 表名 WHERE 條件表達(dá)式第32頁(yè)/共57頁(yè)結(jié)構(gòu)化查詢語(yǔ)言SQLSQLSQL語(yǔ)言是一種關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,是結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)的縮寫,它包括q 查詢q 定義q 操縱q 控制SQL的使用方法有兩種q 用戶交互的方式聯(lián)機(jī)使用,稱為交互式SQL;q 另一種是作為子語(yǔ)言嵌入到其他程序設(shè)計(jì)語(yǔ)言中使用,稱為嵌入式SQL。第33頁(yè)/共57頁(yè)SQL表達(dá)式SQL的表達(dá)式可分為兩類:1. 值表達(dá)式2. 邏輯表達(dá)式。值表達(dá)式包括幾種:1. 數(shù)值表達(dá)式:實(shí)現(xiàn)數(shù)值型數(shù)據(jù)的算術(shù)運(yùn)算;2.
20、 字串值表達(dá)式完成了字串的操作;3. 日期時(shí)間值表達(dá)式處理日期時(shí)間數(shù)據(jù)。邏輯運(yùn)算包括與(AND)、或(OR)、否(NOT)。SQL還提供了比較謂詞(=、!=、=)、范圍謂詞(IN、LIKE、IS)和存在謂詞(EXIST)。第34頁(yè)/共57頁(yè)函數(shù)SQL內(nèi)置函數(shù)有三類:1. 統(tǒng)計(jì)函數(shù):COUNT、SUM、AVG、MAX和MIN2. 字串處理函數(shù) len, substring(studentName,1,2)大小寫轉(zhuǎn)換函數(shù)(Upper,Lower)3. 時(shí)間日期處理函數(shù)。 時(shí)間日期處理函數(shù)用于返回當(dāng)前的日期與時(shí)間。常用的有三個(gè):getDate (返回當(dāng)前日期時(shí)間)。Year, Month, Day函
21、數(shù)第35頁(yè)/共57頁(yè)數(shù)據(jù)檢索語(yǔ)句select 語(yǔ)法格式為: SELECT ALL|DISTINCT 目標(biāo)列FROM 基本表 (或視圖)as 表別名WHERE 條件表達(dá)式GROUP BY 列名 HAVING 條件表達(dá)式ORDER BY 列名 ASC/DESC說明 DISTINCT為去掉查詢結(jié)果中重復(fù)的行,默認(rèn)為ALL,既列出所有的記錄;目標(biāo)列的格式可以寫為:列名1 as 別名1,列名n as 別名n,省略別名,返回的結(jié)果集中以列名標(biāo)記,否則以別名標(biāo)記,如果目標(biāo)列用*表示,則返回表中的所有的列;From子句指明了從那些表或視圖中得到數(shù)據(jù),所有的列名都必須存在于From后的表中,或出現(xiàn)于left j
22、oin, inner join, full outer join之后的表,如果列名存在于From后的多個(gè)表中,則必須標(biāo)明該列來源于哪個(gè)表,格式為 表名.列名;目標(biāo)列可以是SQL中的庫(kù)函數(shù)或常數(shù)表達(dá)式。如Sum、Count、Avg等函數(shù)。第36頁(yè)/共57頁(yè)Select 語(yǔ)句Where 子句有雙重作用,一是返回需要的記錄,另一種是建立多表之間的內(nèi)連接聯(lián)合查詢。 GROUP BY 用來對(duì)查詢結(jié)果進(jìn)行分組,把某一列值相同的記錄分成一組,與統(tǒng)計(jì)函數(shù)如Sum、Count等聯(lián)合使用;在有Group子句時(shí),可以進(jìn)一步使用HAVING子句對(duì)分組后的記過進(jìn)行過濾顯示,是分組提取條件;ORDER BY 是查詢結(jié)果的
23、排序方式,后面跟ASC為升序,DESC為降序,默認(rèn)為升序。第37頁(yè)/共57頁(yè)關(guān)系實(shí)例studentNonamebirthdaysexcourseNocourseNamestudentNocourseNoscore030318古待1986-1-2女S01高數(shù)一020301F0998020301張名1989-1-1男L02數(shù)值算法010101L0278010201張簡(jiǎn)1981-2-2女J04操作系統(tǒng)010101J0489030501許昌1987-9-8男F09德語(yǔ)010201J0179030502劉放1988-1-9男F01日語(yǔ)010101J0491010101李燦1981-9-2男J01數(shù)據(jù)庫(kù)0
24、10101J0199010503顧爭(zhēng)1988-2-7男020002郭潔1988-1-5女學(xué)生表 tblStudent 課程表tblCourse 學(xué)生修課表 tblSelectCourse第38頁(yè)/共57頁(yè)SQL例例1 1:查看學(xué)生表中的全部數(shù)據(jù),即列出所有的學(xué)生Select * from tblStudent這里 * 代表表中所有的列,上述的語(yǔ)句等價(jià)如下的語(yǔ)句:Select studentNo, studentName, birthday, sex From tblStudent這時(shí),表中有多少條記錄,數(shù)據(jù)庫(kù)系統(tǒng)就列出多少條記錄。第39頁(yè)/共57頁(yè)Where子句子 例2:查詢學(xué)生表tblStu
25、dent中的全部女生的學(xué)號(hào)、姓名和年齡Select studentNo, studentName, birthdayfrom tblStudent where sex=女 例3: 查詢學(xué)生修課表中成績(jī)大于80分的學(xué)生:Select * from tblSelectCourse where score80在where條件中,可以使用邏輯運(yùn)算符和比較關(guān)系符,包括:=、!=、=。也可以使用關(guān)鍵字,如:between、like、in等。注意,如果值是字符串或者字符、日期類型的,就要用單引號(hào)把它括起來,例如例2中的where條件。 例4 查詢操作系統(tǒng)成績(jī)?cè)?0到80之間的學(xué)生的學(xué)號(hào)select stud
26、entNo from tblSelectCourse where score between 70 and 80 and courseNo=J003第40頁(yè)/共57頁(yè)日期型數(shù)據(jù)處理 羅列出每個(gè)同學(xué)的年齡現(xiàn)在有了生日,當(dāng)前日期可以用getDate()函數(shù)獲得,日期型字段的年份可以用Year函數(shù)獲得Select year(getDate()- year(birthday)From tblStudent第41頁(yè)/共57頁(yè)order by 子句 例5:查詢02級(jí)學(xué)生的選課信息,按學(xué)號(hào)從小到大排列。由于學(xué)號(hào)的頭兩位代表學(xué)生的年級(jí),所以可以這么完成SQL語(yǔ)句的編寫:Select studentNo,cou
27、rseNofrom tblSelectCourse where studentNo like 02% order by studentNo這里%代表任意個(gè)字符。第42頁(yè)/共57頁(yè)group by 和Having子句 例6:求每個(gè)學(xué)生的課程總分(大于260分的同學(xué)羅列)Select sc.studentNo, studentName, sum(score) as totfrom tblSelectCourse sc, tblStudent s where s.studentNo=sc.studentNo g ro u p b y s c . s t u d e n t N o , s t u d
28、 e n t N a m e h a v i n g sum(score) 260改為 having tot 260 對(duì)不對(duì)?例7:列出選修課程大于等于三門課程的學(xué)生,并按學(xué)號(hào)排序select s.studentName,sc.studentNo, count(*) as courses from tblStudent s, tblSelectCourse sc where sc.studentNo=s.studentNo group by sc.studentNo, s.studentName having count(*)=3 order by sc.studentNo第43頁(yè)/共57頁(yè)內(nèi)
29、連接查詢 例8 查找軟件開發(fā)課程成績(jī)?cè)?0分以上的學(xué)生的姓名、學(xué)號(hào)、年齡以及具體成績(jī)。分析:直接觀察表tblSelectCourse和tblStudent,可以發(fā)現(xiàn),通過tblSelectCourse可以得到學(xué)生的學(xué)號(hào),但無法得到學(xué)生的名字和年齡,但缺少的信息可以通過表tblStudent得到,表tblStudent和tblSelectCourse的studentNo如果統(tǒng)一起來,就可以唯一得到所需要的信息 S e l e c t s . s t u d e n t N o , s t u d e n t N a m e , year(getDate()-year(birthday), sco
30、re from tblStudent s, tblSelectCourse sc where s.studentNo=sc.studentNo and courseNo=J001 and score80第44頁(yè)/共57頁(yè)例8的另外的寫法Select s.studentNo, studentName, birthday, score from tblStudent sinner join tblSelectCourse sc on s.studentNo=sc.studentNo where courseNo=J001 and score80第45頁(yè)/共57頁(yè)嵌套查詢 例9:找出成績(jī)(不分課程)
31、大于80分的學(xué)生的姓名Select studentName from tblStudent where studentNo in (select studentNo from tblSelectCourse where score80)這 里 , s e l e c t s t u d e n t N o f ro m s c w h e re score80返回一個(gè)集合,第二個(gè)查詢使用In關(guān)鍵字,判定表S中的studentNo是否在返回結(jié)果集中。第46頁(yè)/共57頁(yè)左連接查詢問題:班主任查詢班級(jí)學(xué)生某門課的成績(jī)表,如果一個(gè)學(xué)生沒選該課程,用內(nèi)連接查詢能得到什么結(jié)果?studentNonameb
32、irthdaysexcourseNocourseNamestudentNocourseNoscore030318古待1986-1-2女S01高數(shù)一020301F0998020301張名1989-1-1男L02數(shù)值算法010101L0278010201張簡(jiǎn)1981-2-2女J04操作系統(tǒng)010101J0489030501許昌1987-9-8男F09德語(yǔ)010201J0179030502劉放1988-1-9男F01日語(yǔ)010101J0491010101李燦1981-9-2男J01數(shù)據(jù)庫(kù)010101J0199010503顧爭(zhēng)1988-2-7男020002郭潔1988-1-5女學(xué)生表 tblStude
33、nt 課程表tblCourse 學(xué)生修課表 tblSelectCourse第47頁(yè)/共57頁(yè)左連接 查詢 Left joinSelect studentName, a.studentNo, b.courseNo, courseNameFrom tblStudent aLeft join tblSelectCourse b on (a.studentNo = b.studentNoAnd b.courseNo=F001)Left join tblCourse c on b.courseNo=c.courseNo第48頁(yè)/共57頁(yè)什么時(shí)候用左連接n 左表在右表中對(duì)應(yīng)的記錄可能有,也可能沒有的情況下
34、, 第49頁(yè)/共57頁(yè)SQL數(shù)據(jù)更新語(yǔ)句 語(yǔ)法數(shù)據(jù)更新語(yǔ)句 Updaten SQL的數(shù)據(jù)更新語(yǔ)句Update修改表中原有的數(shù)據(jù)記錄n 與Select 語(yǔ)句不同,Update語(yǔ)句不存在多表聯(lián)合操作,每個(gè)語(yǔ)句一次只能針對(duì)一個(gè)表。Update語(yǔ)法格式為:update 表 set 字段名 = 表達(dá)式, 字段名=表達(dá)式,. where條件第50頁(yè)/共57頁(yè)Update 例子例 1111:將所有學(xué)生的年齡加1歲update tblStudent set age = age+1update tblStudent set age = age+1 例1212:將學(xué)號(hào)為011101的學(xué)生的J01課程成績(jī)加5分up
35、date tblSelectCourse set score= score+5 update tblSelectCourse set score= score+5 where studentNo=where studentNo=011101011101 and courseNo = and courseNo = J01J01第51頁(yè)/共57頁(yè)插入新記錄語(yǔ)句 Insert 語(yǔ)法insert intoinsert into 表名(字段名,字段名2) valuesvalues (值1,值2,值n)注:1、不允許為空的字段,并且沒有字段默認(rèn)值的字段,必須出現(xiàn)在字段列表中.2、如果不寫字段名列表,則必須
36、按表結(jié)構(gòu)定義的字段順序,在values后定義值的序列.第52頁(yè)/共57頁(yè)Insert 舉例例13 向?qū)W生表中插入一個(gè)新同學(xué),數(shù)據(jù)為 0300101, 張三,男,21歲 insert into tblStudent values(030101, 張三, 21, 男)比較下例 insert into tblStudent(studentName, studentNo) values(汪于人, 980145)放棄了性別和年齡的輸入,如果表tblStudent的age和sex字段允許為空,則上面的語(yǔ)句向數(shù)據(jù)庫(kù)中插入的記錄中,這兩個(gè)字段的值是Null。如果age和sex有默認(rèn)值,則取默認(rèn)值. 例14 向
37、修課表中插入一個(gè)新的選課記錄,成績(jī)暫時(shí)不定 insert into tblSelectCourse(studentNo, courseNo) values(030101, J04)第53頁(yè)/共57頁(yè)刪除記錄 delete 語(yǔ)法 delete from 表名 where 條件第54頁(yè)/共57頁(yè)Delete 舉例例15 刪除表tblSelectCourse中011101的德語(yǔ)選課記錄delete from tblSelectCourse where studentNo=010101 and courseNo=F09第55頁(yè)/共57頁(yè)Sql作業(yè) 寫SQL語(yǔ)句1.將數(shù)據(jù)庫(kù)恢復(fù) (自己的準(zhǔn)備工作)2.羅列出所有可選的課程的課程號(hào),課程名。 3.羅列出所有學(xué)生的姓名、學(xué)號(hào),年齡(庫(kù)里是生日)。4.羅列出學(xué)號(hào)、姓名,所選課程的總分,按總分從大到小次序排列。5.羅列出學(xué)號(hào)、姓名、課程號(hào)、課程名、成績(jī),按學(xué)號(hào)從小到大排列 第56頁(yè)/共57頁(yè)感謝您的觀看!第57頁(yè)/共57頁(yè)
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語(yǔ)文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語(yǔ)文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版