SQL基本語(yǔ)句介紹_第1頁(yè)
SQL基本語(yǔ)句介紹_第2頁(yè)
SQL基本語(yǔ)句介紹_第3頁(yè)
SQL基本語(yǔ)句介紹_第4頁(yè)
SQL基本語(yǔ)句介紹_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、用戶從鍵盤上輸入一個(gè)大用戶從鍵盤上輸入一個(gè)大于于10的偶數(shù),程序?qū)⑵涞呐紨?shù),程序?qū)⑵浞纸鉃閮蓚€(gè)質(zhì)數(shù)之和,并分解為兩個(gè)質(zhì)數(shù)之和,并顯示出分解的結(jié)果。顯示出分解的結(jié)果。 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言言SQL32022-3-2n3.1 SQL概述概述n3.2 數(shù)據(jù)定義數(shù)據(jù)定義n3.3 查詢查詢n3.4 數(shù)據(jù)更新數(shù)據(jù)更新n3.5 視圖視圖n3.6 數(shù)據(jù)控制數(shù)據(jù)控制42022-3-2nSQL簡(jiǎn)介簡(jiǎn)介結(jié)構(gòu)化查詢語(yǔ)言結(jié)構(gòu)化查詢語(yǔ)言SQL(Structured Query Language)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語(yǔ)言,其)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語(yǔ)言,其功能包括查詢、操縱、定義和控

2、制四個(gè)方面,是一功能包括查詢、操縱、定義和控制四個(gè)方面,是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。目前已成個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。目前已成為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)言的版本包括:語(yǔ)言的版本包括:SQL-89,SQL-92, SQL3SQL語(yǔ)言集數(shù)據(jù)查詢(語(yǔ)言集數(shù)據(jù)查詢(data query)、數(shù)據(jù)操縱()、數(shù)據(jù)操縱(data manipulation)、數(shù)據(jù)定義()、數(shù)據(jù)定義(data definition)和數(shù)據(jù)控制(和數(shù)據(jù)控制(data control)功能于一體,充分體現(xiàn))功能于一體,充分體現(xiàn)了關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)和優(yōu)點(diǎn)了關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)和優(yōu)點(diǎn)52

3、022-3-2n綜合統(tǒng)一綜合統(tǒng)一SQL語(yǔ)言集數(shù)據(jù)定義語(yǔ)言語(yǔ)言集數(shù)據(jù)定義語(yǔ)言DDL、數(shù)據(jù)操縱語(yǔ)言、數(shù)據(jù)操縱語(yǔ)言DML、數(shù)據(jù)控制語(yǔ)言、數(shù)據(jù)控制語(yǔ)言DCL的功能于一體,可以完成數(shù)據(jù)的功能于一體,可以完成數(shù)據(jù)庫(kù)生命周期中的全部活動(dòng)。庫(kù)生命周期中的全部活動(dòng)。關(guān)系模型中實(shí)體和實(shí)體間的聯(lián)系都用關(guān)系來(lái)表示,關(guān)系模型中實(shí)體和實(shí)體間的聯(lián)系都用關(guān)系來(lái)表示,使得操作符單一,每種操作只使用一個(gè)操作符。使得操作符單一,每種操作只使用一個(gè)操作符。n高度非過(guò)程化高度非過(guò)程化使用使用SQL語(yǔ)言,只需要提出語(yǔ)言,只需要提出“做什么做什么”,而無(wú)需指,而無(wú)需指明明“怎么做怎么做”,無(wú)需了解存取路徑,提高了數(shù)據(jù)的,無(wú)需了解存取路徑,

4、提高了數(shù)據(jù)的獨(dú)立性獨(dú)立性n面向集合的操作方式面向集合的操作方式SQL語(yǔ)言采用集合操作方式,查詢、插入、刪除、語(yǔ)言采用集合操作方式,查詢、插入、刪除、修改操作的對(duì)象都是結(jié)合。修改操作的對(duì)象都是結(jié)合。62022-3-2n以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方式以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方式作為自含式語(yǔ)言作為自含式語(yǔ)言提供聯(lián)機(jī)交互工具,提供聯(lián)機(jī)交互工具,在終端鍵盤上直接鍵入在終端鍵盤上直接鍵入SQL命令對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作命令對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,由由DBMS來(lái)進(jìn)行解釋來(lái)進(jìn)行解釋作為嵌入式語(yǔ)言作為嵌入式語(yǔ)言, SQL語(yǔ)句能嵌入到高級(jí)語(yǔ)言程序中語(yǔ)句能嵌入到高級(jí)語(yǔ)言程序中使應(yīng)用程序充分利用使應(yīng)用程序充分利用SQL訪問(wèn)

5、數(shù)據(jù)庫(kù)的能力、宿訪問(wèn)數(shù)據(jù)庫(kù)的能力、宿主主 語(yǔ)言的過(guò)程處理能力語(yǔ)言的過(guò)程處理能力一般需要預(yù)編譯,將嵌入的一般需要預(yù)編譯,將嵌入的SQL語(yǔ)句轉(zhuǎn)化為宿主語(yǔ)句轉(zhuǎn)化為宿主語(yǔ)言編譯器能處理的語(yǔ)句語(yǔ)言編譯器能處理的語(yǔ)句72022-3-2n語(yǔ)言簡(jiǎn)潔,易學(xué)易用,核心功能語(yǔ)言簡(jiǎn)潔,易學(xué)易用,核心功能9個(gè)動(dòng)詞個(gè)動(dòng)詞82022-3-2nSQL語(yǔ)言支持關(guān)系數(shù)據(jù)庫(kù)三級(jí)模式語(yǔ)言支持關(guān)系數(shù)據(jù)庫(kù)三級(jí)模式92022-3-2n存儲(chǔ)文件存儲(chǔ)文件其邏輯結(jié)構(gòu)組成了數(shù)據(jù)庫(kù)的內(nèi)模式,物理結(jié)構(gòu)有數(shù)其邏輯結(jié)構(gòu)組成了數(shù)據(jù)庫(kù)的內(nèi)模式,物理結(jié)構(gòu)有數(shù)據(jù)庫(kù)廠商所有,對(duì)用戶透明。據(jù)庫(kù)廠商所有,對(duì)用戶透明。n基本表(基表,基本表(基表,Base Table)

6、本身獨(dú)立存在的表,對(duì)應(yīng)于模式,一個(gè)關(guān)系對(duì)應(yīng)于本身獨(dú)立存在的表,對(duì)應(yīng)于模式,一個(gè)關(guān)系對(duì)應(yīng)于一個(gè)表,表可以有一到多個(gè)索引,以提高查詢速度一個(gè)表,表可以有一到多個(gè)索引,以提高查詢速度n視圖(視圖(View)從一個(gè)或多個(gè)表或視圖中導(dǎo)出的表,對(duì)應(yīng)于外模式從一個(gè)或多個(gè)表或視圖中導(dǎo)出的表,對(duì)應(yīng)于外模式,本身不獨(dú)立存在,數(shù)據(jù)庫(kù)中只存放其定義,是虛,本身不獨(dú)立存在,數(shù)據(jù)庫(kù)中只存放其定義,是虛表。表。一般可以象使用基本表一樣來(lái)使用視圖?一般可以象使用基本表一樣來(lái)使用視圖?。102022-3-2n3.2.1 定義、刪除與修改基本表定義、刪除與修改基本表n3.2.2 建立與刪除索引建立與刪除索引112022-3-2n

7、1. 定義基本表定義基本表CREATE TABLE ( , , ););:所要定義的基本表的名字:所要定義的基本表的名字:組成該表的各個(gè)屬性(列):組成該表的各個(gè)屬性(列):涉及相應(yīng)屬性列的完整性約束條件:涉及相應(yīng)屬性列的完整性約束條件:涉及一個(gè)或多個(gè)屬性列的完整性約:涉及一個(gè)或多個(gè)屬性列的完整性約束條件束條件 122022-3-2例例1 建立一個(gè)建立一個(gè)“學(xué)生學(xué)生”表表Student,它由學(xué)號(hào),它由學(xué)號(hào)Sno、姓名、姓名Sname、性別、性別Ssex、年齡、年齡Sage、所在系、所在系Sdept五個(gè)屬性五個(gè)屬性組成。其中學(xué)號(hào)不能為空,值是唯一的,并且姓名取組成。其中學(xué)號(hào)不能為空,值是唯一的,

8、并且姓名取值也唯一。值也唯一。CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(1) , Sage INT, Sdept CHAR(15); SnoSnameSsexSageSdept 字字符符型型 字字符符型型 字字符符型型 整整數(shù)數(shù) 字字符符型型 長(zhǎng)長(zhǎng)度度為為5 5 長(zhǎng)長(zhǎng)度度為為2 20 0 長(zhǎng)長(zhǎng)度度為為1 1 長(zhǎng)長(zhǎng)度度為為1 15 5 不不能能為為空空值值132022-3-2n常用完整性約束常用完整性約束主碼約束:主碼約束: PRIMARY KEY唯一性約束:唯一性約束:

9、UNIQUE非空值約束:非空值約束:NOT NULL參照完整性約束參照完整性約束PRIMARY KEY與與 UNIQUE的區(qū)別?的區(qū)別?142022-3-2nPRIMARY KEY通過(guò)主鍵可強(qiáng)制表的實(shí)體完整性通過(guò)主鍵可強(qiáng)制表的實(shí)體完整性; PRIMARY KEY 約束中的列不能接受空值。約束中的列不能接受空值。當(dāng)為表指定當(dāng)為表指定 PRIMARY KEY 約束時(shí),約束時(shí),SQL Server2000 通過(guò)通過(guò)為主鍵列創(chuàng)建唯一索引強(qiáng)制數(shù)據(jù)的唯一性。當(dāng)在查詢中使用為主鍵列創(chuàng)建唯一索引強(qiáng)制數(shù)據(jù)的唯一性。當(dāng)在查詢中使用主鍵時(shí),該索引還可用來(lái)對(duì)數(shù)據(jù)進(jìn)行快速訪問(wèn)主鍵時(shí),該索引還可用來(lái)對(duì)數(shù)據(jù)進(jìn)行快速訪問(wèn)nU

10、NIQUE可使用可使用 UNIQUE 約束確保在非主鍵列中不輸入重復(fù)值。約束確保在非主鍵列中不輸入重復(fù)值。盡管盡管 UNIQUE 約束和約束和 PRIMARY KEY約束都強(qiáng)制唯一性,約束都強(qiáng)制唯一性,但在強(qiáng)制下面的唯一性時(shí)應(yīng)使用但在強(qiáng)制下面的唯一性時(shí)應(yīng)使用 UNIQUE 約束:約束: 非主鍵的一列或列組合:一個(gè)表可以定義多個(gè)非主鍵的一列或列組合:一個(gè)表可以定義多個(gè) UNIQUE 約束,而只能定義一個(gè)約束,而只能定義一個(gè) PRIMARY KEY 約束。約束。允許空值的列:允許空值的列上可以定義允許空值的列:允許空值的列上可以定義 UNIQUE 約束約束,而不能定義,而不能定義 PRIMARY

11、KEY 約束。約束。152022-3-2例例 建立一個(gè)建立一個(gè)“學(xué)生選課學(xué)生選課”表表SC,它由學(xué)號(hào),它由學(xué)號(hào)Sno、課程、課程號(hào)號(hào)Cno,修課成績(jī),修課成績(jī)Grade組成,其中組成,其中(Sno, Cno)為主碼為主碼CREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , Grade int, Primary key (Sno, Cno);162022-3-2ALTER TABLE ADD 完整性約束完整性約束 DROP MODIFY ;:要修改的基本表:要修改的基本表ADD子句子句:增加新列和新的完整性約束條件:增加新列和新的完整性約束條件DROP子句子句

12、:刪除指定的完整性約束條件:刪除指定的完整性約束條件MODIFY子句子句:用于修改列名和數(shù)據(jù)類型:用于修改列名和數(shù)據(jù)類型172022-3-2n例例2 向向Student表增加表增加“入學(xué)時(shí)間入學(xué)時(shí)間”列,其數(shù)據(jù)類型列,其數(shù)據(jù)類型為日期型。為日期型。 ALTER TABLE Student ADD Scome DATE;不論基本表中原來(lái)是否已有數(shù)據(jù),新增加的列一律不論基本表中原來(lái)是否已有數(shù)據(jù),新增加的列一律為空值。為空值。 n刪除屬性列:刪除屬性列: 間接刪除間接刪除把表中要保留的列及其內(nèi)容復(fù)制到一個(gè)新表中把表中要保留的列及其內(nèi)容復(fù)制到一個(gè)新表中刪除原表刪除原表再將新表重命名為原表名再將新表重命

13、名為原表名直接刪除屬性列直接刪除屬性列:(新新)例:例:ALTER TABLE Student Drop Scome;182022-3-2n例例3 將年齡的數(shù)據(jù)類型改為半字長(zhǎng)整數(shù)。將年齡的數(shù)據(jù)類型改為半字長(zhǎng)整數(shù)。 ALTER TABLE Student MODIFY Sage SMALLINT注:修改原有的列定義有可能會(huì)破壞已有數(shù)據(jù)注:修改原有的列定義有可能會(huì)破壞已有數(shù)據(jù)n例例4 刪除學(xué)生姓名必須取唯一值的約束。刪除學(xué)生姓名必須取唯一值的約束。ALTER TABLE Student DROP UNIQUE (Sname)192022-3-2nDROP TABLE ; n基本表刪除基本表刪除數(shù)據(jù)

14、、表上的索引都刪除數(shù)據(jù)、表上的索引都刪除表上的視圖往往仍然保留,但無(wú)法引用表上的視圖往往仍然保留,但無(wú)法引用n刪除基本表時(shí),系統(tǒng)會(huì)從數(shù)據(jù)字典中刪去有關(guān)該基本刪除基本表時(shí),系統(tǒng)會(huì)從數(shù)據(jù)字典中刪去有關(guān)該基本表及其索引的描述表及其索引的描述 n例例5 刪除刪除Student表表 DROP TABLEStudent ;202022-3-2n數(shù)據(jù)庫(kù)查詢是數(shù)據(jù)庫(kù)的核心操作,數(shù)據(jù)庫(kù)查詢是數(shù)據(jù)庫(kù)的核心操作,select具有靈活的使具有靈活的使用方式和豐富的功能用方式和豐富的功能3.1.1 單表查詢單表查詢3.1.2 連接查詢連接查詢3.1.3 嵌套查詢嵌套查詢3.1.4 集合查詢集合查詢3.1.5 selec

15、t 語(yǔ)句的一般格式語(yǔ)句的一般格式 212022-3-2n語(yǔ)句格式語(yǔ)句格式SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ;SELECT子句子句:指定要顯示的屬性列:指定要顯示的屬性列FROM子句子句:指定查詢對(duì)象:指定查詢對(duì)象(基本表或視圖基本表或視圖)WHERE子句子句:指定查詢條件:指定查詢條件 GROUP BY子句子句:對(duì)查詢結(jié)果按指定列的值分組,該屬性列:對(duì)查詢結(jié)果按指定列的值分組,該屬性列值相等的元組為一個(gè)組。通常會(huì)在每組中作用集函數(shù)。值相等的元組為一個(gè)組。通常會(huì)在每組中作用集函數(shù)。HAVING

16、短語(yǔ)短語(yǔ):篩選出只有滿足指定條件的組:篩選出只有滿足指定條件的組ORDER BY子句子句:對(duì)查詢結(jié)果表按指定列值的升序或降序排:對(duì)查詢結(jié)果表按指定列值的升序或降序排序序 222022-3-2數(shù)據(jù)查詢是數(shù)據(jù)庫(kù)應(yīng)用的核心功能數(shù)據(jù)查詢是數(shù)據(jù)庫(kù)應(yīng)用的核心功能n 基本結(jié)構(gòu)基本結(jié)構(gòu)nSelect A1, A2, ., An From R1, R2, ., Rm Where Pn關(guān)系代數(shù)中基于關(guān)系是一個(gè)集合這樣的數(shù)學(xué)概念關(guān)系代數(shù)中基于關(guān)系是一個(gè)集合這樣的數(shù)學(xué)概念,因此因此,重復(fù)的元組不會(huì)在關(guān)系中出現(xiàn)。重復(fù)的元組不會(huì)在關(guān)系中出現(xiàn)。n但在實(shí)踐中但在實(shí)踐中,要?jiǎng)h除查詢結(jié)果中的重復(fù)元組是相當(dāng)費(fèi)時(shí)要?jiǎng)h除查詢結(jié)果中的重

17、復(fù)元組是相當(dāng)費(fèi)時(shí)的的,所以在商用數(shù)據(jù)庫(kù)產(chǎn)品中所以在商用數(shù)據(jù)庫(kù)產(chǎn)品中,允許在關(guān)系和允許在關(guān)系和SQL表達(dá)式表達(dá)式的結(jié)果中出現(xiàn)重復(fù)元組。的結(jié)果中出現(xiàn)重復(fù)元組。232022-3-2SELECTSELECTFROMFROM常用語(yǔ)句執(zhí)行過(guò)程常用語(yǔ)句執(zhí)行過(guò)程 SELECTSELECT 投影投影 FROMFROM TABLE TABLE內(nèi)存內(nèi)存 WHEREWHERE 選取元組選取元組 GROUPGROUP 分組分組 HAVINGHAVING 選擇分組選擇分組 UNION|UNION| 查徇結(jié)果的集合運(yùn)算查徇結(jié)果的集合運(yùn)算 SELECTSELECT ORDER BY ORDER BY 排序輸出排序輸出2420

18、22-3-2學(xué)生學(xué)生-課程數(shù)據(jù)庫(kù)課程數(shù)據(jù)庫(kù)n學(xué)生表:學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept)n課程表:課程表:Course(Cno,Cname,Cpno,Ccredit)n 學(xué)生選課表:學(xué)生選課表:SC(Sno,Cno,Grade) 252022-3-2n查詢僅涉及一個(gè)表,是一種最簡(jiǎn)單的查詢操作查詢僅涉及一個(gè)表,是一種最簡(jiǎn)單的查詢操作一、選擇表中的若干列一、選擇表中的若干列二、選擇表中的若干元組二、選擇表中的若干元組三、對(duì)查詢結(jié)果排序三、對(duì)查詢結(jié)果排序四、使用集函數(shù)四、使用集函數(shù)五、對(duì)查詢結(jié)果分組五、對(duì)查詢結(jié)果分組 262022-3-2n1.查詢指定列查詢指

19、定列例例1 查詢?nèi)w學(xué)生的學(xué)號(hào)與姓名。查詢?nèi)w學(xué)生的學(xué)號(hào)與姓名。SELECT Sno,Sname FROM Student; 例例2 查詢?nèi)w學(xué)生的姓名、學(xué)號(hào)、所在系。查詢?nèi)w學(xué)生的姓名、學(xué)號(hào)、所在系。 SELECT Sname,Sno,Sdept FROM Student;n2.查詢?nèi)苛胁樵內(nèi)苛欣? 查詢?nèi)w學(xué)生的詳細(xì)記錄。查詢?nèi)w學(xué)生的詳細(xì)記錄。SELECT Sno, Sname, Ssex, Sage, Sdept FROM Student;或或 SELECT * FROM Student;272022-3-2n1.消除取值重復(fù)的行消除取值重復(fù)的行n2.查詢滿足條件的元組查詢滿足條

20、件的元組 282022-3-2n在在SELECT子句中使用子句中使用DISTINCT短語(yǔ)短語(yǔ)假設(shè)假設(shè)SC表中有下列數(shù)據(jù)表中有下列數(shù)據(jù) Sno Cno Grade - - - 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80例例6 查詢選修了課程的學(xué)生學(xué)號(hào)查詢選修了課程的學(xué)生學(xué)號(hào)(1)SELECT Sno FROM SC;或或(默認(rèn)默認(rèn) ALL) SELECT ALL Sno FROM SC; 結(jié)果:結(jié)果: Sno - 95001 95001 95001 95002 95002 (2) SELECT DISTINCT Sno FROM

21、SC; 結(jié)果:結(jié)果: Sno - 95001 95002 292022-3-2n注意注意 DISTINCT短語(yǔ)的作用范圍是所有目標(biāo)列短語(yǔ)的作用范圍是所有目標(biāo)列例:查詢選修課程的各種成績(jī)例:查詢選修課程的各種成績(jī)錯(cuò)誤的寫法錯(cuò)誤的寫法SELECT DISTINCT Cno,DISTINCT GradeFROM SC;正確的寫法正確的寫法 SELECT DISTINCT Cno,Grade FROM SC; 302022-3-2表表 3.3 常常用用的的查查詢?cè)儣l條件件查查 詢?cè)?條條 件件謂謂 詞詞比比 較較=,=,=,!=,!,!;NOT + 上上述述比比較較運(yùn)運(yùn)算算符符確確定定范范圍圍BETW

22、EEN AND,NOT BETWEEN AND確確定定集集合合IN,NOT IN字字符符匹匹配配LIKE,NOT LIKE空空 值值IS NULL,IS NOT NULL多多重重條條件件AND,ORWHERE子句常用的查詢條件子句常用的查詢條件312022-3-2n在在WHERE子句的子句的中使用比較運(yùn)算符中使用比較運(yùn)算符=,=,=,!= 或或 ,!,!, 邏輯運(yùn)算符邏輯運(yùn)算符NOT + 比較運(yùn)算符比較運(yùn)算符n例例8 查詢所有年齡在查詢所有年齡在20歲以下的學(xué)生姓名及其年歲以下的學(xué)生姓名及其年齡齡 SELECT Sname,Sage FROM Student WHERE Sage = 20;

23、322022-3-2n使用謂詞使用謂詞 BETWEEN AND NOT BETWEEN AND n例例10 查詢年齡在查詢年齡在2023歲(歲(包括包括20歲和歲和23歲歲)之)之間的學(xué)生的姓名、系別和年齡。間的學(xué)生的姓名、系別和年齡。 SELECT Sname,Sdept,Sage FROM StudentWHERE Sage BETWEEN 20 AND 23; (WHERE Sage = 20 AND Sage =23)n例例11 查詢年齡不在查詢年齡不在2023歲之間的學(xué)生姓名、系歲之間的學(xué)生姓名、系別和年齡別和年齡SELECT Sname,Sdept,Sage FROM Studen

24、tWHERE Sage NOT BETWEEN 20 AND 23;332022-3-2 NOT LIKE ESCAPE n:指定匹配模板:指定匹配模板匹配模板:固定字符串或含通配符的字符串匹配模板:固定字符串或含通配符的字符串當(dāng)匹配模板為固定字符串時(shí)當(dāng)匹配模板為固定字符串時(shí),可以用可以用 = 運(yùn)算符取代運(yùn)算符取代 LIKE 謂詞謂詞,用用 != 或或 運(yùn)算符取代運(yùn)算符取代 NOT LIKE謂詞謂詞通配符通配符% 代表任意長(zhǎng)度(長(zhǎng)度可以為代表任意長(zhǎng)度(長(zhǎng)度可以為0)的字符串)的字符串例:例:a%b表示以表示以a開(kāi)頭,以開(kāi)頭,以b結(jié)尾的任意長(zhǎng)度的字符結(jié)尾的任意長(zhǎng)度的字符串。如串。如acb,add

25、gb,ab 等都滿足該匹配串等都滿足該匹配串_ (下橫線下橫線) 代表任意單個(gè)字符代表任意單個(gè)字符例:例:a_b表示以表示以a開(kāi)頭,以開(kāi)頭,以b結(jié)尾的長(zhǎng)度為結(jié)尾的長(zhǎng)度為3的任意字符的任意字符串。如串。如acb,afb等都滿足該匹配串等都滿足該匹配串342022-3-21) 匹配模板為固定字符串匹配模板為固定字符串 例例14 查詢學(xué)號(hào)為查詢學(xué)號(hào)為95001的學(xué)生的詳細(xì)情況。的學(xué)生的詳細(xì)情況。 SELECT * FROM Student WHERE Sno LIKE 95001;等價(jià)于:等價(jià)于: SELECT * FROM Student WHERE Sno = 95001;352022-3-22

26、) 匹配模板為含通配符的字符串匹配模板為含通配符的字符串例例15 查詢所有姓劉學(xué)生的姓名、學(xué)號(hào)和性別。查詢所有姓劉學(xué)生的姓名、學(xué)號(hào)和性別。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE 劉劉%;例例16 查詢姓查詢姓歐陽(yáng)歐陽(yáng)且全名為三個(gè)漢字的學(xué)生的姓名。且全名為三個(gè)漢字的學(xué)生的姓名。 SELECT Sname FROM Student WHERE Sname LIKE 歐陽(yáng)歐陽(yáng)_ _;362022-3-22) 匹配模板為含通配符的字符串匹配模板為含通配符的字符串例例17 查詢名字中第查詢名字中第2個(gè)字為個(gè)字為陽(yáng)陽(yáng)字的學(xué)生的姓名和學(xué)字的學(xué)

27、生的姓名和學(xué)號(hào)號(hào) SELECT Sname,Sno FROM Student WHERE Sname LIKE _ _陽(yáng)陽(yáng)%;例例18 查詢所有不姓劉的學(xué)生姓名。查詢所有不姓劉的學(xué)生姓名。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname NOT LIKE 劉劉%;372022-3-2n 使用謂詞使用謂詞 IS NULL 或或 IS NOT NULLn “IS NULL” 不能用不能用 “= NULL” 代替代替例例21 某些學(xué)生選修課程后沒(méi)有參加考試,所以有選課某些學(xué)生選修課程后沒(méi)有參加考試,所以有選課記錄,但沒(méi)有考試成績(jī)。查詢?nèi)鄙俪煽?jī)的學(xué)生的學(xué)號(hào)

28、記錄,但沒(méi)有考試成績(jī)。查詢?nèi)鄙俪煽?jī)的學(xué)生的學(xué)號(hào)和相應(yīng)的課程號(hào)。和相應(yīng)的課程號(hào)。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL;例例22 查所有有成績(jī)的學(xué)生學(xué)號(hào)和課程號(hào)。查所有有成績(jī)的學(xué)生學(xué)號(hào)和課程號(hào)。 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL382022-3-2nSQL允許屬性有一個(gè)特殊值允許屬性有一個(gè)特殊值NULL稱作空值。稱作空值。未知值:有值但是不知道是什么,例如未知生日未知值:有值但是不知道是什么,例如未知生日不適用的值:例如配偶的名字不適用的值:例如配偶的名字保留的值:無(wú)權(quán)知道的值,例未公布的

29、電話號(hào)碼保留的值:無(wú)權(quán)知道的值,例未公布的電話號(hào)碼n空值的運(yùn)算空值的運(yùn)算空值不同于空白或零值。沒(méi)有兩個(gè)相等的空值??湛罩挡煌诳瞻谆蛄阒怠](méi)有兩個(gè)相等的空值。空值和任何值進(jìn)行算術(shù)運(yùn)算,結(jié)果仍為空值。值和任何值進(jìn)行算術(shù)運(yùn)算,結(jié)果仍為空值。執(zhí)行計(jì)算時(shí)消除空值很重要,因?yàn)槿绻罩祱?zhí)行計(jì)算時(shí)消除空值很重要,因?yàn)槿绻罩盗?,某些?jì)算(如平均值)會(huì)不準(zhǔn)確。列,某些計(jì)算(如平均值)會(huì)不準(zhǔn)確。 當(dāng)使用邏輯運(yùn)算符和比較運(yùn)算符,有可能返回當(dāng)使用邏輯運(yùn)算符和比較運(yùn)算符,有可能返回 TRUE 或或 FALSE 以外的第三種結(jié)果以外的第三種結(jié)果 UNKNOWN, UNKNOWN是與是與TRUE 和和 FALSE

30、 相同的布爾值相同的布爾值392022-3-2n空空 (NULL) 值表示數(shù)值未知。值表示數(shù)值未知??罩挡煌诳瞻谆蛄阒?。沒(méi)有兩個(gè)相等的空值。空值不同于空白或零值。沒(méi)有兩個(gè)相等的空值。n空串指的是零長(zhǎng)度字符串空串指的是零長(zhǎng)度字符串,空字符串文字空字符串文字 ( ) 將作為空將作為空字符串解釋字符串解釋 當(dāng)當(dāng) m = 0 時(shí),時(shí),RIGHT(123, m) 返回空字符串。返回空字符串。當(dāng)當(dāng) m 是負(fù)數(shù)時(shí),是負(fù)數(shù)時(shí),RIGHT(123, m) 返回空字符串。返回空字符串。RTRIM( ) 返回空字符串。返回空字符串。402022-3-2n用邏輯運(yùn)算符用邏輯運(yùn)算符AND和和 OR來(lái)聯(lián)結(jié)多個(gè)查詢條件來(lái)

31、聯(lián)結(jié)多個(gè)查詢條件 AND的優(yōu)先級(jí)高于的優(yōu)先級(jí)高于OR 可以用括號(hào)改變優(yōu)先級(jí)可以用括號(hào)改變優(yōu)先級(jí)n可用來(lái)實(shí)現(xiàn)多種其他謂詞可用來(lái)實(shí)現(xiàn)多種其他謂詞 NOT IN NOT BETWEEN AND 例例23 查詢計(jì)算機(jī)系年齡在查詢計(jì)算機(jī)系年齡在20歲以下的學(xué)生姓名。歲以下的學(xué)生姓名。 SELECT Sname FROM Student WHERE Sdept= CS AND Sage20;412022-3-2n使用使用ORDER BY子句子句 可以按一個(gè)或多個(gè)屬性列排序可以按一個(gè)或多個(gè)屬性列排序 升序:升序:ASC;降序:;降序:DESC;缺省值為升序缺省值為升序n空值將作為最大值排序空值將作為最大值排序ASC:排序列為空值的元

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論