【正文】
ELECT語句 ,具有靈活的使用方式和極強查詢的功能。關系操作中最常用的是“投影、選擇和連接” ,都體現(xiàn)在 SELECT語句中 : ? SELECT A1, A2, … , An ? FROM R1, R2, … , Rm ? [ WHERE F] ? SELECT語句語義為:將 FROM子句所指出的 R(基本表或視圖 )進行連接,從中選取滿足 WHERE子句中條件 F的行(元組),最后根據(jù) SELECT子句給出的 A(列名 )將查詢結果表輸出。 指出目標表的列名 ,相應于 “ 投影 ” 指出基本表或視圖 ,相應于 “ 連接 ” F為“選擇 ”操作的條件 65 關系數(shù)據(jù)庫語言 SQL ? 單表查詢 ? 從指定的一個表中找出符合條件的元組 . ? 例如,查詢所有男學生名的情況 . ? S N O S N A M E D E P A R T S E X B D A T E H E I G H T A 041 周光明 自動控制 男 1986 8 10 1. 7 C 005 張雷 計算機 男 1987 6 30 1. 75 C 008 王寧 計算機 女 1986 8 20 1. 62 M 038 李霞霞 應用數(shù)學 女 1988 10 20 1. 65 R 098 錢欣 管理工程 男 1986 5 16 1. 8 選擇選擇S N O S N A M E D E P A R T S E X B D A T E H E I G H T A 04 1 周光明 自動控制 男 1986 8 10 1. 7 C 00 5 張雷 計算機 男 1987 6 30 1. 75 R 09 8 錢欣 管理工程 男 1986 5 16 1. 8 SSELECT * FROM S WHERE SEX=‘男’; 66 關系數(shù)據(jù)庫語言 SQL SNAME DEPART CNAME GRADE 張雷 計算機 軟件工程 張雷 計算機 數(shù)據(jù)庫 82 周光明 自動控制 軟件工程 92 周光明 自動控制 數(shù)學分析 周光明 自動控制 人工智能 90 錢欣 管理工程 數(shù)據(jù)庫 75 錢欣 管理工程 人工智能 連接查詢 一個查詢同時涉及兩個以上的表,稱連接查詢。是關系數(shù)據(jù)庫中最主要的查詢。例如,查詢每個男學生及其選修課程的情況。要求列出學生名,系別,選修課程名及成績。 SELECT SNANE, DEPART, CNAME, GRADE FROM S, C, SC WHERE = AND = AND =‘男’; S N O C N O G R A D E A 0 4 1 C C 1 1 2 92 A 0 4 1 M E 2 3 4 9 2 . 5 A 0 4 1 M S 2 1 1 90 C 0 0 5 C C 1 1 2 8 4 . 5 C 0 0 5 C S 2 0 2 82 M 0 3 8 M E 2 3 4 85 R 0 9 8 C S 2 0 2 75 R 0 9 8 M S 2 1 1 7 0 . 5 S N O S N A M E D E P A R T S E X B D A T E H E I G H T A 041 周光明 自動控制 男 1986 8 10 1. 7 C 005 張雷 計算機 男 1987 6 30 1. 75 C 008 王寧 計算機 女 1986 8 20 1. 62 M 038 李霞霞 應用數(shù)學 女 1988 10 20 1. 65 R 098 錢欣 管理工程 男 1986 5 16 1. 8 C N O C N A M E L H O U R S E M E S T E R C C 1 12 軟件工程 60 春 C S 202 數(shù)據(jù)庫 45 秋 E E 103 控制工程 60 春 M E 234 數(shù)學分析 40 秋 M S 21 1 人工智能 60 秋 學生登記表(S)學生選課成績表(SC)課程開設表(C)查詢涉及 S、 C和 SC三個表, S和 SC表通過 SNO作連接 , C和 SC表通過 CNO來實現(xiàn)連接 67 關系數(shù)據(jù)庫語言 SQL ? SQL的數(shù)據(jù)更新 ? SQL提供了插入數(shù)據(jù)、更改數(shù)據(jù)和刪除數(shù)據(jù)的 3類語句 。 ? (1) 插入語句 ? 插入語句 INSERT可將一個記錄插入到指定的表中: ? 例如,將一個新的課程記錄插入到課程開設表 C中 : ? 插入插入(CW101,論文寫作,30,春)C N O C N A M E L H O U R S E M E S T E R C C 1 12 軟件工程 60 春 C S 202 數(shù)據(jù)庫 45 秋 E E 103 控制工程 60 春 M E 234 數(shù)學分析 40 秋 M S 21 1 人工智能 60 秋 C W 101 論文寫作 30 春 C N O C N A M E L H O U R S E M E S T E R C C 1 12 軟件工程 60 春 C S 20 2 數(shù)據(jù)庫 45 秋 E E 10 3 控制工程 60 春 M E 23 4 數(shù)學分析 40 秋 M S 21 1 人工智能 60 秋 CINSERT INTO 表名 ( 列名 1, 列名 2… ) VALUES( 表達式 1, 表達式 2, … ) INSERT INTO S( CNO, CNAME, LHOUR, SEMESTER) VALUES(‘ CW101?,‘論文寫作 ?, 30,?春’ ) 68 關系數(shù)據(jù)庫語言 SQL ? ( 2)更改語句 ? 對指定表中已有數(shù)據(jù)進行修改。語句格式如下: 其功能是修改指定表中滿足 WHERE子句條件的記錄,其中 SET子句給出 表達式 的值用于取代相應列的值 . ? 例如 :將‘ ME234?課程的課時改為 30,并改成春季開設: ? 更新更新C N O C N A M E L H O U R S E M E S T E R C C 1 1 2 軟件工程 60 春 C S 2 0 2 數(shù)據(jù)庫 45 秋 E E 1 0 3 控制工程 60 春 M E 2 3 4 數(shù)學分析 40 秋 M S 2 1 1 人工智能 60 秋 C N O C N A M E L H O U R S E M E S T E R C C 1 12 軟件工程 60 春 C S 202 數(shù)據(jù)庫 45 秋 E E 103 控制工程 60 春 M E 234 數(shù)學分析 30 春 M S 21 1 人工智能 60 秋 CUPDATE 表名 SET 列名 = 表達式 ….. [ WHERE條件 ] UPDATE C SET LHOUR=30, SEMESTER=‘春’ WHERE CNO=‘ ME234? ; 69 關系數(shù)據(jù)庫語言 SQL ?( 3)刪除數(shù)據(jù) ? SQL刪除語句的格式為: ? 其功能是從指定表中刪除滿足 WHERE子句條件的記錄。如果省略 WHERE子句,則刪除表中所有記錄 . ? 例如,從 C表中刪除課程號為’ CC112?的記錄: ? 刪除刪除C N O C N A M E L H O U R S E M E S T E R C S 2 0 2 數(shù)據(jù)庫 45 秋 E E 1 0 3 控制工程 60 春 M E 2 3 4 數(shù)學分析 40 秋 M S 2 1 1 人工智能 60 秋 CN O CN AM E L H O U R S E M E S T E R C C 1 1 2 軟件工程 60 春 C S 2 0 2 數(shù)據(jù)庫 45 秋 E E 1 0 3 控制工程 60 春 M E 2 3 4 數(shù)學分析 40 秋 M S 2 1 1 人工智能 60 秋 CDELETE FROM 表名 [ WHERE 條件 ] DELETE FROM C WHERE CNO=?CC112?。 70 關系數(shù)據(jù)庫語言 SQL ? SQL的 視圖 ? 視圖是 DBMS所提供的一種由用戶觀察數(shù)據(jù)庫中數(shù)據(jù)的重要機制。視圖可由基本表或其他視圖導出。它與基本表不同,視圖只是一個虛表,在數(shù)據(jù)字典中保留其邏輯定義,而不作為一個表實際存儲數(shù)據(jù)。 ? SQL用 CREATE VIEW語句建立視圖,其格式為: ? ? CREATE VIEW <視圖名>[<列名>, … ] ? AS <子查詢> 71 關系數(shù)據(jù)庫語言 SQL ? SQL視圖的例 : ? 例如,若建立管理工程系學生的視圖 ME_S,語句為: ? ? 視圖定義后,用戶就可以象對基本表操作一樣對視圖進行查詢。 例如,在管理工程系的學生視圖中找出年齡大于 25歲的學生 ,其 SQL語句為 : ? CREATE VIEW ME_s AS (SELECT SNO, SNAME, SEX, BDATE, HEIGHT FROM S WHERE DEPART=‘管理工程’ ) ; SELECT SNANE 2022YEAR( BDATE) FROM ME_S WHERE 2022- YEAR( BDATE)> 25; 72 數(shù)據(jù)庫系統(tǒng)及應用新技術 ? .數(shù)據(jù)庫體系結構的發(fā)展 ? DBS運行在計算機系統(tǒng)之上,其體系結構與計算機體系結構密切相關。因此 DBS的系統(tǒng)結構也隨著它的硬件和軟件支撐環(huán)境的變化而不斷演變。 ? ① 集中式數(shù)據(jù)庫系統(tǒng) 。早期的 DBMS以分時操作系統(tǒng)作為運行環(huán)境,采用集中式的數(shù)據(jù)庫系統(tǒng)結構,把數(shù)據(jù)庫建立在本單位的主計算機上,且不與其他計算機系統(tǒng)進行數(shù)據(jù)交互。在這種系統(tǒng)中,不但數(shù)據(jù)是集中的,數(shù)據(jù)的管理也是集中的。 . . 終端 DB 73 數(shù)據(jù)庫體系結構的發(fā)展 ? ② 客戶 /服務器結構 (C/S) ? 是一種網絡處理系統(tǒng)。有多臺用作客戶機的計算機和一至多臺用作服務器的計算機??蛻魴C直接面向用戶,接收并處理任務,將需要 DB操作的任務委托服務器執(zhí)行;而服務器只接收這種委托,完成對 DB的查詢和更新,并把查詢結果返回給客戶機。 C/S結構的 DBS雖然處理上是分布的,但數(shù)據(jù)卻是集中的,還是屬于集中式數(shù)據(jù)庫系統(tǒng)。 客戶機 DB 數(shù)據(jù)庫服務器 74 數(shù)據(jù)庫體系結構的發(fā)展 ? ③ 瀏覽器 /服務器結構 (B/S) ? ? 由瀏覽器 ,Web服務器 ,數(shù)據(jù)庫服務器 3個層次組成 .客戶端使用一個通用的瀏覽器代替了各種應用軟件 .用戶操作通過瀏覽器執(zhí)行 . ? 客戶機 DB 瀏覽器 數(shù)據(jù)庫服務器 75 數(shù)據(jù)庫體系結構的發(fā)展 ? ④ 分布式數(shù)據(jù)庫系統(tǒng) ? 數(shù)據(jù)共享和數(shù)