




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1,SQL語言,1 SQL語言概述 2 數(shù)據(jù)定義功能與約束 3 數(shù)據(jù)操縱功能 4 數(shù)據(jù)查詢功能與視圖,2,SQL:結(jié)構(gòu)化查詢語言,Structured Query Language SEQUEL(Structured English QUEry Language)SQL ANSI:American National Standard Institute,美國國家標(biāo)準(zhǔn)局 ISO:International Standards Organization,國際標(biāo)準(zhǔn)化組織,3,SQL的發(fā)展,提出,Boyce和Chamberlin, 1974 System R上實(shí)現(xiàn),IBM,19751979 關(guān)系數(shù)據(jù)庫
2、的標(biāo)準(zhǔn)語言,4,標(biāo)準(zhǔn) 大致頁數(shù) 發(fā)布日期 SQL/86 1986.10 SQL/89(FIPS 127-1) 120頁 1989年 SQL/92 622頁 1992年 SQL99 1700頁 1999年 SQL2003 2003年,5,SQL的功能與命令,6,SQL的特點(diǎn),一體化 高度非過程化 面向集合的操作方式 以多種方式使用,7,一體化 1,集數(shù)種語言功能于一體 數(shù)據(jù)定義語言(D Definition L) 數(shù)據(jù)查詢語言(D Query L) 數(shù)據(jù)操縱語言(D Manipulate L) 數(shù)據(jù)控制語言(D Control L) 數(shù)據(jù)操作符統(tǒng)一,8,一體化 2,可以獨(dú)立完成數(shù)據(jù)庫生命周期中的
3、全部活動(dòng) 建立/重構(gòu)/維護(hù)/刪除數(shù)據(jù)庫 定義/修改/刪除關(guān)系模式 插入/修改/刪除數(shù)據(jù) 數(shù)據(jù)查詢 數(shù)據(jù)庫安全性、完整性控制 ,9,高度非過程化,非關(guān)系型數(shù)據(jù)操縱語言“面向過程”,必須制定存取路徑 SQL只要提出“做什么”,無須了解存取路徑 存取路徑的選擇以及SQL的操作過程由系統(tǒng)自動(dòng)完成,10,面向集合的操作方式,非關(guān)系數(shù)據(jù)模型采用面向記錄的操作方式 操作對(duì)象是一條記錄 SQL采用集合操作方式 操作對(duì)象可以是元組的集合,11,以多種方式使用,SQL是獨(dú)立的語言 能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式 SQL是嵌入式語言 能夠嵌入到高級(jí)語言(例如C,C+,Java)程序中,供程序員設(shè)計(jì)程序時(shí)使用,12
4、,基本表、查詢表與視圖表,基本表 數(shù)據(jù)庫實(shí)際存在的表 永久的 查詢表 用于存放查詢結(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ì)用戶透明,16,視圖,從基本表與視圖中導(dǎo)出的表 數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù) 視圖是一個(gè)虛表 用戶可以在視圖上再定義視圖,17,第4章 SQL語言,4.1 SQL語言概述 4.2 數(shù)據(jù)定義功能與約束 4.3 數(shù)據(jù)操縱功能
5、4.4 數(shù)據(jù)查詢功能與視圖,18,SQL的功能與命令簡介,19,創(chuàng)建基本表的語法,CREATE TABLE ( 列級(jí)完整性約束 , 列級(jí)完整性約束 , 表級(jí)完整性約束 ) 如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級(jí)上,否則既可以定義在列級(jí)也可以定義在表級(jí)。,20,:所要定義的基本表的名字 :表中所包含的屬性列的名字 :列的數(shù)據(jù)類型 :其中的內(nèi)容可以出現(xiàn)0次或1次 與一起:其中的內(nèi)容可以出現(xiàn)0次或多次 |:多個(gè)短語中選擇一個(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ù)類型,域的概念在SQL中用數(shù)據(jù)類型來實(shí)現(xiàn) 定義表的屬性時(shí)需要指明其數(shù)據(jù)類型及長度 選用哪種數(shù)據(jù)類型 取值范圍 要做哪些運(yùn)算,23,SQL的數(shù)據(jù)類型,數(shù)值型 字符串型 日期時(shí)間型 貨幣型,24,25,26,27,SQL的數(shù)據(jù)類型,數(shù)值型 字符串型 日期時(shí)間型 貨幣型,28,29,30,31,SQL的數(shù)據(jù)類型,數(shù)值型 字符串型 日期時(shí)間型 貨幣型,32,在SQL92或SQL99中日期是Date類型,時(shí)間是Time類型,33,SQL的數(shù)據(jù)類型,數(shù)值型 字符串型 日期時(shí)間型 貨幣型,34,SQL92或
7、SQL99沒有對(duì)應(yīng)的貨幣類型。,35,數(shù)據(jù)完整性,數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)要有實(shí)際意義 數(shù)據(jù)完整性約束 加在數(shù)據(jù)庫之上的語義約束條件 數(shù)據(jù)完整性約束用于防止數(shù)據(jù)庫中出現(xiàn)不符合語義的數(shù)據(jù),36,完整性約束的分類方式,實(shí)體完整性約束 參照完整性約束 以上為關(guān)系模型必須滿足的完整性約束條件,稱為關(guān)系的兩個(gè)不變性,由關(guān)系系統(tǒng)自動(dòng)支持 用戶定義的完整性約束 應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束,37,實(shí)體完整性規(guī)則,Entity Integrity 若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值 主碼不能為空,38,實(shí)體完整性約束,聲明表的主碼 ,實(shí)現(xiàn)實(shí)體完整性 語法 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),則稱F是基本關(guān)系R的外碼 基本關(guān)系R稱為參照關(guān)系(Referencing Relation) 基本關(guān)系S稱為被參照關(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) 參照完整性 語法 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,用戶定義的完整性約束,對(duì)數(shù)據(jù)類型的約束 對(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開頭 性別為男或者女,51,字符匹配運(yùn)算符 LIKE,一般格式 列名 NOT LIKE 匹配串中可包含以下通配符 _ 匹配任意一個(gè)字符; % 匹配0個(gè)或多個(gè)字符;,52,邏輯運(yùn)算符 AND與OR,用AND連接的條件表示必須全部滿足所有的條件 用OR連接的條件表示只要滿足其中一個(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é)期的開始日期小于結(jié)束日期 房屋的建筑面積不能低于使用面積 ,55,定義元組級(jí)完整性約束的例子,演員(姓名,工號(hào),性別) 姓名不能為空 演員的工號(hào)以字母A開頭 性別為男或者女 女演員的工號(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,完整性約束的分類方式二,列級(jí)完整性約束 元組級(jí)完整性約束 表級(jí)完整性約束,58,刪除表,刪除表的語法: DROP TABLE , 例子:刪除演員表 DROP TABLE 演員,59,修改表結(jié)構(gòu),在定義完表之后,需求有變化,可以使用ALTER TABLE語句實(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ù)類型char(20) ALTER TABLE 出演 ADD COLUMN 配音演員 char ( 20 ),63,刪除列的例子,刪除出演表中的列“片酬” ALTER TABLE 出演 DROP COLUMN 片酬,64,修改列定義的例子,修改出演表中“片名”的數(shù)據(jù)類型 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開頭 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ù)庫,分別存放課本練習(xí)4.1.1和4.1.3中的關(guān)系模式和數(shù)據(jù),創(chuàng)建基本表并插入數(shù)據(jù),下機(jī)前備份數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 彩鋼板開洞施工方案
- 露營基地設(shè)備租賃方案
- 巖板上墻鋪貼施工方案
- 海南瓊口口腔醫(yī)院項(xiàng)目環(huán)境影響報(bào)告表環(huán)評(píng)報(bào)告表
- 銅陵安全人臉識(shí)別施工方案
- 濟(jì)南玻璃鋼纖維布施工方案
- 滁州家用車庫地坪施工方案
- 氣象站防電涌入侵施工方案
- 臨沂古建施工方案公司
- 壓花地坪施工方案
- 2022年4月自考00150金融理論與實(shí)務(wù)試題及答案含解析
- 早期矯正知識(shí)培訓(xùn)課件模板
- 化工建設(shè)行業(yè)分析
- 教師事業(yè)單位獎(jiǎng)勵(lì)審批表主要事跡六篇
- 私樁共享商業(yè)計(jì)劃書
- 蔬菜基地報(bào)告
- 新時(shí)代這十年的變化
- 山地光伏培訓(xùn)課件
- 醫(yī)療器械經(jīng)營基礎(chǔ)知識(shí)培訓(xùn)售后服務(wù)規(guī)范
- 制造產(chǎn)品運(yùn)營方案
- 人工智能技術(shù)的應(yīng)用前景與發(fā)展趨勢(shì)
評(píng)論
0/150
提交評(píng)論