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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、的標準語言,4,標準 大致頁數 發(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的特點,一體化 高度非過程化 面向集合的操作方式 以多種方式使用,7,一體化 1,集數種語言功能于一體 數據定義語言(D Definition L) 數據查詢語言(D Query L) 數據操縱語言(D Manipulate L) 數據控制語言(D Control L) 數據操作符統(tǒng)一,8,一體化 2,可以獨立完成數據庫生命周期中的

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

4、,基本表、查詢表與視圖表,基本表 數據庫實際存在的表 永久的 查詢表 用于存放查詢結果的表 臨時的 視圖表 由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據,SQL支持三級模式結構,13,14,基本表,本身獨立存在的表 SQL中一個關系就對應一個基本表 一個(或多個)基本表對應一個存儲文件 一個表可以帶若干索引,15,存儲文件,物理結構是任意的,對用戶透明,16,視圖,從基本表與視圖中導出的表 數據庫中只存放視圖的定義而不存放視圖對應的數據 視圖是一個虛表 用戶可以在視圖上再定義視圖,17,第4章 SQL語言,4.1 SQL語言概述 4.2 數據定義功能與約束 4.3 數據操縱功能

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

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

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

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

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

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

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

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

13、KE A% ), 性別 char (2) CHECK ( 性別= 男 OR 性別= 女), CHECK ( (性別= 女 AND 工號 LIKE %0) OR ( 性別= 男 AND 工號 LIKE %1) ) ),57,完整性約束的分類方式二,列級完整性約束 元組級完整性約束 表級完整性約束,58,刪除表,刪除表的語法: DROP TABLE , 例子:刪除演員表 DROP TABLE 演員,59,修改表結構,在定義完表之后,需求有變化,可以使用ALTER TABLE語句實現(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 默認值 FOR(列名) | ADD CONSTRAINT 約束名 CHECK(邏輯表達式) | DROP CONSTRAINT 約束名 ,61,CREATE TABLE 出演( 工號 char ( 10 ), 片名 char ( 60

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論