數(shù)據(jù)庫(kù)系統(tǒng)原理課件:SQL語(yǔ)言概述_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理課件:SQL語(yǔ)言概述_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理課件:SQL語(yǔ)言概述_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理課件:SQL語(yǔ)言概述_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理課件:SQL語(yǔ)言概述_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,SQL語(yǔ)言,1 SQL語(yǔ)言概述 2 數(shù)據(jù)定義功能與約束 3 數(shù)據(jù)操縱功能 4 數(shù)據(jù)查詢(xún)功能與視圖,2,SQL:結(jié)構(gòu)化查詢(xún)語(yǔ)言,Structured Query Language SEQUEL(Structured English QUEry Language)SQL ANSI:American National Standard Institute,美國(guó)國(guó)家標(biāo)準(zhǔn)局 ISO:International Standards Organization,國(guó)際標(biāo)準(zhǔn)化組織,3,SQL的發(fā)展,提出,Boyce和Chamberlin, 1974 System R上實(shí)現(xiàn),IBM,19751979 關(guān)系數(shù)據(jù)庫(kù)

2、的標(biāo)準(zhǔn)語(yǔ)言,4,標(biāo)準(zhǔn) 大致頁(yè)數(shù) 發(fā)布日期 SQL/86 1986.10 SQL/89(FIPS 127-1) 120頁(yè) 1989年 SQL/92 622頁(yè) 1992年 SQL99 1700頁(yè) 1999年 SQL2003 2003年,5,SQL的功能與命令,6,SQL的特點(diǎn),一體化 高度非過(guò)程化 面向集合的操作方式 以多種方式使用,7,一體化 1,集數(shù)種語(yǔ)言功能于一體 數(shù)據(jù)定義語(yǔ)言(D Definition L) 數(shù)據(jù)查詢(xún)語(yǔ)言(D Query L) 數(shù)據(jù)操縱語(yǔ)言(D Manipulate L) 數(shù)據(jù)控制語(yǔ)言(D Control L) 數(shù)據(jù)操作符統(tǒng)一,8,一體化 2,可以獨(dú)立完成數(shù)據(jù)庫(kù)生命周期中的

3、全部活動(dòng) 建立/重構(gòu)/維護(hù)/刪除數(shù)據(jù)庫(kù) 定義/修改/刪除關(guān)系模式 插入/修改/刪除數(shù)據(jù) 數(shù)據(jù)查詢(xún) 數(shù)據(jù)庫(kù)安全性、完整性控制 ,9,高度非過(guò)程化,非關(guān)系型數(shù)據(jù)操縱語(yǔ)言“面向過(guò)程”,必須制定存取路徑 SQL只要提出“做什么”,無(wú)須了解存取路徑 存取路徑的選擇以及SQL的操作過(guò)程由系統(tǒng)自動(dòng)完成,10,面向集合的操作方式,非關(guān)系數(shù)據(jù)模型采用面向記錄的操作方式 操作對(duì)象是一條記錄 SQL采用集合操作方式 操作對(duì)象可以是元組的集合,11,以多種方式使用,SQL是獨(dú)立的語(yǔ)言 能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式 SQL是嵌入式語(yǔ)言 能夠嵌入到高級(jí)語(yǔ)言(例如C,C+,Java)程序中,供程序員設(shè)計(jì)程序時(shí)使用,12

4、,基本表、查詢(xún)表與視圖表,基本表 數(shù)據(jù)庫(kù)實(shí)際存在的表 永久的 查詢(xún)表 用于存放查詢(xún)結(jié)果的表 臨時(shí)的 視圖表 由基本表或其他視圖表導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù),SQL支持三級(jí)模式結(jié)構(gòu),13,14,基本表,本身獨(dú)立存在的表 SQL中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)基本表 一個(gè)(或多個(gè))基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件 一個(gè)表可以帶若干索引,15,存儲(chǔ)文件,物理結(jié)構(gòu)是任意的,對(duì)用戶(hù)透明,16,視圖,從基本表與視圖中導(dǎo)出的表 數(shù)據(jù)庫(kù)中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù) 視圖是一個(gè)虛表 用戶(hù)可以在視圖上再定義視圖,17,第4章 SQL語(yǔ)言,4.1 SQL語(yǔ)言概述 4.2 數(shù)據(jù)定義功能與約束 4.3 數(shù)據(jù)操縱功能

5、4.4 數(shù)據(jù)查詢(xún)功能與視圖,18,SQL的功能與命令簡(jiǎn)介,19,創(chuàng)建基本表的語(yǔ)法,CREATE TABLE ( 列級(jí)完整性約束 , 列級(jí)完整性約束 , 表級(jí)完整性約束 ) 如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級(jí)上,否則既可以定義在列級(jí)也可以定義在表級(jí)。,20,:所要定義的基本表的名字 :表中所包含的屬性列的名字 :列的數(shù)據(jù)類(lèi)型 :其中的內(nèi)容可以出現(xiàn)0次或1次 與一起:其中的內(nèi)容可以出現(xiàn)0次或多次 |:多個(gè)短語(yǔ)中選擇一個(gè)。例如,term1|term2|term3 表示三項(xiàng)中任選一項(xiàng)。,21,定義基本表的例子,演員(姓名,工號(hào),性別),CREATE TABLE 演員( 姓名 c

6、har ( 20 ), 工號(hào) char ( 10 ), 性別 char (2) ),22,SQL的數(shù)據(jù)類(lèi)型,域的概念在SQL中用數(shù)據(jù)類(lèi)型來(lái)實(shí)現(xiàn) 定義表的屬性時(shí)需要指明其數(shù)據(jù)類(lèi)型及長(zhǎng)度 選用哪種數(shù)據(jù)類(lèi)型 取值范圍 要做哪些運(yùn)算,23,SQL的數(shù)據(jù)類(lèi)型,數(shù)值型 字符串型 日期時(shí)間型 貨幣型,24,25,26,27,SQL的數(shù)據(jù)類(lèi)型,數(shù)值型 字符串型 日期時(shí)間型 貨幣型,28,29,30,31,SQL的數(shù)據(jù)類(lèi)型,數(shù)值型 字符串型 日期時(shí)間型 貨幣型,32,在SQL92或SQL99中日期是Date類(lèi)型,時(shí)間是Time類(lèi)型,33,SQL的數(shù)據(jù)類(lèi)型,數(shù)值型 字符串型 日期時(shí)間型 貨幣型,34,SQL92或

7、SQL99沒(méi)有對(duì)應(yīng)的貨幣類(lèi)型。,35,數(shù)據(jù)完整性,數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)要有實(shí)際意義 數(shù)據(jù)完整性約束 加在數(shù)據(jù)庫(kù)之上的語(yǔ)義約束條件 數(shù)據(jù)完整性約束用于防止數(shù)據(jù)庫(kù)中出現(xiàn)不符合語(yǔ)義的數(shù)據(jù),36,完整性約束的分類(lèi)方式,實(shí)體完整性約束 參照完整性約束 以上為關(guān)系模型必須滿(mǎn)足的完整性約束條件,稱(chēng)為關(guān)系的兩個(gè)不變性,由關(guān)系系統(tǒng)自動(dòng)支持 用戶(hù)定義的完整性約束 應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語(yǔ)義約束,37,實(shí)體完整性規(guī)則,Entity Integrity 若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值 主碼不能為空,38,實(shí)體完整性約束,聲明表的主碼 ,實(shí)現(xiàn)實(shí)體完整性 語(yǔ)法 PRIMARY KE

8、Y ( , ),39,聲明主碼的例子,演員(姓名,工號(hào),性別),CREATE TABLE 演員( 姓名 char ( 20 ) , 工號(hào) char ( 10 ), 性別 char (2), PRIMARY KEY (工號(hào) ) ),40,關(guān)系間引用的示意圖,41,演員,電影,出演,引用1,42,R2,外碼約束的示意圖,43,外碼 Foreign Key,設(shè)F是基本關(guān)系R的一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱(chēng)F是基本關(guān)系R的外碼 基本關(guān)系R稱(chēng)為參照關(guān)系(Referencing Relation) 基本關(guān)系S稱(chēng)為被參照關(guān)系(Referenced Relation)或目

9、標(biāo)關(guān)系(Target Relation),44,參照完整性規(guī)則,Referential Integrity 若屬性組F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則對(duì)于R中每個(gè)元組在F上的值必須為: 或者取空值。此時(shí)F的每個(gè)屬性值均為空值 或者等于S中某個(gè)元組的主碼值,45,參照完整性約束,聲明表的外碼 實(shí)現(xiàn) 參照完整性 語(yǔ)法 FOREIGN KEY ( , ) REFERENCES ( , ),46,聲明外碼的例子,演員(姓名,工號(hào),性別) 電影(片名,導(dǎo)演,年代) 出演(工號(hào),片名,年代,片酬) 聲明演員表中的工號(hào)為出演表的外碼 聲明電影表中的片名和年代為出演表的外碼,47,聲明外

10、碼的例子 續(xù),CREATE TABLE 出演( 工號(hào) char ( 10 ), 片名 char ( 60 ), 年代 datetime, 片酬 int, PRIMARY KEY (工號(hào),片名,年代 ), FOREIGN KEY (工號(hào)) REFERENCES 演員 (工號(hào)), FOREIGN KEY (片名,年代) REFERENCES 電影 (片名,年代) ),48,用戶(hù)定義的完整性約束,對(duì)數(shù)據(jù)類(lèi)型的約束 對(duì)數(shù)據(jù)格式的約束 對(duì)取值范圍或取值集合的約束 對(duì)空值的約束,49,列級(jí)完整性約束內(nèi)容,NOT NULL:限制列取值非空 DEFAULT:給定列的默認(rèn)值,使用形式為:DEFAULT 常量 U

11、NIQUE:限制列取值不重 CHECK:限制列的取值范圍,使用形式為:CHECK(約束表達(dá)式),50,定義列級(jí)完整性約束的例子,演員(姓名,工號(hào),性別) 姓名不能為空 工號(hào)以字母A開(kāi)頭 性別為男或者女,51,字符匹配運(yùn)算符 LIKE,一般格式 列名 NOT LIKE 匹配串中可包含以下通配符 _ 匹配任意一個(gè)字符; % 匹配0個(gè)或多個(gè)字符;,52,邏輯運(yùn)算符 AND與OR,用AND連接的條件表示必須全部滿(mǎn)足所有的條件 用OR連接的條件表示只要滿(mǎn)足其中一個(gè)條件即可,53,定義列級(jí)完整性約束的例子 續(xù),CREATE TABLE 演員( 姓名 char ( 20 ) NOT NULL, 工號(hào) cha

12、r ( 10 ) CHECK ( 工號(hào) LIKE A% ), 性別 char (2) CHECK ( 性別= 男 OR 性別= 女) ),54,元組級(jí)完整性約束,元組中各個(gè)字段之間的聯(lián)系的約束 學(xué)期的開(kāi)始日期小于結(jié)束日期 房屋的建筑面積不能低于使用面積 ,55,定義元組級(jí)完整性約束的例子,演員(姓名,工號(hào),性別) 姓名不能為空 演員的工號(hào)以字母A開(kāi)頭 性別為男或者女 女演員的工號(hào)以數(shù)字0結(jié)尾 男演員的工號(hào)以數(shù)字1結(jié)尾,56,定義元組級(jí)完整性約束的例子 續(xù),CREATE TABLE 演員( 姓名 char ( 20 ) NOT NULL, 工號(hào) char ( 10 ) CHECK ( 工號(hào) LI

13、KE A% ), 性別 char (2) CHECK ( 性別= 男 OR 性別= 女), CHECK ( (性別= 女 AND 工號(hào) LIKE %0) OR ( 性別= 男 AND 工號(hào) LIKE %1) ) ),57,完整性約束的分類(lèi)方式二,列級(jí)完整性約束 元組級(jí)完整性約束 表級(jí)完整性約束,58,刪除表,刪除表的語(yǔ)法: DROP TABLE , 例子:刪除演員表 DROP TABLE 演員,59,修改表結(jié)構(gòu),在定義完表之后,需求有變化,可以使用ALTER TABLE語(yǔ)句實(shí)現(xiàn) 添加列 刪除列 修改列定義 添加約束 刪除約束,60,ALTER TABLE ALTER COLUMN | ADD

14、COLUMN 約束 | DROP COLUMN | ADD CONSTRAINT 約束名 PRIMARY KEY( , ) | ADD CONSTRAINT 約束名 FOREIGN KEY( , ) REFERNECES 表名( , ) | ADD CONSTRAINT 約束名 UNIQUE ( , ) | ADD CONSTRAINT 約束名 DEFAULT 默認(rèn)值 FOR(列名) | ADD CONSTRAINT 約束名 CHECK(邏輯表達(dá)式) | DROP CONSTRAINT 約束名 ,61,CREATE TABLE 出演( 工號(hào) char ( 10 ), 片名 char ( 60

15、), 年代 datetime, 片酬 int, PRIMARY KEY (工號(hào),片名,年代 ) ),出演表定義,62,添加列的例子,為出演表添加列“配音演員”,數(shù)據(jù)類(lèi)型char(20) ALTER TABLE 出演 ADD COLUMN 配音演員 char ( 20 ),63,刪除列的例子,刪除出演表中的列“片酬” ALTER TABLE 出演 DROP COLUMN 片酬,64,修改列定義的例子,修改出演表中“片名”的數(shù)據(jù)類(lèi)型 ALTER TABLE 出演 ALTER COLUMN 片名 char ( 80 ),65,添加外碼約束的例子,為出演表添加外碼約束FK1,F(xiàn)K2 ALTER TAB

16、LE 出演 ADD CONSTRAINT FK1 FOREIGN KEY (工號(hào)) REFERENCES 演員 (工號(hào)), ADD CONSTRAINT FK2 FOREIGN KEY (片名) REFERENCES 電影 (片名),66,添加CHECK約束的例子,為出演表添加CHECK約束,確保工號(hào)以A開(kāi)頭 ALTER TABLE 出演 ADD CONSTRAINT CHK CHECK( 工號(hào) LIKE A),67,刪除約束的例子,刪除出演表上的外碼約束FK1 ALTER TABLE 出演 DROP CONSRAINT FK1,68,作業(yè)與上機(jī)要求 1,復(fù)習(xí)2.5,5.6,5.7,6.1,6.2,6.3,6.4,預(yù)習(xí)上機(jī)內(nèi)容,結(jié)合課本5.1,5.2,5.3,5.5,5.8,5.9自學(xué)課件043與044 上機(jī)時(shí)做實(shí)驗(yàn)1-5,建立兩個(gè)數(shù)據(jù)庫(kù),分別存放課本練習(xí)4.1.1和4.1.3中的關(guān)系模式和數(shù)據(jù),創(chuàng)建基本表并插入數(shù)據(jù),下機(jī)前備份數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論