【數(shù)據(jù)庫技術】SQL語句_第1頁
【數(shù)據(jù)庫技術】SQL語句_第2頁
【數(shù)據(jù)庫技術】SQL語句_第3頁
【數(shù)據(jù)庫技術】SQL語句_第4頁
【數(shù)據(jù)庫技術】SQL語句_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,P(零件表),S(供應商表),2,Q (報價表),表4.1 零件供應數(shù)據(jù)庫,3,第4章 使用高級查詢-SQL語言,本章要求 了解 SQL語言的特點。 掌握SQL語言的四大功能及使用方法。 重點掌握其數(shù)據(jù)查詢功能及其使用。,4,4.1 背景,4.1.1 SQL語言的起源 1975年由CHAMBERLIN和BOYEE提出,當時稱為SEQUEL(STUCTURED ENGLISH QUERY LANGUAGE); 1981年 IBM推出其商用關系關系數(shù)據(jù)庫SQL/DS; 今天廣泛應用于各種大型數(shù)據(jù)庫,如SYBASE、INFORMIX、 ORACLE、DB2、INGRES等,也用于各種小型數(shù)據(jù)庫,

2、如FOXPRO、ACCESS。,5,4.1.2 SQL語言標準化 1. 1986年,美國國家標準化協(xié)會公布了SQL語言的第一個標準SQL86; 2. 1987年,ISO通過了SQL86標準; 3. 1989年,ISO推出了SQL89標準; 4. 1992年,ISO推出了SQL92標準; 5. 目前SQL99(也稱為SQL3)在起草中,增加了面向對象的功能。,6,4.1.3 SQL語言的主要特點 SQL語言類似于自然語言,簡潔易用; SQL語言是一種非過程語言; SQL語言是一種面向集合的語言; SQL語言既是自含式語言,又是嵌入式語言; SQL語言具有: 數(shù)據(jù)查詢 數(shù)據(jù)定義 數(shù)據(jù)操縱 數(shù)據(jù)控制

3、 四種語言一體化的功能。,7,4.1.4 SQL語言的基本概念 基本表(BASE TABLE):是獨立存在的表,不是由其它的表導出的表。一個關系對應一個基本表,一個或多個基本表對應一個存儲文件。 視圖(VIEW):是一個虛擬的表,是從一個或幾個基本表導出的表。它本身不獨立存在于數(shù)據(jù)庫中,數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在導出視圖的基本表中。當基本表中的數(shù)據(jù)發(fā)生變化時,從視圖中查詢出來的數(shù)據(jù)也隨之改變。,8,4.2 SQL數(shù)據(jù)定義,4.2.1 字段數(shù)據(jù)類型 SQL語言使用數(shù)據(jù)定義語言(簡稱DDL)實現(xiàn)其數(shù)據(jù)定功能,可對數(shù)據(jù)庫用戶、基本表、視圖、索引進行定義和撤消。

4、字段類型的定義和具體的DBMS有關,因此具體定義只能從有關的DBMS手冊中得到。教材P92列出了SQL-92支持的數(shù)據(jù)類型。,9,4.2.2 創(chuàng)建、修改和刪除數(shù)據(jù)表 4.2.2.1 創(chuàng)建數(shù)據(jù)表 創(chuàng)建一個數(shù)據(jù)表時主要包括以下幾個組成部分: (1)字段名 (2)字段數(shù)據(jù)類型 (3)字段的長度、精度和小數(shù)位數(shù); 2、創(chuàng)建數(shù)據(jù)表的SQL語法格式為: CREATE TABLE 表名 (列名1 數(shù)據(jù)類型1 NOT NULL ,列名2 數(shù)據(jù)類型2 NOT NULL ),10,例4.1 建立一學生表S CREATE TABLE S(SNO CHAR(8) ,SN VARCHAR(20), AGE INT,SE

5、X CHAR(2) DEFAULT 男 ,DEPT VARCHAR(20) 執(zhí)行該語句后,便產(chǎn)生了學生基本表的表框架,此表為一個空表。 其中,SEX列的缺省值為“男”。,11,3. 定義完整性約束 還可以對表進一步定義,如主鍵、空值的設定。在SQL SERVER中可以定義五種類型的完整性約束,下面分別加以介紹: NULL/NOT NULL UNIQUE約束 UNIQUE約束用于指明基本表在某一列或多個列的組合上的取值必須唯一。 PRIMARY KEY約束 PRIMARY KEY約束用于定義基本表的主鍵,起唯一標識作用,其值不能為NULL,也不能重復,以此來保證實體的完整性。,12,FOREIG

6、N KEY約束 FOREIGN KEY約束指定某一個列或一組列作為外部鍵,其中,包含外部鍵的表稱為從表,包含外部鍵所引用的主鍵或唯一鍵的表稱主表。 CHECK約束 CHECK約束用來檢查字段值所允許的范圍,以此來保證域的完整性。,13,例4.2 建立包含完整性定義的學生表 CREATE TABLE S (SNO CHAR(6) CONSTRAINT S_PRIM PRIMARY KEY, SN CHAR(8) CONSTRAINT SN_CONS NOT NULL, AGE NUMERIC(2) CONSTRAINT AGE_CONS NOT NULL CONSTRAINT AGE_CHK C

7、HECK (AGE BETWEEN 15 AND 50),SEX CHAR(2) DEFAULT 男, DEPT CHAR(10) CONSTRAINT DEPT_CONS NOT NULL);,14,4.2.2.2 修改基本表 1.為已有的基本增加新列 用于增加新列和完整性約束,定義方式同CREATE TABLE語句中的定義方式相同,其語法格式為: ALTER TABLE 表名 ADD | 例4.3 在S表中增加一個班號列和住址列。 ALTER TABLE S ADD CLASS_NO CHAR(6), ADDRESS CHAR(40) 注意:使用此方式增加的新列自動填充NULL值,所以不能

8、為增加的新列指定NOT NULL約束 。,15,2. 從基本表中刪除某些屬性(列) 其語法格式為: ALTER TABLE 表名 DROP 列名 例4.4 刪除S表中的AGE列 ALTER TABLE S DROP AGE,16,3 刪除基本表 刪除后,該表中的數(shù)據(jù)和在此表上所建的索引都被刪除,而建立在該表上的視圖不會隨之刪除,系統(tǒng)將繼續(xù)保留其定義,但已無法使用。 刪除表的語法格式: DROP TABLE 例4.5 刪除表S DROP TABLE S,17,4.2.3 索引 4.2.3.1 索引的作用 索引是數(shù)據(jù)庫隨機檢索的常用手段,它實際上就是記錄的關鍵字與其相應地址的對應表。此外在SQL中

9、,行的唯一性也是通過建立唯一索引來維護的。 索引的作用可歸納為: 1. 加快查詢速度; 2. 保證行的唯一性。,18,4.2.3.2 建立索引 建立索引的語句是CREATE INDEX,其語法格式為: CREATE UNIQUE INDEX ON ( ASC/DESC , ASC/DESC ) UNIQUE表明建立唯一索引。 次序用來指定索引值的排列順序,可為ASC(升序)或DESC(降序),缺省值為ASC。,19,例4.6 為S表在SNO上建立唯一索引IP。 CREATE UNIQUE INDEX ISNO ON S(SNO) 執(zhí)行此命令后,為S表建立一個索引名為IP的唯一索引,此索引為SN

10、O的唯一索引,即對S表中的行先按SNO的遞增順序索引。 由于有UNIQUE的限制,所以該索引在SNO列的排序上具有唯一性,不存在重復值。,20,注意: 改變表中的數(shù)據(jù)(如增加或刪除記錄)時,索引將自動更新。索引建立后,在查詢使用該列時,系統(tǒng)將自動使用索引進行查詢。 索引數(shù)目無限制,但索引越多,更新數(shù)據(jù)的速度越慢。對于僅用于查詢的表可多建索引,對于數(shù)據(jù)更新頻繁的表則應少建索引。,21,4.2.3.3 刪除索引 刪除索引的語句是DROP INDEX,其語法格式為: DROP INDEX 索引名 ON 數(shù)據(jù)表名 例4.7刪除表S的索引ISNO。 DROP INDEX ISNO ON S,22,4.3

11、 SQL數(shù)據(jù)查詢,4.3.1 SELECT命令的格式與基本使用 SQL語言提供SELECT語句,通過查詢操作可得到所需的信息。 SELECT語句的常用格式: SELECTALL/DISTINCT /選擇列表 FROM 基表名 WHERE 條件表達式 GROUP BY 列名1HAVING ORDER BY 列名2ASC|DESC;,23,SELECT語句的執(zhí)行過程是: 根據(jù)WHERE子句的檢索條件,從FROM子句指定的基本表或視圖中選取滿足條件的元組,再按照SELECT子句中指定的列,投影得到結果表。 如果有GROUP子句,則將查詢結果按照相同的值進行分組。 如果GROUP子句后有HAVING短

12、語,則只輸出滿足HAVING條件的元組。 如果有ORDER子句,查詢結果還要按照的值進行排序。,24,例4.7 查詢Q表中的所有供應者號。 SELECT DISTINCT SNO FROM Q 查詢結果中的重復行被去掉 例4.8 查詢供應商的全部信息。 SELECT * FROM S 用* 表示S表的全部列名,而不必逐一列出。 上述查詢均為不使用WHERE子句的無條件查詢,也稱作投影查詢。另外,利用投影查詢可控制列名的順序。見下例4.9: 例4.9 查詢?nèi)w供應商的姓名、編號和地址。 SELECT SNAME, SNO, ADDR FROM S,25,4.3.2條件查詢 當要在表中找出滿足某些

13、條件的行時,則需使用WHERE子句指定查詢條件。 WHERE子句中,條件通常通過三部分來描述: 列名; 比較運算符; 列名、常數(shù)。 常用的比較運算符 見下表4.2所示,26,表4.2 常用的比較運算符,27,4.3.2.1 比較大小 例4.11 查詢出SNO為52的供應者信息。 SELECT * FROM S WHERE SNO=52 例4.12 查詢庫存量小于100的零件。 SELECT * FROM P WHERE QUTY100,28,4.3.2.2 多重條件查詢 當WHERE子句需要指定一個以上的查詢條件時,則需要使用邏輯運算符AND、OR或NOT將其連結成復合的邏輯表達式。 其優(yōu)先級

14、由高到低為:NOT、AND、OR,用戶可以使用括號改變優(yōu)先級。 例4.13 查詢供應101號或102號零件且供貨量大于50的供應商的編號。 SELECT SNO FROM Q WHERE(PNO=101 OR PNO=102) AND (DELIQUTY50),29,4.3.2.3 確定范圍 例4.14 查詢供應時間在5至10天之間的零件號、供應者號及供應時間,并按時間排序。 SELECT PNO,SNO,D_TIME FROM Q WHERE (D_TIME BETWEEN 5 AND 10) ORDER BY D_TIME 等價于 SELECT PNO,SNO,D_TIME FROM Q

15、WHERE D_TIME=5 AND D_TIME=10 ORDER BY D_TIME,30,4.3.2.4 確定集合 利用“IN”操作可以查詢屬性值屬于指定集合的元組。 例4.15 查詢BOLT、CAM、 BELT 的庫存量。 SELECT PNO, PNAME, QUTY FROM P WHERE PNAME IN(BOLT, CAM, BELT ) 此語句也可以使用邏輯運算符“OR”實現(xiàn)。 SELECT PNO, PNAME, QUTY FROM P WHERE(PNAME=BOLTOR PNAME=CAMOR PNAME=BELT ),31,4.3.2.5 部分匹配查詢 上例均屬于完

16、全匹配查詢,當不知道完全精確的値時,用戶還可以使用LIKE或NOT LIKE進行部分匹配查詢(也稱模糊查詢)。 LIKE定義的一般格式為: LIKE 屬性名必須為字符型,字符串常量的字符可以包含如下兩個特殊符號: *:表示任意長度的字符串; ?:表示任意單個字符。 例4.16 查詢所有姓名第一個字母為“X”的供應商的編號和姓名。 SELECT SNO, SNAME FROM S WHERE SNAME LIKE X*,32,4.3.2.6空值查詢 某個字段沒有值稱之為具有空值(NULL)。 例4.17 查詢沒有考試成績的學生的學號和相應的課程號。 SELECT SNO, CNO FROM SC

17、 WHERE SCORE IS NULL 注意:這里的空值條件為IS NULL,不能寫成SCORE=NULL。,33,4.3.3常用庫函數(shù)及統(tǒng)計匯總查詢 SQL提供了許多庫函數(shù),增強了基本檢索能力。常用的庫函數(shù),如表4.3所示:,表4.3 常用庫函數(shù),34,例4.18 檢索PNO為101的零件的平均供貨時間。 SELECT PNO101,AVG(D_TIME) FROM Q WHERE PNO=101 注意:函數(shù)SUM和AVG只能對數(shù)值型字段進行計算。 例4.19 求計地址為“beijing”的供應商的總數(shù)。 SELECT COUNT(SNO) FROM S WHERE ADDR=beijin

18、g 例4.20 利用特殊函數(shù)COUNT(*)求計地址為“beijing”的供應商的總數(shù)。 SELECT COUNT(*) FROM S WHERE ADDR=beijing COUNT(*)用來統(tǒng)計元組的個數(shù) 要消除重復行時可使用DISTINCT關鍵字,35,4.3.4 分組查詢 GROUP BY子句可以將查詢結果按屬性列或屬性列組合在行的方向上進行分組,每組在屬性列或屬性列組合上具有相同的值。 例4.21 檢索所有零件的最高最低價格,并按零件號排序。 SELECT PNO,MIN(PRICE) AS PRICEOFMINS, MAX(PRICE) AS PRICEOFMAX FROM Q G

19、ROUP BY PNO ORDER BY PNO GROUP BY子句按PNO的值分組,所有具有相同PNO的元組為一組,對每一組使用函數(shù)MAX和MIN分別進行計算出各種零件的最低及最高價格。,36,若在分組后還要按照一定的條件進行篩選,則需使用HAVING子句。 例4.22 查詢有多于一種價格的零件的最、最高價。 SELECT PNO,MIN(PRICE) AS PRICEOFMINS, MAX(PRICE) AS PRICEOFMAX FROM Q GROUP BY PNO HAVING COUNT(*)1 ORDER BY PNO GROUP BY子句按PNO的值分組,所有具有相同PNO的

20、元組為一組,對每一組使用函數(shù)COUNT進行計算,統(tǒng)計出一組中的商品條數(shù)。 HAVING子句去掉不滿足COUNT(*)1的組。,37,4.3.5 數(shù)據(jù)表連接及連接查詢 數(shù)據(jù)表之間的聯(lián)系是通過表的字段值來體現(xiàn)的,這種字段稱為連接字段。 連接操作的目的就是通過加在連接字段的條件將多個表連接起來,以便從多個表中查詢數(shù)據(jù)。 前面的查詢都是針對一個表進行的,當查詢同時涉及兩個以上的表時,稱為連接查詢。 表的連接方法有兩種: 方法1:表之間滿足一定的條件的行進行連接,此時FROM子句中指明進行連接的表名,WHERE子句指明連接的列名及其連接條件。 方法2:利用關鍵字JOIN進行連接。,38,具體分為以下幾種

21、: INNER JOIN :顯示符合條件的記錄,此為默認值; LEFT (OUTER) JOIN:顯示符合條件的數(shù)據(jù)行以及左邊表中不符合條件的數(shù)據(jù)行,此時右邊數(shù)據(jù)行會以NULL來顯示,此稱為左連接; RIGHT (OUTER) JOIN:顯示符合條件的數(shù)據(jù)行以及右邊表中不符合條件的數(shù)據(jù)行,此時左邊數(shù)據(jù)行會以NULL來顯示,此稱為右連接; CROSS JOIN:會將一個表的每一筆數(shù)據(jù)和另一表的每筆數(shù)據(jù)匹配成新的數(shù)據(jù)行。此稱為廣義笛卡爾積; 當把JOIN 關鍵詞放于FROM子句中時,應有關鍵詞ON與之相對應,以表明連接的條件。,39,4.3.5.1 等值連接與非等值連接 例4.23 檢索出供應者號

22、為51的供應者所供應的所有零件的零件號、零件名、零件價格。 方法1: SELECT P.PNO ,P.PNAME,Q.PRICE FROM P,Q WHERE(P.PNO=Q.PNO AND Q.SNO=51) 這里SNO=51為查詢條件, 而P.PNO = Q.PNO 為連接條件, PNO為連接字段。,40,連接條件的一般格式為: . . 方法2: SELECT P.PNO , P.PNAME, Q.PRICE FROM(P INNER JOIN Q ON P.PNO=Q.PNO) WHERE Q.SNO=51,41,例4.24 檢索供應者kehai供應的零件細目。 SELECT S.SNA

23、ME,Q.PNO,P.PNAME,Q.PRICE,Q.D_TIME FROM (P INNER JOIN Q ON P.PNO=Q.PNO) INNER JOIN S ON Q.SNO=S.SNO) WHERE (S.SNAME=kehai) 本例涉及三個表,稱為多表連接。,42,4.3.5.2 自身連接 當一個表與其自已進行連接操作時,稱為表的自身連接。 例4.25 查詢能同時供應207或215零件的供應商號。 要查詢的內(nèi)容均在同一表Q中,可以將表Q分別取兩個別名,一個是QA,一個是QB。將QA, QB 中滿足QA.PNO=207且QB.PNO=215的行連接起來。然后從中選擇出QA.SNO

24、=QB.SNPO的元組。這實際上是同一表Q的自身連接。 SELECT QA.SNO FROM Q AS QA, Q AS QB WHERE (QA.PNO=207 AND QB.PNO=215) AND QA.SNO=QB.SNO ),43,4.3.6 子查詢 在WHERE子句中包含一個形如SELECT-FROM-WHERE的查詢塊,此查詢塊稱為子查詢或嵌套查詢,包含子查詢的語句稱為父查詢或外部查詢。 嵌套查詢可以將一系列簡單查詢構成復雜查詢,增強查詢能力。 子查詢的嵌套層次最多可達到255層,以層層嵌套的方式構造查詢充分體現(xiàn)了SQL“結構化”的特點。 嵌套查詢在執(zhí)行時由里向外處理,每個子查詢

25、是在上一級外部查詢處理之前完成,父查詢要用到子查詢的結果。,44,4.3.6.1 返回一個值的子查詢 當子查詢的返回值只有一個時,可以使用比較運算符 =, , =, 將父查詢和子查詢連接起來。 例4.26 查詢與51號供應者地址相同的供應商號、供應商姓名。 SELECT SNO,SNAME FROM S WHERE ADDR=(SELECT ADDR FROM S WHERE SNO=51),45,此查詢相當于分成兩個查詢塊來執(zhí)行。先執(zhí)行子查詢: SELECT ADDR FROM S WHERE SNO=51 子查詢向主查詢只返回一個值,即51號供應商的地址beijing,然后以此作為父查詢的

26、條件,相當于再執(zhí)行父查詢, 查詢所有地址為beijing的供應商號、姓名。 SELECT SNO,SNAME FROM S WHERE ADDR=beijing,46,4.3.6.2 返回一組值的子查詢 如果子查詢的返回值不止一個,而是一個集合時,則不能直接使用比較運算符,可以在比較運算符和子查詢之間插入IN或NOTEXISTS。 1. 使用IN 例4.27 檢索庫存量小于200的零件的供應號。 SELECT DISTINCT SNO FROM Q WHERE PNO IN (SELECT PNO FROM P WHERE QUTY200),47,2. 使用EXISTS EXISTS表示存在量

27、詞,帶有EXISTS的子查詢不返回任何實際數(shù)據(jù),它只得到邏輯值“真”或“假”。 當子查詢的的查詢結果集合為非空時,外層的WHERE子句返回真值,否則返回假值。NOT EXISTS與此相反。 含有IN的查詢通??捎肊XISTS表示,但反過來不一定。,48,例4.28 檢索可供應207號零件的供應商名字。 SELECT SNAME FROM S WHERE EXISTS(SELECT * FROM Q WHERE PNO=207 AND SNO=S.SNO) 當子查詢Q表存在一行記錄滿足其WHERE子句中的條件時,則父查詢便得到一個值,重復執(zhí)行以上過程,直到得出最后結果。,49,例4.29 查詢沒

28、有供應零件的供應商姓名。 SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM Q WHERE SNO=S.SNO) 選出這樣一些供應商名單,在Q表中不存在他們供應商品的記錄。,50,4.3.7 使用了UNION的查詢 SQL中提供了并(UNION)運算。如果二個查詢結果是并相容的,則可以并為一個查詢結果,UNION運算自動消去重復元組。 例4.30 檢索庫存量大于約1000或由67號供應者供應的零件號。 SELECT PNO FROM P WHERE QUTY1000 UNION (SELECT PNO FROM Q WHERE SNO=67

29、),51,課堂練習 設有如下一個數(shù)據(jù)庫: 課題,52,情況,53,人員,54,1、按要求寫出下列SQL查詢語句: 查詢課題經(jīng)費小于100萬元的課題編號及其名稱; 查詢同時參加207和215課題的科研人員編號; 查詢情況表中所有人員的編號; 檢索52號科研人員的信息; 檢索101號課題的平均工作量; 檢索工作量在200-400天的課題編號、人員編號及工作量,并按工作量排序;,55,2、寫出下列SQL查詢語句的含義: SELECT 人員編號 FROM 情況 WHERE 課題編號 IN ( SELECT 課題編號 FROM 課題 WHERE 課題經(jīng)費1 SELECT 人員姓名 FROM 人員 WHE

30、RE EXISTS( SELECT * FROM 情況 WHERE 情況.課題編號=207 AND 情況.人員編號=人員.人員編號) SELECT 課題編號 FROM 課題 WHERE 課題經(jīng)費100 UNION SELECT 課題編號 FROM 情況 WHERE 人員編號 =67,56,課堂練習答案: 1、 SELECT 課題編號,課題名稱 FROM 課題 WHERE 課題經(jīng)費100 SELECT QK1.人員編號 FROM 情況 AS QK1,情況 AS QK2 WHERE QK1.課題編號=207 AND QK2.課題編號=215 AND QK1.人員編號= QK2.人員編號 SELEC

31、T DISTINCT 人員編號 FROM 情況 SELECT * FROM 人員 WHERE 人員編號S2 SELECT 101號人員,AVG(工作量) FROM 情況WHERE 課題編號=101 SELECT 課題編號,人員編號 ,工作量 FROM 情況,57,課堂練習答案: 2、 檢索參加了課題經(jīng)費100或者67號科研人員參與的課題編號。,58,4.4 SQL數(shù)據(jù)更新,SQL語言的數(shù)據(jù)更新語句DML主要包括插入數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù)三種語句。 4.4.1 插入數(shù)據(jù)記錄 插入數(shù)據(jù)是把新的記錄插入到一個已存在的表中。插入數(shù)據(jù)使用語句INSERT INTO,可分為以下幾種情況。 4.4.1.1

32、 插入一行新記錄 語法格式為: INSERT INTO (,) VALUES() 其中,是指要插入新記錄的表 是可選項,指定待添加數(shù)據(jù)的列 VALUES子句指定待添加數(shù)據(jù)的具體值。,59,例4.31 在S表中插入一條供應者記錄 (SNO:53;SNAME:daihong ;ADDR:tianjin )。 INSERT INTO S VALUES (53,daihong,tianjin),60,4.4.1.2 插入多行記錄 用于表間的拷貝,將一個表中的數(shù)據(jù)抽取幾行插入另一表中,可以通過子查詢來實現(xiàn)。 插入數(shù)據(jù)的命令語法格式為: INSERT INTO (,) 子查詢 例4.32 現(xiàn)在已建立了一新

33、表QUO52(PNO,PNAME,PRICE,D_TIME),要求加入52號供應者供應零件的情況。 首先建立新表QUO52: CREATE TABLE QUO52 (pno SMALLINT,pname CHAR(20), price FLOAT,D_time SMALLINT),61,然后利用子查詢求出Q表中52號供應者提供的零件號,然后在P表中查詢到這幾種零件的情況,把結果存放在新表QUO52中。 INSERT INTO QUO52 SELECT Q.PNO,PNAME,PRICE,D_TIME FROM P,Q WHERE Q.SNO=52 AND P.PNO=Q.PNO,62,4.4.

34、2修改數(shù)據(jù)記錄 SQL語言可以使用UPDATE語句對表中的一行或多行記錄的某些列值進行修改,其語法格式為: UPDATE SET = ,= WHERE 其中: 是指要修改的表 SET子句給出要修改的列及其修改后的值 WHERE子句指定待修改的記錄應當滿足的條件,WHERE子句省略時,則修改表中的所有記錄。,63,4.4.2.1 修改一行 例4.33 修改203號零件的庫存量為30。 UPDATE P SET QUTY=30 WHERE PNO=203 4.4.2.2 修改多行 例4.34 將所有52號供應者供應的零件供應價格上調(diào)10。 UPDATE Q SET PRICE=PRICE+0.1*PRICE WHERE SNO=52,64,4.4.3 刪除數(shù)據(jù)記錄 使用DELETE語句可以刪除表中的一行或多行記錄,其語法格式為: DELETE FROM WHERE 其中, 是指要刪除數(shù)據(jù)的表。 WHERE子句指定待刪除的記錄應當滿足的條件,WHERE子句省略時,則刪除表中的所有記錄。,65,4.4.3.1 刪除一行記錄 例4.35 刪除S表中51號供應商的記錄。 DELETE FROM S WHERE SNO=51 執(zhí)行此語

溫馨提示

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

評論

0/150

提交評論