![HappyYouCh10結(jié)構(gòu)查詢語(yǔ)言SQL_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/c5bfdba7-0625-440a-a56f-b15f81a449e3/c5bfdba7-0625-440a-a56f-b15f81a449e31.gif)
![HappyYouCh10結(jié)構(gòu)查詢語(yǔ)言SQL_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/c5bfdba7-0625-440a-a56f-b15f81a449e3/c5bfdba7-0625-440a-a56f-b15f81a449e32.gif)
![HappyYouCh10結(jié)構(gòu)查詢語(yǔ)言SQL_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/c5bfdba7-0625-440a-a56f-b15f81a449e3/c5bfdba7-0625-440a-a56f-b15f81a449e33.gif)
![HappyYouCh10結(jié)構(gòu)查詢語(yǔ)言SQL_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/c5bfdba7-0625-440a-a56f-b15f81a449e3/c5bfdba7-0625-440a-a56f-b15f81a449e34.gif)
![HappyYouCh10結(jié)構(gòu)查詢語(yǔ)言SQL_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/c5bfdba7-0625-440a-a56f-b15f81a449e3/c5bfdba7-0625-440a-a56f-b15f81a449e35.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL第第1010章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQLSQL第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL教學(xué)目標(biāo)教學(xué)目標(biāo)掌握掌握SQL修改表結(jié)構(gòu)的規(guī)則與方法修改表結(jié)構(gòu)的規(guī)則與方法 ;掌握掌握SQL修改數(shù)據(jù)的規(guī)則與方法修改數(shù)據(jù)的規(guī)則與方法 ;掌握掌握SQL數(shù)據(jù)查詢功能的語(yǔ)句規(guī)則和特點(diǎn)。數(shù)據(jù)查詢功能的語(yǔ)句規(guī)則和特點(diǎn)。重點(diǎn)與難點(diǎn):表定義中數(shù)據(jù)完整性規(guī)則的設(shè)定、多表連表定義中數(shù)據(jù)完整性規(guī)則的設(shè)定、多表連接查詢的方法與使用規(guī)則、在分組查詢中使用函數(shù)的規(guī)則和接查詢的方法與使用規(guī)則、在分組查詢中使用函數(shù)的規(guī)則和方法、使用嵌套子查詢的方法和規(guī)
2、則、綜合應(yīng)用方法、使用嵌套子查詢的方法和規(guī)則、綜合應(yīng)用SQL數(shù)據(jù)查數(shù)據(jù)查詢功能完成實(shí)際問(wèn)題的能力。詢功能完成實(shí)際問(wèn)題的能力。 第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL 10.1 10.1 SQL SQL 概述概述 第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL SQL是是Structured Query Language的縮寫(xiě),即結(jié)的縮寫(xiě),即結(jié)構(gòu)化查詢語(yǔ)言,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。構(gòu)化查詢語(yǔ)言,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。 主要特點(diǎn):主要特點(diǎn): SQL是一種功能齊全的一體化語(yǔ)言。是一種功能齊全的一體化語(yǔ)言。 SQL是一種高度非過(guò)程化的語(yǔ)言是一種高度非過(guò)程化的語(yǔ)言 。 SQL語(yǔ)
3、言簡(jiǎn)潔,易學(xué)易用。語(yǔ)言簡(jiǎn)潔,易學(xué)易用。 語(yǔ)言共享語(yǔ)言共享 。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQLSQL語(yǔ)言可以分成以下幾組:語(yǔ)言可以分成以下幾組:數(shù)據(jù)定義語(yǔ)言數(shù)據(jù)定義語(yǔ)言DDL(Data Definition Language):包括定義、:包括定義、修改與刪除基本表及建立與刪除索引等。修改與刪除基本表及建立與刪除索引等。數(shù)據(jù)操縱語(yǔ)言數(shù)據(jù)操縱語(yǔ)言DML(Data Manipulation Language):包括:包括插入、修改與刪除數(shù)據(jù)等。插入、修改與刪除數(shù)據(jù)等。數(shù)據(jù)查詢語(yǔ)言數(shù)據(jù)查詢語(yǔ)言DQL(Data Query Language):包括單表查詢、:包括單表查詢、連接查詢
4、、嵌套查詢等各種查詢功能。連接查詢、嵌套查詢等各種查詢功能。 數(shù)據(jù)控制語(yǔ)言數(shù)據(jù)控制語(yǔ)言DCL(Data Control Language):包括數(shù)據(jù)的:包括數(shù)據(jù)的安全性控制、數(shù)據(jù)的完整性控制、數(shù)據(jù)庫(kù)的恢復(fù)及并發(fā)控安全性控制、數(shù)據(jù)的完整性控制、數(shù)據(jù)庫(kù)的恢復(fù)及并發(fā)控制等功能。制等功能。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL Access支持支持?jǐn)?shù)據(jù)定義、數(shù)據(jù)查詢和數(shù)據(jù)操作功能數(shù)據(jù)定義、數(shù)據(jù)查詢和數(shù)據(jù)操作功能。 SQL功能功能命令動(dòng)詞命令動(dòng)詞數(shù)據(jù)定義數(shù)據(jù)定義 CREAT、 ALTER、DROP數(shù)據(jù)操作數(shù)據(jù)操作 INSERT、 DELETE、 UPDATE數(shù)據(jù)查詢數(shù)據(jù)查詢 SELECT
5、第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL 10.2 10.2數(shù)據(jù)定義數(shù)據(jù)定義第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL一一. .創(chuàng)建表創(chuàng)建表格式:格式: CREATE TABLE ( (長(zhǎng)度長(zhǎng)度) PRIMARY KEY NOT NULL, (長(zhǎng)度長(zhǎng)度) NOT NULL) 功能:功能:創(chuàng)建一個(gè)數(shù)據(jù)表的結(jié)構(gòu)。創(chuàng)建一個(gè)數(shù)據(jù)表的結(jié)構(gòu)。說(shuō)明:說(shuō)明: :要?jiǎng)?chuàng)建的數(shù)據(jù)表的名字。:要?jiǎng)?chuàng)建的數(shù)據(jù)表的名字。 :要?jiǎng)?chuàng)建的數(shù)據(jù)表的字段名和字段類型。:要?jiǎng)?chuàng)建的數(shù)據(jù)表的字段名和字段類型。 字段長(zhǎng)度僅限于文本及二進(jìn)制字段。字段長(zhǎng)度僅限于文本及二進(jìn)制字段。 PRIMARY KEY:表示將該字段定
6、義為主鍵。:表示將該字段定義為主鍵。 NOT NULL:不允許字段值為空,而:不允許字段值為空,而NULL允許字段值為空。允許字段值為空。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.1 在職工管理數(shù)據(jù)庫(kù)中建立一個(gè)數(shù)據(jù)表在職工管理數(shù)據(jù)庫(kù)中建立一個(gè)數(shù)據(jù)表“職工職工”,表結(jié)構(gòu)由,表結(jié)構(gòu)由職工號(hào)、姓名、性別、職稱、部門(mén)、出生日期、婚否等字段組職工號(hào)、姓名、性別、職稱、部門(mén)、出生日期、婚否等字段組成。并設(shè)置成。并設(shè)置“職工號(hào)職工號(hào)”為主鍵。為主鍵。 操作步驟如下:操作步驟如下: 創(chuàng)建創(chuàng)建“職工管理職工管理”數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)。 在在“職工管理職工管理”數(shù)據(jù)庫(kù)窗口中選擇數(shù)據(jù)庫(kù)窗口中選擇“查
7、詢查詢”對(duì)象。對(duì)象。 雙擊雙擊“在設(shè)計(jì)視圖中創(chuàng)建查詢?cè)谠O(shè)計(jì)視圖中創(chuàng)建查詢”,關(guān)閉彈出的,關(guān)閉彈出的“顯示表顯示表”對(duì)對(duì)話框,打開(kāi)查詢?cè)O(shè)計(jì)視圖窗口。話框,打開(kāi)查詢?cè)O(shè)計(jì)視圖窗口。 選擇選擇“查詢查詢”菜單中菜單中“SQL特定查詢特定查詢”下的下的“數(shù)據(jù)定義數(shù)據(jù)定義”命命令項(xiàng),打開(kāi)令項(xiàng),打開(kāi)“數(shù)據(jù)定義查詢數(shù)據(jù)定義查詢”窗口。窗口。 在在“數(shù)據(jù)定義查詢數(shù)據(jù)定義查詢”窗口中輸入窗口中輸入SQL語(yǔ)句,每個(gè)數(shù)據(jù)定義查語(yǔ)句,每個(gè)數(shù)據(jù)定義查詢只能包含一條數(shù)據(jù)定義語(yǔ)句。詢只能包含一條數(shù)據(jù)定義語(yǔ)句。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL CREATE DATABASE 職工管理職工管理 CREATE
8、 TABLE 職工職工(職工號(hào)職工號(hào) TEXT(5) PRIMARY KEY,姓姓名名 TEXT(4),性別性別 TEXT(1),職稱職稱 TEXT(4),部門(mén)部門(mén) TEXT(8),出生出生日期日期 DATE,婚否婚否 LOGICAL) 保存查詢?yōu)楸4娌樵優(yōu)椤皵?shù)據(jù)表定義查詢(職工)數(shù)據(jù)表定義查詢(職工)”,查詢建立完畢。,查詢建立完畢。 運(yùn)行查詢。在設(shè)計(jì)視圖中,單擊工具欄上的運(yùn)行查詢。在設(shè)計(jì)視圖中,單擊工具欄上的“運(yùn)行運(yùn)行”按鈕,按鈕,執(zhí)行執(zhí)行SQL語(yǔ)句,完成創(chuàng)建表的操作。語(yǔ)句,完成創(chuàng)建表的操作。 在數(shù)據(jù)庫(kù)窗口中單擊在數(shù)據(jù)庫(kù)窗口中單擊“表表”對(duì)象,可以看到在對(duì)象,可以看到在“表表”列表框列表框
9、中多了一個(gè)中多了一個(gè)“職工職工”表,這就是用表,這就是用SQL的定義查詢創(chuàng)建的表。的定義查詢創(chuàng)建的表。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.2在職工管理數(shù)據(jù)庫(kù)中建立一個(gè)數(shù)據(jù)表在職工管理數(shù)據(jù)庫(kù)中建立一個(gè)數(shù)據(jù)表“工資工資”,并通過(guò),并通過(guò)“職工號(hào)職工號(hào)”字段建立與字段建立與“職工職工”表的關(guān)系。表的關(guān)系。 CREATE TABLE 工資工資(職工號(hào)職工號(hào) TEXT(5) PRIMARY KEY REFERENCES 職工職工, 工資工資 Single, 津貼津貼 Single, 所得稅所得稅 Single, 公積金公積金 Single, 水電費(fèi)水電費(fèi) Single,應(yīng)扣,
10、應(yīng)扣 Single, 實(shí)發(fā)實(shí)發(fā) Single) 其中的其中的“REFERENCES 職工職工”表示與表示與“職工職工”表建立關(guān)系。表建立關(guān)系。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL格式:格式: DROP TABLE 功能:功能:刪除指定的數(shù)據(jù)表文件。刪除指定的數(shù)據(jù)表文件。說(shuō)明說(shuō)明:一定要慎用一定要慎用DROP TABLE語(yǔ)句,一旦使用以后就無(wú)法恢語(yǔ)句,一旦使用以后就無(wú)法恢復(fù)表或其中的數(shù)據(jù),此表上建立的索引也將自動(dòng)刪除,并且無(wú)復(fù)表或其中的數(shù)據(jù),此表上建立的索引也將自動(dòng)刪除,并且無(wú)法恢復(fù)。法恢復(fù)。二二. . 刪除表刪除表第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10
11、.3 刪除例刪除例10.2建立的工資表。操作步驟如下:建立的工資表。操作步驟如下: 打開(kāi)打開(kāi)“數(shù)據(jù)定義查詢數(shù)據(jù)定義查詢”窗口。窗口。 輸入刪除表的輸入刪除表的SQL語(yǔ)句:語(yǔ)句: DROP TABLE 工資工資 單擊工具欄上的單擊工具欄上的“運(yùn)行運(yùn)行”按鈕,完成刪除表的操作,按鈕,完成刪除表的操作,“工資工資”表將從表將從“職工管理職工管理”數(shù)據(jù)庫(kù)窗口消失。數(shù)據(jù)庫(kù)窗口消失。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL三、修改表的結(jié)構(gòu)三、修改表的結(jié)構(gòu)格式一:格式一: ALTER TABLE ADD (長(zhǎng)度長(zhǎng)度) , (長(zhǎng)度長(zhǎng)度)DROP ,ALTER (長(zhǎng)度長(zhǎng)度) , (長(zhǎng)度長(zhǎng)度) 功能
12、:功能:修改指定的數(shù)據(jù)表的結(jié)構(gòu)。修改指定的數(shù)據(jù)表的結(jié)構(gòu)。說(shuō)明:說(shuō)明: :要修改的數(shù)據(jù)表的名字。:要修改的數(shù)據(jù)表的名字。 ADD子句用于增加新的字段。子句用于增加新的字段。 DROP子句用于刪除指定的字段。子句用于刪除指定的字段。 ALTER子句用于修改原有字段的定義,包括字段名、數(shù)據(jù)類型和字子句用于修改原有字段的定義,包括字段名、數(shù)據(jù)類型和字段的長(zhǎng)度。段的長(zhǎng)度。 應(yīng)注意應(yīng)注意ADD子句、子句、DROP子句和子句和ALTER子句不能同時(shí)使用。子句不能同時(shí)使用。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.4 為職工表增加一個(gè)電話號(hào)碼字段。操作步驟如下:為職工表增加一個(gè)電話號(hào)碼字
13、段。操作步驟如下: 在在“職工管理職工管理”數(shù)據(jù)庫(kù)窗口中選擇數(shù)據(jù)庫(kù)窗口中選擇“查詢查詢”對(duì)象。對(duì)象。 雙擊雙擊“在設(shè)計(jì)視圖中創(chuàng)建查詢?cè)谠O(shè)計(jì)視圖中創(chuàng)建查詢”,關(guān)閉彈出的,關(guān)閉彈出的“顯示表顯示表”對(duì)對(duì)話框,打開(kāi)查詢?cè)O(shè)計(jì)視圖窗口。話框,打開(kāi)查詢?cè)O(shè)計(jì)視圖窗口。 選擇選擇“查詢查詢”菜單中菜單中“SQL特定查詢特定查詢”下的下的“數(shù)據(jù)定義數(shù)據(jù)定義”命命令項(xiàng),打開(kāi)令項(xiàng),打開(kāi)“數(shù)據(jù)定義查詢數(shù)據(jù)定義查詢”窗口。窗口。 在在“數(shù)據(jù)定義查詢數(shù)據(jù)定義查詢”窗口中,輸入修改表結(jié)構(gòu)的窗口中,輸入修改表結(jié)構(gòu)的SQL語(yǔ)句:語(yǔ)句: ALTER TABLE 職工職工 ADD 電話號(hào)碼電話號(hào)碼 Text(8) 單擊工具欄上的單
14、擊工具欄上的“運(yùn)行運(yùn)行”按鈕,完成修改表結(jié)構(gòu)的操作。按鈕,完成修改表結(jié)構(gòu)的操作。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.5 將職工表的姓名字段的寬度由原來(lái)的將職工表的姓名字段的寬度由原來(lái)的6改為改為8,SQL語(yǔ)句如下:語(yǔ)句如下: ALTER TABLE 職工職工 ALTER 姓名姓名 Text(8)例例10.6 刪除職工表刪除職工表“電話號(hào)碼電話號(hào)碼”字段,字段,SQL語(yǔ)句如下:語(yǔ)句如下: ALTER TABLE 職工職工 DROP 電話號(hào)碼電話號(hào)碼第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL 10.3 10.3 數(shù)據(jù)操作數(shù)據(jù)操作第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章
15、關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL一一. . 插入記錄插入記錄格式:格式: INSERT INTO () VALUES ()功能:功能:在指定的數(shù)據(jù)表的尾部添加一條新記錄。在指定的數(shù)據(jù)表的尾部添加一條新記錄。說(shuō)明:說(shuō)明: :要插入數(shù)據(jù)的表的名字。:要插入數(shù)據(jù)的表的名字。 為數(shù)據(jù)表要插入新值的字段。為數(shù)據(jù)表要插入新值的字段。 VALUES(表達(dá)式清單)為數(shù)據(jù)表要插入新值的各字段的數(shù)據(jù)值。(表達(dá)式清單)為數(shù)據(jù)表要插入新值的各字段的數(shù)據(jù)值。 和和VALUES子句中(表達(dá)式清單)的個(gè)數(shù)和數(shù)據(jù)類子句中(表達(dá)式清單)的個(gè)數(shù)和數(shù)據(jù)類型要完全一致。型要完全一致。 若省略若省略,則數(shù)據(jù)表中的所有字段必須在,則數(shù)據(jù)表中的所
16、有字段必須在VALUES子句子句中都有相應(yīng)的值。中都有相應(yīng)的值。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.7 在職工表尾部添加一條新記錄。操作步驟如下:在職工表尾部添加一條新記錄。操作步驟如下: 在在“職工管理職工管理”數(shù)據(jù)庫(kù)窗口中,打開(kāi)數(shù)據(jù)庫(kù)窗口中,打開(kāi)“數(shù)據(jù)定義查詢數(shù)據(jù)定義查詢”窗口。窗口。 輸入輸入SQL語(yǔ)句:語(yǔ)句:INSERT INTO 職工職工(職工號(hào)職工號(hào),姓名姓名,性別性別,職稱職稱,部門(mén)部門(mén),出生日期出生日期,婚否婚否)VALUES(01001,陳周陳周,男男,教授教授,計(jì)算機(jī)計(jì)算機(jī),#1958-03-05#,yes) 單擊工具欄上的單擊工具欄上的“運(yùn)行運(yùn)
17、行”按鈕,完成插入數(shù)據(jù)的操作。按鈕,完成插入數(shù)據(jù)的操作。例例10.8 在職工表尾部插入第二條記錄,在職工表尾部插入第二條記錄,SQL語(yǔ)句如下:語(yǔ)句如下:INSERT INTO 職工職工 VALUES(03021,劉楊劉楊,女女,副教授副教授,管理管理,#1962-06-18#,no)第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL格式:格式: UPDATE SET =表達(dá)式表達(dá)式1 ,=表達(dá)式表達(dá)式2WHERE 功能:功能:根據(jù)根據(jù)WHERE子句指定的條件,對(duì)指定記錄的字段值進(jìn)行更新。子句指定的條件,對(duì)指定記錄的字段值進(jìn)行更新。說(shuō)明:說(shuō)明: :要更新數(shù)據(jù)的表的名字。:要更新數(shù)據(jù)的表的名字
18、。 =是指用是指用的值替代的值替代的值,一次的值,一次可更新多個(gè)字段的值??筛露鄠€(gè)字段的值。 若省略若省略WHERE子句,則更新全部記錄。子句,則更新全部記錄。 一次只能在單一的表中更新記錄。一次只能在單一的表中更新記錄。二二. . 更新數(shù)據(jù)更新數(shù)據(jù)第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.9 計(jì)算工資表中的應(yīng)扣和實(shí)發(fā)數(shù)。計(jì)算工資表中的應(yīng)扣和實(shí)發(fā)數(shù)。 在在“職工管理職工管理”數(shù)據(jù)庫(kù)窗口中,打開(kāi)數(shù)據(jù)庫(kù)窗口中,打開(kāi)“數(shù)據(jù)定義查詢數(shù)據(jù)定義查詢”窗口。窗口。 輸入輸入SQL語(yǔ)句:語(yǔ)句: UPDATE 工資工資 SET 應(yīng)扣應(yīng)扣=所得稅所得稅+公積金公積金+水電費(fèi)水電費(fèi), 實(shí)發(fā)實(shí)
19、發(fā)=工資工資+補(bǔ)貼補(bǔ)貼-應(yīng)扣應(yīng)扣 單擊工具欄上的單擊工具欄上的“運(yùn)行運(yùn)行”按鈕,完成更新數(shù)據(jù)的操作。按鈕,完成更新數(shù)據(jù)的操作。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL格式:格式: DELETE FROM WHERE 功能:功能:根據(jù)根據(jù)WHERE子句指定的條件,刪除表中指定的記錄。子句指定的條件,刪除表中指定的記錄。說(shuō)明說(shuō)明: :要?jiǎng)h除數(shù)據(jù)的表的名字。:要?jiǎng)h除數(shù)據(jù)的表的名字。 若省略若省略WHERE子句,則刪除表中全部記錄。子句,則刪除表中全部記錄。 DELETE語(yǔ)句刪除的只是表中的數(shù)據(jù),而不是表的結(jié)構(gòu)。語(yǔ)句刪除的只是表中的數(shù)據(jù),而不是表的結(jié)構(gòu)。三三. . 刪除數(shù)據(jù)刪除數(shù)據(jù)例例1
20、0.10將職工表中職工號(hào)為將職工表中職工號(hào)為“03021”的記錄刪除。的記錄刪除。 在在“職工管理職工管理”數(shù)據(jù)庫(kù)窗口中,打開(kāi)數(shù)據(jù)庫(kù)窗口中,打開(kāi)“數(shù)據(jù)定義查詢數(shù)據(jù)定義查詢”窗口。窗口。 輸入輸入SQL語(yǔ)句:語(yǔ)句: DELETE FROM 職工職工 WHERE 職工號(hào)職工號(hào)= 03021 單擊工具欄上的單擊工具欄上的“運(yùn)行運(yùn)行”按鈕,完成刪除數(shù)據(jù)的操作。按鈕,完成刪除數(shù)據(jù)的操作。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL 10.4 10.4 數(shù)據(jù)查詢數(shù)據(jù)查詢第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL一一. SELECT. SELECT查詢命令查詢命令格式:格式: SELE
21、CT ALL|DISTINCT|TOP n PERCENT |,FROM WHEREGROUP BY HAVING ORDER BY ASC | DESC, ASC | DESC 第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL功能:功能: 從從FROM子句列出的表或查詢中,選擇滿足子句列出的表或查詢中,選擇滿足WHERE子句中給出的條件的記錄,然后按子句中給出的條件的記錄,然后按GROUP BY子句(分組子句(分組子句)中指定字段的值分組,再提取滿足子句)中指定字段的值分組,再提取滿足HAVING 子句中子句中過(guò)濾條件的那些組,按過(guò)濾條件的那些組,按SELECT子句給出的字段名或字段子
22、句給出的字段名或字段表達(dá)式求值輸出。表達(dá)式求值輸出。ORDER BY子句(排序子句)是對(duì)輸出子句(排序子句)是對(duì)輸出的目標(biāo)表進(jìn)行重新排序,并可附加說(shuō)明的目標(biāo)表進(jìn)行重新排序,并可附加說(shuō)明ASC(升序)或(升序)或DESC(降序)排列。(降序)排列。 第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL說(shuō)明:說(shuō)明: ALL:查詢的結(jié)果中包含數(shù)據(jù)源中的所有記錄。:查詢的結(jié)果中包含數(shù)據(jù)源中的所有記錄。 DISTINCT:查詢的結(jié)果中不包含數(shù)據(jù)源中重復(fù)行的記錄。:查詢的結(jié)果中不包含數(shù)據(jù)源中重復(fù)行的記錄。 :指定查詢結(jié)果輸出的字段,如果要包含數(shù)據(jù)源中的所:指定查詢結(jié)果輸出的字段,如果要包含數(shù)據(jù)源中的所有
23、字段,可以使用通配符有字段,可以使用通配符“*”。 AS :如果在輸出時(shí)不希望使用原來(lái)的字段名,可以用列:如果在輸出時(shí)不希望使用原來(lái)的字段名,可以用列名稱重新設(shè)置。名稱重新設(shè)置。 FROM :指出查詢的數(shù)據(jù)來(lái)源。:指出查詢的數(shù)據(jù)來(lái)源。 WHERE :說(shuō)明查詢條件,即選擇記錄的條件。:說(shuō)明查詢條件,即選擇記錄的條件。二二. . 簡(jiǎn)單查詢簡(jiǎn)單查詢格式:格式: SELECT ALLDISTINCT AS , AS FROM WHERE 1. 1. 基本查詢基本查詢 第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.11查詢學(xué)生表的全部字段。操作步驟如下:查詢學(xué)生表的全部字段。操作步驟如
24、下: 在在“學(xué)生成績(jī)管理學(xué)生成績(jī)管理”數(shù)據(jù)庫(kù)窗口中選擇數(shù)據(jù)庫(kù)窗口中選擇“查詢查詢”對(duì)象。對(duì)象。 雙擊雙擊“在設(shè)計(jì)視圖中創(chuàng)建查詢?cè)谠O(shè)計(jì)視圖中創(chuàng)建查詢”,關(guān)閉彈出的,關(guān)閉彈出的“顯示表顯示表”對(duì)對(duì)話框,打開(kāi)查詢?cè)O(shè)計(jì)視圖窗口。話框,打開(kāi)查詢?cè)O(shè)計(jì)視圖窗口。 選擇選擇“視圖視圖”菜單的菜單的“SQL視圖視圖”命令項(xiàng),打開(kāi)命令項(xiàng),打開(kāi)“選擇查詢選擇查詢”窗口。窗口。 輸入輸入SQL語(yǔ)句:語(yǔ)句: SELECT * FROM 學(xué)生學(xué)生 保存查詢,查詢建立完畢。保存查詢,查詢建立完畢。 運(yùn)行查詢。運(yùn)行查詢。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.12 查詢學(xué)生表中所有學(xué)生的姓名和截至統(tǒng)計(jì)
25、時(shí)的查詢學(xué)生表中所有學(xué)生的姓名和截至統(tǒng)計(jì)時(shí)的年齡,去掉重名。年齡,去掉重名。SQL語(yǔ)句如下:語(yǔ)句如下: SELECT DISTINCT 姓名姓名, YEAR(DATE()-YEAR(出出生日期生日期) AS 年齡年齡 FROM 學(xué)生學(xué)生例例10.13 查詢學(xué)生表中所有已通過(guò)四級(jí)的男生記錄。查詢學(xué)生表中所有已通過(guò)四級(jí)的男生記錄。SQL語(yǔ)句如下:語(yǔ)句如下: SELECT * FROM 學(xué)生學(xué)生 WHERE 性別性別=男男 AND 四級(jí)通過(guò)四級(jí)通過(guò)=yes第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL2. 2. 帶特殊運(yùn)算符的條件查詢帶特殊運(yùn)算符的條件查詢 SELECT語(yǔ)句可以使用的特殊運(yùn)算
26、符有:語(yǔ)句可以使用的特殊運(yùn)算符有:(1)BETWEENAND運(yùn)算符運(yùn)算符格式:格式: NOT BETWEEN AND BETWEEN運(yùn)算符用于檢測(cè)字段的值是否介于指定的范圍內(nèi)。運(yùn)算符用于檢測(cè)字段的值是否介于指定的范圍內(nèi)。(2)IN 運(yùn)算符運(yùn)算符格式:格式: NOT IN(,) IN運(yùn)算符用于檢測(cè)字段的值是否屬于表達(dá)式集合或子查詢。運(yùn)算符用于檢測(cè)字段的值是否屬于表達(dá)式集合或子查詢。(3)LIKE運(yùn)算符運(yùn)算符格式:格式: LIKE LIKE運(yùn)算符用于檢測(cè)字段的值是否與樣式字符串匹配。運(yùn)算符用于檢測(cè)字段的值是否與樣式字符串匹配。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.14:查
27、詢學(xué)生表中入學(xué)成績(jī)?cè)诓樵儗W(xué)生表中入學(xué)成績(jī)?cè)?50570之間的學(xué)號(hào)、姓名、入之間的學(xué)號(hào)、姓名、入學(xué)成績(jī)。學(xué)成績(jī)。SQL語(yǔ)句如下:語(yǔ)句如下: SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名, 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) FROM 學(xué)生學(xué)生 WHERE 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) BETWEEN 550 AND 570上述語(yǔ)句的功能相當(dāng)于:上述語(yǔ)句的功能相當(dāng)于: SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名, 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) FROM 學(xué)生學(xué)生 WHERE 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)= 550 AND 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)=570第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.15:查詢學(xué)生表中學(xué)號(hào)為查詢學(xué)生表中學(xué)號(hào)為070102和和0
28、70401的記錄。的記錄。SQL語(yǔ)句語(yǔ)句如下:如下:SELECT * FROM 學(xué)生學(xué)生 WHERE 學(xué)號(hào)學(xué)號(hào) IN(070102, 070401)上述語(yǔ)句的功能相當(dāng)于:上述語(yǔ)句的功能相當(dāng)于:SELECT * FROM 學(xué)生學(xué)生 WHERE 學(xué)號(hào)學(xué)號(hào)=070102 OR 學(xué)號(hào)學(xué)號(hào)= 070401第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.16:查詢學(xué)生表中姓查詢學(xué)生表中姓“王王”的學(xué)生的記錄。的學(xué)生的記錄。SQL語(yǔ)句如下:語(yǔ)句如下: SELECT * FROM 學(xué)生學(xué)生 WHERE 姓名姓名 LIKE 王王*通配符通配符“*”表示零個(gè)表示零個(gè)或多個(gè)字符或多個(gè)字符“?”表示一
29、個(gè)字符表示一個(gè)字符 第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL3.3.計(jì)算查詢計(jì)算查詢 函 數(shù) 功 能COUNT()對(duì)指定字段的值計(jì)算個(gè)數(shù)對(duì)指定字段的值計(jì)算個(gè)數(shù)COUNT( (* *) )計(jì)算記錄個(gè)數(shù)計(jì)算記錄個(gè)數(shù)SUM()計(jì)算指定的數(shù)值列的和計(jì)算指定的數(shù)值列的和AVG()計(jì)算指定的數(shù)值列的平均值計(jì)算指定的數(shù)值列的平均值MAX()計(jì)算指定的字符、日期或數(shù)值列中的最大值計(jì)算指定的字符、日期或數(shù)值列中的最大值MIN()計(jì)算指定的字符、日期或數(shù)值列中的最小值計(jì)算指定的字符、日期或數(shù)值列中的最小值說(shuō)明:說(shuō)明:(字段名)可以是字段名,也可以是(字段名)可以是字段名,也可以是SQL表達(dá)式。表達(dá)式
30、。 上述聚合函數(shù)可以用在上述聚合函數(shù)可以用在SELECT 短語(yǔ)中對(duì)查詢結(jié)果進(jìn)行計(jì)算,也可以短語(yǔ)中對(duì)查詢結(jié)果進(jìn)行計(jì)算,也可以在在HAVING子句中構(gòu)造分組篩選條件。子句中構(gòu)造分組篩選條件。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.17:在學(xué)生表中統(tǒng)計(jì)學(xué)生人數(shù)。在學(xué)生表中統(tǒng)計(jì)學(xué)生人數(shù)。SQL語(yǔ)句如下:語(yǔ)句如下:SELECT COUNT(*) AS 學(xué)生人數(shù)學(xué)生人數(shù) FROM 學(xué)生學(xué)生例例10.18:查詢學(xué)生表中男生入學(xué)成績(jī)字段的平均值、最大值和最查詢學(xué)生表中男生入學(xué)成績(jī)字段的平均值、最大值和最小值。小值。SQL語(yǔ)句如下:語(yǔ)句如下:SELECT “男男” AS 性別,性別,AV
31、G(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) AS 入學(xué)平均分入學(xué)平均分 MAX(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) AS 入學(xué)最高分入學(xué)最高分, MIN(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) AS 入學(xué)最低分入學(xué)最低分 FROM 學(xué)生學(xué)生 WHERE 性別性別=男男第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL4. 4. 分組與計(jì)算查詢分組與計(jì)算查詢格式:格式:GROUP BY , HAVING 說(shuō)明:說(shuō)明: 分組關(guān)鍵字是分組的依據(jù)分組關(guān)鍵字是分組的依據(jù), 可以是字段名,也可以是可以是字段名,也可以是SQL函數(shù)表達(dá)式,還可以是字段序號(hào)(從函數(shù)表達(dá)式,還可以是字段序號(hào)(從1開(kāi)始)。開(kāi)始)。 HAVING是對(duì)分組進(jìn)行篩選的條件。是對(duì)分組進(jìn)行篩
32、選的條件。HAVING只能與只能與GROUP BY一起出現(xiàn),不能單獨(dú)使用。一起出現(xiàn),不能單獨(dú)使用。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.19:分別統(tǒng)計(jì)男、女學(xué)生人數(shù)和入學(xué)成績(jī)的最高分和平均分。分別統(tǒng)計(jì)男、女學(xué)生人數(shù)和入學(xué)成績(jī)的最高分和平均分。SELECT 性別性別, COUNT(性別性別) AS 人數(shù),人數(shù),MAX(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) AS 入學(xué)最高分入學(xué)最高分, AVG(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) AS 入學(xué)平均分入學(xué)平均分 FROM 學(xué)生學(xué)生 GROUP BY 性別性別例例10.20:在成績(jī)表中統(tǒng)計(jì)有在成績(jī)表中統(tǒng)計(jì)有6個(gè)以上學(xué)生選修的課程。個(gè)以上學(xué)生選修的課程。SQL語(yǔ)句
33、如下:語(yǔ)句如下:SELECT 課程號(hào)課程號(hào), COUNT(*) AS 選課人數(shù)選課人數(shù) FROM 成績(jī)成績(jī) GROUP BY 課程號(hào)課程號(hào) HAVING COUNT(*)=6第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.21:對(duì)對(duì)1988年以后出生的學(xué)生分別按專業(yè)統(tǒng)計(jì)入學(xué)成績(jī),并年以后出生的學(xué)生分別按專業(yè)統(tǒng)計(jì)入學(xué)成績(jī),并輸出入學(xué)平均成績(jī)?cè)谳敵鋈雽W(xué)平均成績(jī)?cè)?60分以上的組。分以上的組。SELECT 專業(yè)專業(yè), AVG(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) AS 入學(xué)平均分入學(xué)平均分 FROM 學(xué)生學(xué)生 WHERE 出生日期出生日期=#1988-01-01# GROUP BY 專業(yè)專業(yè) HAVI
34、NG AVG(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī))=560說(shuō)明:說(shuō)明: HAVING與與WHERE的區(qū)別在于:的區(qū)別在于:WHERE是對(duì)表中所有記錄進(jìn)行是對(duì)表中所有記錄進(jìn)行篩選,篩選,HAVING是對(duì)分組結(jié)果進(jìn)行篩選。在分組查詢中如果既選用了是對(duì)分組結(jié)果進(jìn)行篩選。在分組查詢中如果既選用了WHERE,又選用了,又選用了HAVING,執(zhí)行的順序是先用,執(zhí)行的順序是先用WHERE限定記錄,限定記錄,然后對(duì)篩選后的記錄按然后對(duì)篩選后的記錄按GROUP BY指定的分組關(guān)鍵字分組,最后用指定的分組關(guān)鍵字分組,最后用HAVING子句限定分組。子句限定分組。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL5. 5. 排序
35、排序格式:格式:ORDER BY ASC | DESC , ASC | DESC TOP PERCENT說(shuō)明:說(shuō)明: ASC表示對(duì)查詢結(jié)果按指定字段升序排序。表示對(duì)查詢結(jié)果按指定字段升序排序。 DESC表示對(duì)查詢結(jié)果按指定字段降序排序;表示對(duì)查詢結(jié)果按指定字段降序排序;ASC|DESC缺省缺省時(shí)默認(rèn)值是升序。時(shí)默認(rèn)值是升序。 TOP必須與必須與ORDER BY短語(yǔ)同時(shí)使用,表示從第一條記錄開(kāi)始,短語(yǔ)同時(shí)使用,表示從第一條記錄開(kāi)始,顯示滿足條件的前顯示滿足條件的前N個(gè)記錄。選擇個(gè)記錄。選擇PERCENT短語(yǔ)時(shí),數(shù)值表短語(yǔ)時(shí),數(shù)值表達(dá)式表示百分比。達(dá)式表示百分比。 第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)
36、系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.22 :在學(xué)生表中查詢?nèi)雽W(xué)成績(jī)?cè)谇霸趯W(xué)生表中查詢?nèi)雽W(xué)成績(jī)?cè)谇?名的學(xué)生信息。名的學(xué)生信息。SQL語(yǔ)語(yǔ)句如下:句如下: SELECT TOP 3 * FROM 學(xué)生學(xué)生 ORDER BY 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) DESC例例10.23:顯示年齡最小的顯示年齡最小的30%的學(xué)生的信息。的學(xué)生的信息。SQL語(yǔ)句如下:語(yǔ)句如下: SELECT TOP 20 PERCENT * FROM 學(xué)生學(xué)生 ORDER BY 出生日期出生日期 DESC第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL SELECT命令支持多表之間的連接查詢,并提供了專門(mén)的命令支持多表之間的連接查詢,
37、并提供了專門(mén)的JOIN子句。子句。格式:格式:SELECT FROM INNER JOIN ON WHERE 其中:其中:INNER JOIN用來(lái)連接左右兩個(gè)用來(lái)連接左右兩個(gè)指定的表,指定的表,ON用來(lái)指用來(lái)指定連接條件。定連接條件。三三. .連接查詢連接查詢第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.24:在職工管理數(shù)據(jù)庫(kù)中查詢高級(jí)職稱(教授或副教授)教師的姓名、在職工管理數(shù)據(jù)庫(kù)中查詢高級(jí)職稱(教授或副教授)教師的姓名、基本工資、津貼和所得稅?;竟べY、津貼和所得稅。SQL語(yǔ)句如下:語(yǔ)句如下: SELECT 姓名姓名, 工資工資, 津貼津貼, 所得稅所得稅 FROM 職工
38、職工 INNER JOIN 工資工資 ON 職工職工.職工號(hào)職工號(hào)=工資工資.職工號(hào)職工號(hào) WHERE 職稱職稱 IN(“教授教授”,“副教授副教授”) 或者:或者: SELECT 姓名姓名, 工資工資, 津貼津貼, 所得稅所得稅 FROM 職工職工, 工資工資 WHERE 職工職工.職工號(hào)職工號(hào)=工資工資.職工號(hào)職工號(hào) AND 職稱職稱 IN(“教授教授”,“副教副教授授”)“職工號(hào)職工號(hào)”是職工表和工資表的公共字段,是職工表和工資表的公共字段,“職工職工.職工號(hào)職工號(hào)=工資工資.職工職工號(hào)號(hào)”是連接條件。是連接條件。INNER JOIN 子句還可以嵌套,即在一個(gè)子句還可以嵌套,即在一個(gè) I
39、NNER JOIN 之中,可以嵌套多個(gè)之中,可以嵌套多個(gè)INNER ON 子句。子句。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.25:輸出所有學(xué)生每門(mén)課程的綜合成績(jī)單,要求給出學(xué)號(hào)、姓名、課程名和綜合輸出所有學(xué)生每門(mén)課程的綜合成績(jī)單,要求給出學(xué)號(hào)、姓名、課程名和綜合成績(jī)信息。成績(jī)信息。SQL語(yǔ)句如下:語(yǔ)句如下: SELECT 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào), 姓名姓名, 平時(shí)平時(shí)*0.1+期中期中*0.2+期末期末*0.7 AS 綜合成績(jī)綜合成績(jī) FROM 學(xué)生學(xué)生 INNER JOIN (成績(jī)成績(jī) INNER JOIN 課程課程 ON 成績(jī)成績(jī).課程號(hào)課程號(hào)=課程課程.課程號(hào)課程號(hào)
40、) ON 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào)=成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào) 或者:或者: SELECT 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào),姓名姓名,課程名課程名,平時(shí)平時(shí)*0.1+期中期中*0.2+期末期末*0.7 AS 綜合成績(jī)綜合成績(jī) FROM 學(xué)生學(xué)生,成績(jī)成績(jī),課程課程 WHERE 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào)=成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào) AND 成績(jī)成績(jī).課程號(hào)課程號(hào)=課程課程.課程號(hào)課程號(hào)說(shuō)明:說(shuō)明:由于學(xué)號(hào)字段在兩個(gè)表中都出現(xiàn),為了防止二義性,在其列名前加上由于學(xué)號(hào)字段在兩個(gè)表中都出現(xiàn),為了防止二義性,在其列名前加上表名作為前綴,以示區(qū)別。如果列名是唯一的,則不必加前綴。表名作為前綴,以示區(qū)別。如果列名是唯一的,則不必加前綴。第第10章
41、關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.26:按各門(mén)課程期末平均成績(jī)的降序輸出每位學(xué)生的學(xué)號(hào)和期末平按各門(mén)課程期末平均成績(jī)的降序輸出每位學(xué)生的學(xué)號(hào)和期末平均成績(jī)(保留小數(shù)均成績(jī)(保留小數(shù)1位)。位)。SQL語(yǔ)句如下:語(yǔ)句如下: SELECT 成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào), ROUND(Avg(成績(jī)成績(jī).期末期末),1) AS 期末平均成績(jī)期末平均成績(jī) FROM 學(xué)生學(xué)生 INNER JOIN 成績(jī)成績(jī) ON 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào)=成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào) GROUP BY 成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào) ORDER BY 2 DESC第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL在在SQL語(yǔ)言中,當(dāng)一
42、個(gè)查詢是另一個(gè)查詢的條件時(shí),即在一個(gè)語(yǔ)言中,當(dāng)一個(gè)查詢是另一個(gè)查詢的條件時(shí),即在一個(gè)SELECT語(yǔ)句的語(yǔ)句的WHERE子句中出現(xiàn)另一個(gè)子句中出現(xiàn)另一個(gè)SELECT語(yǔ)句,這語(yǔ)句,這種查詢稱為嵌套查詢。種查詢稱為嵌套查詢。通常把內(nèi)層的查詢語(yǔ)句稱為子查詢,調(diào)用子查詢的查詢語(yǔ)句稱通常把內(nèi)層的查詢語(yǔ)句稱為子查詢,調(diào)用子查詢的查詢語(yǔ)句稱為父查詢。為父查詢。SQL語(yǔ)言允許多層嵌套查詢,即一個(gè)子查詢中還可語(yǔ)言允許多層嵌套查詢,即一個(gè)子查詢中還可以嵌套其他子查詢。以嵌套其他子查詢。子查詢的子查詢的SELECT語(yǔ)句中不能使用語(yǔ)句中不能使用ORDER BY子句,子句,ORDER BY子句只能對(duì)最終查詢結(jié)果排序。子句
43、只能對(duì)最終查詢結(jié)果排序。四四. .嵌套查詢嵌套查詢第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL1帶有比較運(yùn)算符的子查詢帶有比較運(yùn)算符的子查詢 帶有比較運(yùn)算符的子查詢是指父查詢與子查詢之間用比較運(yùn)帶有比較運(yùn)算符的子查詢是指父查詢與子查詢之間用比較運(yùn)算符(算符(、=、=、)進(jìn)行連接。)進(jìn)行連接。例例10.27:查詢所有參加查詢所有參加“計(jì)算機(jī)計(jì)算機(jī)”課程考試的學(xué)生的學(xué)號(hào)。課程考試的學(xué)生的學(xué)號(hào)。SELECT 學(xué)號(hào)學(xué)號(hào) FROM 成績(jī)成績(jī) WHERE 課程號(hào)課程號(hào)= ( SELECT 課程號(hào)課程號(hào) FROM 課程課程 WHERE 課程名課程名= 計(jì)算機(jī)計(jì)算機(jī) )第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章
44、關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.28:檢索所有入學(xué)成績(jī)高于于海濤的學(xué)生的學(xué)號(hào)、姓名、性別和檢索所有入學(xué)成績(jī)高于于海濤的學(xué)生的學(xué)號(hào)、姓名、性別和入學(xué)成績(jī)。入學(xué)成績(jī)。 SELECT 姓名姓名, 性別性別, 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) FROM 學(xué)生學(xué)生 WHERE 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) ( SELECT 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) FROM 學(xué)生學(xué)生 WHERE 姓名姓名=于海濤于海濤) 例例10.29:顯示入學(xué)成績(jī)高于男生平均入學(xué)成績(jī)的女生的學(xué)號(hào)、姓名和顯示入學(xué)成績(jī)高于男生平均入學(xué)成績(jī)的女生的學(xué)號(hào)、姓名和平均成績(jī)。平均成績(jī)。 SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名, 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) FROM 學(xué)生學(xué)生 WHERE 性別
45、性別=“女女” AND入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)= ( SELECT AVG(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) FROM 學(xué)生學(xué)生 WHERE 性別性別=“男男”) 第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL2帶有帶有IN謂詞的子查詢謂詞的子查詢格式:格式:NOT IN()IN是屬于的意思,是屬于的意思,指定的字段內(nèi)容屬于子查詢中任何一指定的字段內(nèi)容屬于子查詢中任何一個(gè)值,運(yùn)算結(jié)果都為真。個(gè)值,運(yùn)算結(jié)果都為真。 例例10.30:查詢所有參加查詢所有參加“計(jì)算機(jī)計(jì)算機(jī)”課程考試的學(xué)生的學(xué)號(hào)、姓名課程考試的學(xué)生的學(xué)號(hào)、姓名和性別。和性別。 SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名, 性別性別 FROM 學(xué)生學(xué)生 W
46、HERE 學(xué)號(hào)學(xué)號(hào) IN ( SELECT 學(xué)號(hào)學(xué)號(hào) FROM 成績(jī)成績(jī) WHERE 課程號(hào)課程號(hào)= ( SELECT 課程號(hào)課程號(hào) FROM 課程課程 WHERE 課程名課程名= 計(jì)算機(jī)計(jì)算機(jī) )第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL3帶有帶有ANY或或ALL謂詞的子查詢謂詞的子查詢格式:格式: ANY | ALL()注意:注意:使用使用ANY或或ALL謂詞時(shí)必須同時(shí)使用比較運(yùn)算符謂詞時(shí)必須同時(shí)使用比較運(yùn)算符。例例10.31:查詢?nèi)雽W(xué)成績(jī)高于女生最低入學(xué)成績(jī)的男生的學(xué)號(hào)、姓查詢?nèi)雽W(xué)成績(jī)高于女生最低入學(xué)成績(jī)的男生的學(xué)號(hào)、姓名和入學(xué)成績(jī),名和入學(xué)成績(jī),SQL語(yǔ)句如下:語(yǔ)句如下:
47、SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名, 性別性別, 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) FROM 學(xué)生學(xué)生 WHERE 性別性別=“男男”AND 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)ANY ( SELECT 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) FROM 學(xué)生學(xué)生 WHERE 性別性別=“女女”)用聚合函數(shù)來(lái)實(shí)現(xiàn):用聚合函數(shù)來(lái)實(shí)現(xiàn):SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名, 性別性別, 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) FROM 學(xué)生學(xué)生WHERE 性別性別=“男男” AND 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)= ( SELECT MIN(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) FROM 學(xué)生學(xué)生 WHERE 性別性別=“女女”) 用聚合函數(shù)實(shí)現(xiàn)子查詢通常比直接用用聚合函數(shù)實(shí)現(xiàn)子查詢通常比直接用ANY或或ALL
48、查詢效率要高。查詢效率要高。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL4帶有帶有EXISTS謂詞的子查詢謂詞的子查詢格式:格式:NOT EXISTS ()帶有帶有EXISTS謂詞的子查詢不返回任何數(shù)據(jù),只產(chǎn)生邏輯真值謂詞的子查詢不返回任何數(shù)據(jù),只產(chǎn)生邏輯真值(true)或邏輯假值()或邏輯假值(false),即是否存在相應(yīng)的記錄。),即是否存在相應(yīng)的記錄。例例10.32:查詢參加了查詢參加了A02課程考試的學(xué)生學(xué)號(hào)和姓名。課程考試的學(xué)生學(xué)號(hào)和姓名。SQL語(yǔ)句語(yǔ)句如下:如下:SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名 FROM 學(xué)生學(xué)生WHERE EXISTS ( SELECT * FROM
49、 成績(jī)成績(jī) WHERE 成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào)=學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào) AND 成績(jī)成績(jī).課程號(hào)課程號(hào)= A02 );帶帶EXISTS的子查詢只返回真值或假值,其輸出項(xiàng)通常都用的子查詢只返回真值或假值,其輸出項(xiàng)通常都用 * 。第第10章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL例例10.33:查詢參加了全部課程考試的學(xué)生學(xué)號(hào)和姓名??蓪㈩}目的意查詢參加了全部課程考試的學(xué)生學(xué)號(hào)和姓名??蓪㈩}目的意思轉(zhuǎn)換成:查詢這樣的學(xué)生,沒(méi)有一門(mén)課程他沒(méi)有成績(jī)。思轉(zhuǎn)換成:查詢這樣的學(xué)生,沒(méi)有一門(mén)課程他沒(méi)有成績(jī)。SELECT 學(xué)號(hào)學(xué)號(hào), 姓名姓名 FROM 學(xué)生學(xué)生WHERE NOT EXISTS ( SELECT * FROM 課程課程 WHERE NOT EXISTS ( SELECT * FROM 成績(jī)成績(jī) WHERE 成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào)=學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào) and 成績(jī)成績(jī).課程號(hào)課程號(hào)= 課程課程.課程號(hào)課程號(hào) )第第1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 木工承包合同內(nèi)腳手架
- 啤酒銷售合同書(shū)
- 農(nóng)村住房安全保障工程實(shí)施指南
- 網(wǎng)站維護(hù)與SEO優(yōu)化作業(yè)指導(dǎo)書(shū)
- 投資理財(cái)與風(fēng)險(xiǎn)防范作業(yè)指導(dǎo)書(shū)
- 2025年甘肅貨運(yùn)從業(yè)資格證題目答案
- 2025年三明道路貨運(yùn)駕駛員從業(yè)資格證考試題庫(kù)完整
- 2025年貨車從業(yè)資格證答題軟件
- 2024-2025學(xué)年四年級(jí)語(yǔ)文上冊(cè)第二單元明月4走月亮作業(yè)設(shè)計(jì)北師大版
- 個(gè)人前臺(tái)自我總結(jié)
- 2025年電力鐵塔市場(chǎng)分析現(xiàn)狀
- GB 12158-2024防止靜電事故通用要求
- 山東省濱州市2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 化學(xué)-江蘇省蘇州市2024-2025學(xué)年2025屆高三第一學(xué)期學(xué)業(yè)期末質(zhì)量陽(yáng)光指標(biāo)調(diào)研卷試題和答案
- 蛋雞生產(chǎn)飼養(yǎng)養(yǎng)殖培訓(xùn)課件
- 運(yùn)用PDCA降低住院患者跌倒-墜床發(fā)生率
- 海底撈員工手冊(cè)
- 立春氣象與生活影響模板
- 中國(guó)服裝零售行業(yè)發(fā)展環(huán)境、市場(chǎng)運(yùn)行格局及前景研究報(bào)告-智研咨詢(2025版)
- 2024年廣東省公需課《新質(zhì)生產(chǎn)力與高質(zhì)量發(fā)展》考核答案
- 臨床提高膿毒性休克患者1h集束化措施落實(shí)率PDCA品管圈
評(píng)論
0/150
提交評(píng)論