軟件開發(fā)技術(shù)數(shù)據(jù)庫復(fù)習(xí)PPT課件
《軟件開發(fā)技術(shù)數(shù)據(jù)庫復(fù)習(xí)PPT課件》由會員分享,可在線閱讀,更多相關(guān)《軟件開發(fā)技術(shù)數(shù)據(jù)庫復(fù)習(xí)PPT課件(57頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫設(shè)計過程E/RE/R圖到關(guān)圖到關(guān)系模式的系模式的轉(zhuǎn)換轉(zhuǎn)換關(guān)系模式關(guān)系模式的規(guī)范化的規(guī)范化需求分析需求分析概念模式設(shè)計概念模式設(shè)計邏輯模式設(shè)計邏輯模式設(shè)計數(shù)據(jù)庫實施數(shù)據(jù)庫實施E/RE/R圖圖UMLUMLRDBMSRDBMS模式模式存儲模式存儲模式數(shù)據(jù)庫運行和維護(hù)數(shù)據(jù)庫運行和維護(hù)第1頁/共57頁概念模式設(shè)計概念模式設(shè)計ER圖圖實體聯(lián)系模型(實體聯(lián)系模型(Entity-Relationship Model,簡稱,簡稱E-R模型)模型)第2頁/共57頁E-R模型的基本概念模型的基本概念 實體實體(entity):客觀存在,可以相互區(qū)別的事物稱為實體。:客觀存在,可以相互區(qū)別的事物稱為實體。 實體
2、集實體集(entity set):性質(zhì)相同的同類實體的集合,稱實體集。:性質(zhì)相同的同類實體的集合,稱實體集。 屬性屬性(attribute):實體有很多特性,每一個特性稱為屬性。每:實體有很多特性,每一個特性稱為屬性。每一個屬性有一個值域,其類型可以是整數(shù)型、實數(shù)型、字符串型一個屬性有一個值域,其類型可以是整數(shù)型、實數(shù)型、字符串型等。等。 實體標(biāo)識符實體標(biāo)識符(identifier):能惟一標(biāo)識實體的屬性或?qū)傩约?,稱:能惟一標(biāo)識實體的屬性或?qū)傩约Q 為實體標(biāo)識符。有時也稱為關(guān)鍵碼為實體標(biāo)識符。有時也稱為關(guān)鍵碼(key),或簡稱為,或簡稱為鍵鍵。 聯(lián)系聯(lián)系(relationship)是實體之間
3、的相互關(guān)系。是實體之間的相互關(guān)系。 數(shù)據(jù)模型數(shù)據(jù)模型: 能表示實體類型及實體間聯(lián)系的模型稱為能表示實體類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模數(shù)據(jù)模型型”。 第3頁/共57頁E-R圖的基本組成部分圖的基本組成部分 E/RE/R圖有四個主要部分:圖有四個主要部分:(1 1)實體集,用矩形表示。)實體集,用矩形表示。(2 2)屬性,用橢圓形表示。)屬性,用橢圓形表示。(3 3)聯(lián)系,用菱形表示。)聯(lián)系,用菱形表示。(4 4)直線,表示聯(lián)系的類型及實體與實體之間的聯(lián)系;)直線,表示聯(lián)系的類型及實體與實體之間的聯(lián)系;第4頁/共57頁數(shù)據(jù)聯(lián)系數(shù)據(jù)聯(lián)系 聯(lián)系(聯(lián)系(relationshiprelationshi
4、p)是實體之間的相互關(guān)系。)是實體之間的相互關(guān)系。 二元聯(lián)系有以下三種類型:二元聯(lián)系有以下三種類型:一對一聯(lián)系一對一聯(lián)系:實體集:實體集E1E1中每個實體至多和實體集中每個實體至多和實體集E2E2中中的一個實體有聯(lián)系,反之亦然,那么實體集的一個實體有聯(lián)系,反之亦然,那么實體集E1E1和和E2E2的的聯(lián)系稱為聯(lián)系稱為“一對一聯(lián)系一對一聯(lián)系”,記為,記為“1:11:1”。一對多聯(lián)系一對多聯(lián)系:實體集:實體集E1E1中每個實體可以與實體集中每個實體可以與實體集E2E2中中任意個(零個或多個)實體間有聯(lián)系,而任意個(零個或多個)實體間有聯(lián)系,而E2E2中每個實中每個實體至多和體至多和E1E1中一個實體
5、有聯(lián)系,那么稱中一個實體有聯(lián)系,那么稱E1E1對對E2E2的聯(lián)系的聯(lián)系是是“一對多聯(lián)系一對多聯(lián)系”,記為,記為“1:N1:N”。 多對多聯(lián)系多對多聯(lián)系:如果實體集:如果實體集E1E1中每個實體可以與實體集中每個實體可以與實體集E2E2中任意個(零個或多個)實體有聯(lián)系,反之亦然,中任意個(零個或多個)實體有聯(lián)系,反之亦然,那么稱那么稱E1E1和和E2E2的聯(lián)系是的聯(lián)系是“多對多聯(lián)系多對多聯(lián)系”,記為,記為“M:NM:N”。 第5頁/共57頁三種聯(lián)系的三種聯(lián)系的E-R圖圖實體實體1 1實體實體2 2聯(lián)系聯(lián)系實體實體1 1實體實體2 2聯(lián)系聯(lián)系實體實體1 1實體實體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頁/共57頁三種聯(lián)系的三種聯(lián)系的E-R圖圖客人客人飛機座位飛機座位號號聯(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頁/共57頁E-R圖實例圖實例例:設(shè)計一個學(xué)生選課數(shù)據(jù)庫。要求包括學(xué)生例:設(shè)計一個學(xué)生選課數(shù)據(jù)庫。要求包括學(xué)生(student)(student)、課程、課程(course)(course)和教師和教師(teacher)(teacher)的信息。的信息。 實體中存在如下聯(lián)系:實體中存在如下聯(lián)系: 一個學(xué)生可以選修多門課,而每門課也能由多個學(xué)生選修;一個
7、學(xué)生可以選修多門課,而每門課也能由多個學(xué)生選修;一位教師可以教多門課,每門課也可以由多個教師講授;用一位教師可以教多門課,每門課也可以由多個教師講授;用E-RE-R圖來描述此數(shù)據(jù)庫。圖來描述此數(shù)據(jù)庫。 學(xué)生信息:學(xué)號(sNo)、學(xué)生姓名(sName)、年齡(age)、地址(sAddress)課程信息:課程號(cNo)、課程名(cName)、課程學(xué)分(credit)教師信息:工號(tNo)、姓名(tName)、教師的地址(tAddress)第8頁/共57頁學(xué)生學(xué)生-課程課程-教師教師E-R圖圖studentcourseteachertaketeachcreditscNamecNumsAddres
8、sagesNamesNotAddresstNametNoscore注意:如果一個聯(lián)系具有屬性,則這些屬性也與該注意:如果一個聯(lián)系具有屬性,則這些屬性也與該聯(lián)系連接起來。聯(lián)系連接起來。TeachCourseNo第9頁/共57頁概念模式設(shè)計概念模式設(shè)計UML從用例圖分析出對象StudentStudentstudentNostudentNostudentNamestudentNamesexsexdepartmentIddepartmentIdmajormajor第10頁/共57頁概念模式設(shè)計概念模式設(shè)計UMLTeacherteacherIdteacherNamesex對象之間的關(guān)系Departmen
9、tDepartmentIddeptNamelocation工作第11頁/共57頁概念模式設(shè)計概念模式設(shè)計UML對象之間的關(guān)系分類一元關(guān)系第12頁/共57頁概念模式設(shè)計概念模式設(shè)計UMLTeacherteacherIdteacherNamesex對象之間的關(guān)系分類DepartmentDepartmentIddeptNamelocation工作二元關(guān)系第13頁/共57頁概念模式設(shè)計概念模式設(shè)計UMLTeacherteacherIdteacherNamesex關(guān)系的重數(shù)DepartmentDepartmentIddeptNamelocation1.n1重數(shù)1.n重數(shù)1第14頁/共57頁概念模式設(shè)計概
10、念模式設(shè)計UML關(guān)聯(lián)2個對象關(guān)聯(lián)產(chǎn)生屬性第15頁/共57頁關(guān)系模型的結(jié)構(gòu)關(guān)系模型的結(jié)構(gòu) - - 數(shù)據(jù)模型三要素之一數(shù)據(jù)模型三要素之一 一個關(guān)系的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。一個關(guān)系的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。關(guān)關(guān)系系關(guān)系名關(guān)系名第16頁/共57頁l 元組元組:表中的一行即為一個元組或記錄;:表中的一行即為一個元組或記錄;l 字段字段:表中的一列,列值稱為字段值,列名稱為字段名:表中的一列,列值稱為字段值,列名稱為字段名l 值域值域:字段值的取值范圍:字段值的取值范圍元組元組 ( (記錄)記錄)屬性屬性 ( (字段字段) )第17頁/共57頁l主鍵主鍵:能唯一標(biāo)識一個元組的
11、屬性集合。:能唯一標(biāo)識一個元組的屬性集合。l外鍵外鍵:若屬性組:若屬性組F F不是關(guān)系不是關(guān)系R1R1的主鍵,但它是關(guān)系的主鍵,但它是關(guān)系R2R2的主的主 鍵,則鍵,則F F稱是關(guān)系稱是關(guān)系R1R1的外鍵。的外鍵。主鍵主鍵主鍵主鍵外鍵外鍵第18頁/共57頁關(guān)系的完整性關(guān)系的完整性域完整性域完整性 實體完整性實體完整性 參照完整性參照完整性 第19頁/共57頁1)第一范式)第一范式(First Normal Form,1NF) 定義:定義: 如果一個關(guān)系模式如果一個關(guān)系模式R的所有屬性都是不可分的基的所有屬性都是不可分的基 本本 數(shù)據(jù)項,則關(guān)系數(shù)據(jù)項,則關(guān)系R屬于第一范式。屬于第一范式。p第20
12、頁/共57頁2)第二范式)第二范式( Second Normal Form,2NF ) 定義:定義:若關(guān)系模式若關(guān)系模式R屬于第一范式,且每個非主屬性都完屬于第一范式,且每個非主屬性都完 全函數(shù)依賴于主鍵,全函數(shù)依賴于主鍵,則則R屬于第二范式屬于第二范式。t第21頁/共57頁3 3)第三范式)第三范式定義:定義:如果一個關(guān)系如果一個關(guān)系R是第二范式的,并且每個非主是第二范式的,并且每個非主屬性屬性 都不傳遞依賴于主鍵,則都不傳遞依賴于主鍵,則R屬于第三范屬于第三范式。式。 第22頁/共57頁4 4、E-R(UML)E-R(UML)模型到關(guān)系模式的轉(zhuǎn)換模型到關(guān)系模式的轉(zhuǎn)換1)實體)實體(對象對象
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頁/共57頁1)實體到關(guān)系模式的轉(zhuǎn)換)實體到關(guān)系模式的轉(zhuǎn)換 規(guī)則:規(guī)則:將實體的名稱作為關(guān)將實體的名稱作為關(guān)系的名稱,將實體系的名稱,將實體的屬性作為關(guān)系的的屬性作為關(guān)系的屬性,并用下劃線屬性,并用下劃線標(biāo)識出主屬性。標(biāo)識出主屬性。 studentstudentcoursecoursetaketakesNosNosnamesnamesaddresssaddressageage cNocNo cnamecnamecreditscreditsgradegradestudent(sNo,sName,se
14、x,age),表示student關(guān)系,其中sNo為主鍵。course(cNo,cName,credits),表示course關(guān)系,其中cNo為主鍵。第24頁/共57頁2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換)聯(lián)系到關(guān)系模式的轉(zhuǎn)換 1:1 若實體間聯(lián)系是若實體間聯(lián)系是1:11:1,可以在兩個實體轉(zhuǎn)換成的兩個,可以在兩個實體轉(zhuǎn)換成的兩個關(guān)系模式后,然后在其中任意一個關(guān)系模式的屬性集中關(guān)系模式后,然后在其中任意一個關(guān)系模式的屬性集中加入另一個關(guān)系模式的主鍵和聯(lián)系自身的屬性。加入另一個關(guān)系模式的主鍵和聯(lián)系自身的屬性。 也就也就是說是說1:11:1聯(lián)系不單獨轉(zhuǎn)換為一個獨立的關(guān)系。聯(lián)系不單獨轉(zhuǎn)換為一個獨立的關(guān)系。第25頁
15、/共57頁2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換)聯(lián)系到關(guān)系模式的轉(zhuǎn)換 1:N 若實體間聯(lián)系是若實體間聯(lián)系是1:N1:N,則在,則在N N端實體轉(zhuǎn)換成的關(guān)端實體轉(zhuǎn)換成的關(guān)系模式中加入系模式中加入1 1端實體的主鍵和聯(lián)系的屬性。端實體的主鍵和聯(lián)系的屬性。 同樣同樣1:N1:N聯(lián)系也不獨立構(gòu)成一個關(guān)系。聯(lián)系也不獨立構(gòu)成一個關(guān)系。TeacherteacherIdteacherNamesexDepartmentDepartmentIddeptNamelocation工作二元關(guān)系第26頁/共57頁2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換)聯(lián)系到關(guān)系模式的轉(zhuǎn)換 M:N若實體間聯(lián)系是若實體間聯(lián)系是M:NM:N,則將聯(lián)系轉(zhuǎn)換成一個關(guān)系模式
16、,其屬性為兩端實體的主鍵加,則將聯(lián)系轉(zhuǎn)換成一個關(guān)系模式,其屬性為兩端實體的主鍵加上聯(lián)系自身的屬性,而聯(lián)系關(guān)系的主鍵為一復(fù)合鍵,通常是兩端實體主鍵的組合。上聯(lián)系自身的屬性,而聯(lián)系關(guān)系的主鍵為一復(fù)合鍵,通常是兩端實體主鍵的組合。 第27頁/共57頁對于對于“學(xué)生選課學(xué)生選課”E/R圖的課程圖的課程和學(xué)生之間的多對多的聯(lián)系,和學(xué)生之間的多對多的聯(lián)系,可轉(zhuǎn)換成關(guān)系模式:可轉(zhuǎn)換成關(guān)系模式: take(sNo,cNo,grade) 主鍵為復(fù)合鍵主鍵為復(fù)合鍵sNo,cNo。 studentstudentcoursecoursetaketakesNosNosnamesnamesaddresssaddressa
17、geage cNocNo cnamecnamecreditscreditsgradegrade例:例:第28頁/共57頁關(guān)系數(shù)據(jù)庫的組織表1表2表3DBColumn or FieldRecord第29頁/共57頁SQL 2000SQL 2000字段類型Char varchar int dateTime第30頁/共57頁字段的屬性 請與Insertq 字段長度 對于字符類型,例如char和varchar,定義字段的同時可以 指 定 字 段 存 放 的 字 符 的 個 數(shù) , 例 如 定 義 姓 名 字 段 為 n a m e varchar(20),表示該字段最多存放20個字符。數(shù)值型的字段,除
18、了decimal由用戶自己定義長度和小數(shù)位數(shù)外,其他的如int, float等,系統(tǒng)自定義其占用的字節(jié)數(shù)。q 小數(shù)位數(shù) 用于decimal和貨幣類型的字段q 標(biāo)識種子 用于數(shù)據(jù)庫表的記錄號的自動增加,經(jīng)常用于做表中記錄的主鍵。用于整型數(shù)值.q 默認(rèn)值 當(dāng)表中新增加一個記錄時,又不想具體指定某個字段的值。可以給它一個默認(rèn)的值。q 非空限制 用于限制字段的值不能為空,例如學(xué)生的姓名字段,每一個記錄都必須有值,因為學(xué)生不能沒有名字。q 索引 對字段進(jìn)行索引,可以通過設(shè)定該字段為查詢條件來加快數(shù)據(jù)的檢索速度和統(tǒng)計、分組的速度。q 關(guān)鍵字 關(guān)系模式中的主鍵,用于唯一標(biāo)識數(shù)據(jù)庫表中的記錄。第31頁/共57
19、頁簡單的SQL 查詢語句 Select SELECT 字段1,字段2,| * FROM 表名 WHERE 條件表達(dá)式第32頁/共57頁結(jié)構(gòu)化查詢語言SQLSQLSQL語言是一種關(guān)系數(shù)據(jù)庫語言,是結(jié)構(gòu)化查詢語言(Structured Query Language)的縮寫,它包括q 查詢q 定義q 操縱q 控制SQL的使用方法有兩種q 用戶交互的方式聯(lián)機使用,稱為交互式SQL;q 另一種是作為子語言嵌入到其他程序設(shè)計語言中使用,稱為嵌入式SQL。第33頁/共57頁SQL表達(dá)式SQL的表達(dá)式可分為兩類:1. 值表達(dá)式2. 邏輯表達(dá)式。值表達(dá)式包括幾種:1. 數(shù)值表達(dá)式:實現(xiàn)數(shù)值型數(shù)據(jù)的算術(shù)運算;2.
20、 字串值表達(dá)式完成了字串的操作;3. 日期時間值表達(dá)式處理日期時間數(shù)據(jù)。邏輯運算包括與(AND)、或(OR)、否(NOT)。SQL還提供了比較謂詞(=、!=、=)、范圍謂詞(IN、LIKE、IS)和存在謂詞(EXIST)。第34頁/共57頁函數(shù)SQL內(nèi)置函數(shù)有三類:1. 統(tǒng)計函數(shù):COUNT、SUM、AVG、MAX和MIN2. 字串處理函數(shù) len, substring(studentName,1,2)大小寫轉(zhuǎn)換函數(shù)(Upper,Lower)3. 時間日期處理函數(shù)。 時間日期處理函數(shù)用于返回當(dāng)前的日期與時間。常用的有三個:getDate (返回當(dāng)前日期時間)。Year, Month, Day函
21、數(shù)第35頁/共57頁數(shù)據(jù)檢索語句select 語法格式為: 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后的多個表中,則必須標(biāo)明該列來源于哪個表,格式為 表名.列名;目標(biāo)列可以是SQL中的庫函數(shù)或常數(shù)表達(dá)式。如Sum、Count、Avg等函數(shù)。第36頁/共57頁Select 語句Where 子句有雙重作用,一是返回需要的記錄,另一種是建立多表之間的內(nèi)連接聯(lián)合查詢。 GROUP BY 用來對查詢結(jié)果進(jìn)行分組,把某一列值相同的記錄分成一組,與統(tǒng)計函數(shù)如Sum、Count等聯(lián)合使用;在有Group子句時,可以進(jìn)一步使用HAVING子句對分組后的記過進(jìn)行過濾顯示,是分組提取條件;ORDER BY 是查詢結(jié)果的
23、排序方式,后面跟ASC為升序,DESC為降序,默認(rèn)為升序。第37頁/共57頁關(guān)系實例studentNonamebirthdaysexcourseNocourseNamestudentNocourseNoscore030318古待1986-1-2女S01高數(shù)一020301F0998020301張名1989-1-1男L02數(shù)值算法010101L0278010201張簡1981-2-2女J04操作系統(tǒng)010101J0489030501許昌1987-9-8男F09德語010201J0179030502劉放1988-1-9男F01日語010101J0491010101李燦1981-9-2男J01數(shù)據(jù)庫0
24、10101J0199010503顧爭1988-2-7男020002郭潔1988-1-5女學(xué)生表 tblStudent 課程表tblCourse 學(xué)生修課表 tblSelectCourse第38頁/共57頁SQL例例1 1:查看學(xué)生表中的全部數(shù)據(jù),即列出所有的學(xué)生Select * from tblStudent這里 * 代表表中所有的列,上述的語句等價如下的語句:Select studentNo, studentName, birthday, sex From tblStudent這時,表中有多少條記錄,數(shù)據(jù)庫系統(tǒng)就列出多少條記錄。第39頁/共57頁Where子句子 例2:查詢學(xué)生表tblStu
25、dent中的全部女生的學(xué)號、姓名和年齡Select studentNo, studentName, birthdayfrom tblStudent where sex=女 例3: 查詢學(xué)生修課表中成績大于80分的學(xué)生:Select * from tblSelectCourse where score80在where條件中,可以使用邏輯運算符和比較關(guān)系符,包括:=、!=、=。也可以使用關(guān)鍵字,如:between、like、in等。注意,如果值是字符串或者字符、日期類型的,就要用單引號把它括起來,例如例2中的where條件。 例4 查詢操作系統(tǒng)成績在70到80之間的學(xué)生的學(xué)號select stud
26、entNo from tblSelectCourse where score between 70 and 80 and courseNo=J003第40頁/共57頁日期型數(shù)據(jù)處理 羅列出每個同學(xué)的年齡現(xiàn)在有了生日,當(dāng)前日期可以用getDate()函數(shù)獲得,日期型字段的年份可以用Year函數(shù)獲得Select year(getDate()- year(birthday)From tblStudent第41頁/共57頁order by 子句 例5:查詢02級學(xué)生的選課信息,按學(xué)號從小到大排列。由于學(xué)號的頭兩位代表學(xué)生的年級,所以可以這么完成SQL語句的編寫:Select studentNo,cou
27、rseNofrom tblSelectCourse where studentNo like 02% order by studentNo這里%代表任意個字符。第42頁/共57頁group by 和Having子句 例6:求每個學(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 對不對?例7:列出選修課程大于等于三門課程的學(xué)生,并按學(xué)號排序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頁/共57頁內(nèi)
29、連接查詢 例8 查找軟件開發(fā)課程成績在80分以上的學(xué)生的姓名、學(xué)號、年齡以及具體成績。分析:直接觀察表tblSelectCourse和tblStudent,可以發(fā)現(xiàn),通過tblSelectCourse可以得到學(xué)生的學(xué)號,但無法得到學(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頁/共57頁例8的另外的寫法Select s.studentNo, studentName, birthday, score from tblStudent sinner join tblSelectCourse sc on s.studentNo=sc.studentNo where courseNo=J001 and score80第45頁/共57頁嵌套查詢 例9:找出成績(不分課程)
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返回一個集合,第二個查詢使用In關(guān)鍵字,判定表S中的studentNo是否在返回結(jié)果集中。第46頁/共57頁左連接查詢問題:班主任查詢班級學(xué)生某門課的成績表,如果一個學(xué)生沒選該課程,用內(nèi)連接查詢能得到什么結(jié)果?studentNonameb
32、irthdaysexcourseNocourseNamestudentNocourseNoscore030318古待1986-1-2女S01高數(shù)一020301F0998020301張名1989-1-1男L02數(shù)值算法010101L0278010201張簡1981-2-2女J04操作系統(tǒng)010101J0489030501許昌1987-9-8男F09德語010201J0179030502劉放1988-1-9男F01日語010101J0491010101李燦1981-9-2男J01數(shù)據(jù)庫010101J0199010503顧爭1988-2-7男020002郭潔1988-1-5女學(xué)生表 tblStude
33、nt 課程表tblCourse 學(xué)生修課表 tblSelectCourse第47頁/共57頁左連接 查詢 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頁/共57頁什么時候用左連接n 左表在右表中對應(yīng)的記錄可能有,也可能沒有的情況下
34、, 第49頁/共57頁SQL數(shù)據(jù)更新語句 語法數(shù)據(jù)更新語句 Updaten SQL的數(shù)據(jù)更新語句Update修改表中原有的數(shù)據(jù)記錄n 與Select 語句不同,Update語句不存在多表聯(lián)合操作,每個語句一次只能針對一個表。Update語法格式為:update 表 set 字段名 = 表達(dá)式, 字段名=表達(dá)式,. where條件第50頁/共57頁Update 例子例 1111:將所有學(xué)生的年齡加1歲update tblStudent set age = age+1update tblStudent set age = age+1 例1212:將學(xué)號為011101的學(xué)生的J01課程成績加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頁/共57頁插入新記錄語句 Insert 語法insert intoinsert into 表名(字段名,字段名2) valuesvalues (值1,值2,值n)注:1、不允許為空的字段,并且沒有字段默認(rèn)值的字段,必須出現(xiàn)在字段列表中.2、如果不寫字段名列表,則必須
36、按表結(jié)構(gòu)定義的字段順序,在values后定義值的序列.第52頁/共57頁Insert 舉例例13 向?qū)W生表中插入一個新同學(xué),數(shù)據(jù)為 0300101, 張三,男,21歲 insert into tblStudent values(030101, 張三, 21, 男)比較下例 insert into tblStudent(studentName, studentNo) values(汪于人, 980145)放棄了性別和年齡的輸入,如果表tblStudent的age和sex字段允許為空,則上面的語句向數(shù)據(jù)庫中插入的記錄中,這兩個字段的值是Null。如果age和sex有默認(rèn)值,則取默認(rèn)值. 例14 向
37、修課表中插入一個新的選課記錄,成績暫時不定 insert into tblSelectCourse(studentNo, courseNo) values(030101, J04)第53頁/共57頁刪除記錄 delete 語法 delete from 表名 where 條件第54頁/共57頁Delete 舉例例15 刪除表tblSelectCourse中011101的德語選課記錄delete from tblSelectCourse where studentNo=010101 and courseNo=F09第55頁/共57頁Sql作業(yè) 寫SQL語句1.將數(shù)據(jù)庫恢復(fù) (自己的準(zhǔn)備工作)2.羅列出所有可選的課程的課程號,課程名。 3.羅列出所有學(xué)生的姓名、學(xué)號,年齡(庫里是生日)。4.羅列出學(xué)號、姓名,所選課程的總分,按總分從大到小次序排列。5.羅列出學(xué)號、姓名、課程號、課程名、成績,按學(xué)號從小到大排列 第56頁/共57頁感謝您的觀看!第57頁/共57頁
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭當(dāng)公安隊伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅守廉潔底線
- 2025做擔(dān)當(dāng)時代大任的中國青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會圍繞六個干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識培訓(xùn)冬季用電防火安全
- 2025加強政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長會長長的路慢慢地走