第5-1章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言——SQL_第1頁
第5-1章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言——SQL_第2頁
第5-1章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言——SQL_第3頁
第5-1章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言——SQL_第4頁
第5-1章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言——SQL_第5頁
已閱讀5頁,還剩85頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、江蘇科技(kj)大學(xué)數(shù)據(jù)庫系統(tǒng)原理(yunl)及應(yīng)用第五章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL2022/7/19An Introduction to Database System共九十頁第五章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)(biozhn)語言SQL5.1 SQL的功能及特點(diǎn)5.2 數(shù)據(jù)定義語句5.3 數(shù)據(jù)查詢語句5.4 數(shù)據(jù)更新(gngxn)語句5.5 嵌入式SQL5.6 數(shù)據(jù)控制機(jī)制和語句2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)SQL(Structured Query Language) 結(jié)構(gòu)化查詢語言(yyn),是關(guān)

2、系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言(yyn)SQL是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn) 標(biāo)準(zhǔn)(biozhn) 大致頁數(shù) 發(fā)布日期SQL/86 1986.10SQL/89(FIPS 127-1) 120頁 1989年SQL/92 622頁 1992年SQL99 1700頁 1999年SQL2003 2003年SQL標(biāo)準(zhǔn)的進(jìn)展過程:2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)SQL語句分

3、類(功能(gngnng)分類)SQL的特點(diǎn)2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)SQL語句(yj)分類(1)數(shù)據(jù)定義語句 DDL 定義關(guān)系數(shù)據(jù)庫的模式、外模式和內(nèi)模式,以實(shí)現(xiàn)對基本表、視圖以及索引文件的定義、修改和刪除等操作。(2)數(shù)據(jù)操縱語句 DML 包括數(shù)據(jù)查詢和數(shù)據(jù)更新兩種數(shù)據(jù)操作語句:數(shù)據(jù)查詢指對數(shù)據(jù)庫中的數(shù)據(jù)查詢、統(tǒng)計(jì)、分組、排序操作;數(shù)據(jù)更新指數(shù)據(jù)的插入、刪除、修改等數(shù)據(jù)維護(hù)操作。(3)數(shù)據(jù)控制語句 DCL通過對數(shù)據(jù)庫用戶的授權(quán)和收權(quán)命令來實(shí)現(xiàn)有關(guān)數(shù)據(jù)的存取控制,以保證數(shù)據(jù)庫的安全性。

4、2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)SQL語句(yj)分類SQL的特點(diǎn)2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)SQL的特點(diǎn)1、兩種使用方式2、語言簡單(jindn),易學(xué)易用(九個(gè)動(dòng)詞)3、支持三級模式2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)1、兩種使用方式:SQL是獨(dú)立的語言(yyn) 能夠獨(dú)立地用于聯(lián)機(jī)

5、交互的使用方式SQL又是嵌入式語言 SQL能夠嵌入到高級語言程序中2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)2、語言簡單,易學(xué)易用完成(wn chng)核心功能只用了9個(gè)動(dòng)詞。2022/7/19An Introduction to Database System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)SQL視圖2視圖1基本表2基本表1基本表3基本表4存儲文件2存儲文件1外模式模 式內(nèi)模式3、支持(zhch)三級模式結(jié)構(gòu)2022/7/19An Introduction to Database

6、System共九十頁5.1 SQL的功能(gngnng)及特點(diǎn)基本表本身獨(dú)立存在的表SQL中一個(gè)關(guān)系就對應(yīng)一個(gè)基本表一個(gè)(或多個(gè))基本表對應(yīng)一個(gè)存儲文件一個(gè)表可以帶若干索引存儲文件邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫的內(nèi)模式物理(wl)結(jié)構(gòu)是任意的,對用戶透明視圖從一個(gè)或幾個(gè)基本表導(dǎo)出的表數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應(yīng)的數(shù)據(jù)視圖是一個(gè)虛表用戶可以在視圖上再定義視圖2022/7/19An Introduction to Database System共九十頁第五章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)(biozhn)語言SQL5.1 SQL的功能及特點(diǎn)5.2 數(shù)據(jù)定義語句5.3 數(shù)據(jù)查詢語句5.4 數(shù)據(jù)更新語句5.5

7、嵌入式SQL5.6 數(shù)據(jù)控制(kngzh)機(jī)制和語句2022/7/19An Introduction to Database System共九十頁5.2 數(shù)據(jù)庫定義語言舉例(j l),學(xué)生課程數(shù)據(jù)庫S_T(教材P119): 學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept) 課程表:Course(Cno,Cname,Cpno) 學(xué)生選課表:SC(Sno,Cno,Grade) 2022/7/19An Introduction to Database System共九十頁5.2 數(shù)據(jù)庫定義語言SQL的數(shù)據(jù)定義(dngy)功能: 數(shù)據(jù)庫定義、表定義、視圖和索引的定義 注意:

8、P117 ,約定符號(fho)和語法規(guī)定的相關(guān)說明2022/7/19An Introduction to Database System共九十頁5.2 數(shù)據(jù)庫定義語言5.2.1數(shù)據(jù)庫的定義和維護(hù)(wih)(補(bǔ)充部分)5.2.2基本表的定義和維護(hù)5.2.3索引的定義和維護(hù)5.2.4視圖的定義和維護(hù)(這部分在5.4后講)2022/7/19An Introduction to Database System共九十頁5.2.1數(shù)據(jù)庫的定義(dngy)和維護(hù)1、建立(jinl)數(shù)據(jù)庫 例1 CREATE DATABASE S_T; 2、刪除數(shù)據(jù)庫 例2 DROP DATABASE S_T ; 2022/

9、7/19An Introduction to Database System共九十頁5.2.1數(shù)據(jù)庫的定義(dngy)和維護(hù)定義模式實(shí)際上定義了一個(gè)(y )命名空間在這個(gè)空間中可以定義該模式包含的數(shù)據(jù)庫對象,例如基本表、視圖、索引等。2022/7/19An Introduction to Database System共九十頁5.2 數(shù)據(jù)庫定義語言5.2.1數(shù)據(jù)庫的定義(dngy)和維護(hù)(補(bǔ)充部分)5.2.2基本表的定義和維護(hù)5.2.3索引的定義和維護(hù)5.2.4視圖的定義和維護(hù)2022/7/19An Introduction to Database System共九十頁5.2.2基本表的定義(

10、dngy)和維護(hù)1、基本表的定義2、基本表的修改(xigi)3、基本表的刪除2022/7/19An Introduction to Database System共九十頁5.2.2基本(jbn)表的定義和維護(hù)1、定義基本(jbn)表一般格式如下:CREATE TABLE ( , , );2022/7/19An Introduction to Database System共九十頁定義(dngy)基本表(續(xù))數(shù)據(jù)類型:需要標(biāo)明(biomng)長度類型表示類型說明數(shù)值型數(shù)據(jù)SMALLINT半字長二進(jìn)制整數(shù)。15bits數(shù)據(jù)INTEGER或INT全字長(四字長)整數(shù)。31bits數(shù)據(jù)DECIMAL(

11、p,q)十進(jìn)制數(shù),共p位,其中小數(shù)點(diǎn)后q位。0qp,q=0時(shí)可省略不寫FLOAT雙字長浮點(diǎn)數(shù)字符型數(shù)據(jù)CHARTER(n)或CHAR(n)長度為n的定長字符串VARCHAR(n)最大長度為n的變長字符串特殊數(shù)據(jù)類型GRAPHIC(n)長度為n的定長圖形字符串VARGRAPHIC(n)最大長度為n的變長圖形字符串日期時(shí)間型DATE日期型,格式為YYYY-MM-DDTIME時(shí)間型,格式為HH.MM.SSTIMESTAMP日期加時(shí)間2022/7/19An Introduction to Database System共九十頁定義(dngy)基本表(續(xù))完整性約束類型:1) NOT NULL或NULL

12、約束。NOT NULL約束不允許字段值為空,而NULL約束允許字段值為空。2) UNIQUE約束。惟一(wiy)性約束3) DEFAULT約束。默認(rèn)值約束DEFAULT (默認(rèn)值) FOR (列名)4) CHECK約束。檢查約束。CHECK(約束條件)5) PRIMARY KEY約束。定義主碼,保證惟一性和非空性。6) FOREIGN KEY約束。用于定義參照完整性。FOREIGN KEY (外碼) REFERENCES 被參照表名(與外碼對應(yīng)的主碼名)2022/7/19An Introduction to Database System共九十頁定義(dngy)基本表(續(xù))完整性約束定義方法:

13、表級完整性約束:完整性約束條件涉及(shj)到該表的多個(gè)屬性列,則必須定義在表級上;列級完整性約束完整性約束條件涉及到該表的單個(gè)屬性列,則即可以定義在列級,也可以定義在表級上;CONSTRAINT 約束;2022/7/19An Introduction to Database System共九十頁定義(dngy)基本表(續(xù))例5-3 建立學(xué)生_課程數(shù)據(jù)庫中的表。 CREATE TABLE 學(xué)生(學(xué)號 CHAR(5) NOT NULL UNIQUE,姓名 CHAR(8) NOT NULL,年齡 SMALLINT,性別(xngbi) CHAR(2),所在系 CHAR(20),DEFAULT C1

14、20 FOR 年齡,CONSTRAINT C2 CHECK(性別 IN (男,女);CONSTRAINT C3 PRIMARY KEY(課程號)PRIMARY KEY(課程號)PRIMARY KEY2022/7/19An Introduction to Database System共九十頁定義(dngy)基本表(續(xù))CREATE TABLE 課程(kchng)(課程號 CHAR(5) PRIMARY KEY,課程名 CHAR(20),先行課 CHAR(5);CONSTRAINT C1 FOREIGN KEY(先行課) REFERENCES 課程(課程號)2022/7/19An Introdu

15、ction to Database System共九十頁定義(dngy)基本表(續(xù))CREATE TABLE 選課(學(xué)號 CHAR(5),課程號 CHAR(5), 成績(chngj) SMALLINT,CONSTRAINT C3 CHECK(成績 BETWEEN 0 AND 100)CONSTRAINT C4 PRIMARY KEY(學(xué)號,課程號),CONSTRAINT C5 FOREIGN KEY(學(xué)號) REFERENCES 學(xué)生(學(xué)號),CONSTRAINT C6 FOREIGN KEY(課程號) REFERENCES 課程(課程號);2022/7/19An Introduction t

16、o Database System共九十頁5.2.2基本(jbn)表的定義和維護(hù)2、基本表的修改(xigi)一般格式:ALTER TABLE表名 ADD(新列名數(shù)據(jù)類型完整性約束 ,n) DROP完整性約束名 MODIFY(列名數(shù)據(jù)類型,n);2022/7/19An Introduction to Database System共九十頁修改(xigi)基本表(續(xù))例5-2 向課程表中增加“學(xué)時(shí)”字段。 ALTER TABLE 課程 ADD 學(xué)時(shí) SMALLINT;不論基本表中原來(yunli)是否已有數(shù)據(jù),新增加的列一律為空值。刪除 :ALTER TABLE 課程 DROP 學(xué)時(shí) ; 例5-3

17、刪除學(xué)生表中對年齡的默認(rèn)值的定義。 ALTER TABLE 學(xué)生 DROP C1;2022/7/19An Introduction to Database System共九十頁修改(xigi)基本表(續(xù))補(bǔ)充例1將年齡的數(shù)據(jù)類型由字符型(假設(shè)原來的數(shù)據(jù)類型是字符型)改為整數(shù)。 ALTER TABLE 學(xué)生 MODIFY Sage INT;補(bǔ)充例2增加(zngji)課程名稱必須取唯一值的約束條件。 ALTER TABLE 課程 ADD UNIQUE(Cname); 補(bǔ)充例3添加參照完整性條件ALTER TABLE Course 課程 constraint foreign key(Cpno) re

18、ferences course(Cno);2022/7/19An Introduction to Database System共九十頁5.2.2基本表的定義(dngy)和維護(hù)3、刪除基本表 DROP TABLE RESTRICT| CASCADE;RESTRICT:刪除表是有限制的。欲刪除的基本表不能被其他表的約束所引用如果存在依賴該表的對象,則此表不能被刪除CASCADE:刪除該表沒有限制。在刪除基本表的同時(shí),相關(guān)(xinggun)的依賴對象一起刪除 2022/7/19An Introduction to Database System共九十頁刪除(shnch)基本表(續(xù)) 補(bǔ)充例4 刪除

19、Student表 DROP TABLE Student CASCADE ;基本表定義(dngy)被刪除,數(shù)據(jù)被刪除表上建立的索引、視圖、觸發(fā)器等一般也將被刪除 2022/7/19An Introduction to Database System共九十頁刪除(shnch)基本表(續(xù))補(bǔ)充例5若表上建有視圖,選擇(xunz)RESTRICT時(shí)表不能刪除 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS; DROP TABLE Student RESTRICT; -ERROR: cannot dr

20、op table Student because other objects depend on it2022/7/19An Introduction to Database System共九十頁刪除(shnch)基本表(續(xù))序號 標(biāo)準(zhǔn)及主流數(shù)據(jù)庫的處理方式依賴基本表的對象SQL99Kingbase ESORACLE 9iMS SQLSERVER 2000RCRCC1.索引無規(guī)定2.視圖保留保留保留3.DEFAULT,PRIMARY KEY,CHECK(只含該表的列)NOT NULL 等約束4.Foreign Key5.TRIGGER6.函數(shù)或存儲過程保留保留保留保留保留DROP TABLE時(shí)

21、,SQL99 與 3個(gè)RDBMS的處理策略(cl)比較R表示RESTRICT , C表示CASCADE 表示不能刪除基本表,表示能刪除基本表,保留表示刪除基本表后,還保留依賴對象 2022/7/19An Introduction to Database System共九十頁5.2 數(shù)據(jù)庫定義語言5.2.1數(shù)據(jù)庫的定義(dngy)和維護(hù)(補(bǔ)充部分)5.2.2基本表的定義和維護(hù)5.2.3索引的定義和維護(hù)5.2.4視圖的定義和維護(hù)2022/7/19An Introduction to Database System共九十頁5.2.3索引的定義(dngy)和維護(hù)什么(shn me)是索引?索引文件數(shù)據(jù)

22、文件2022/7/19An Introduction to Database System共九十頁5.2.3索引的定義(dngy)和維護(hù)索引的作用1) 使用索引可以明顯地加快數(shù)據(jù)查詢速度。2) 使用索引唯一性功能可保證數(shù)據(jù)的惟一性。3) 使用索引可以加快連接速度。建立索引的原則1) 索引的建立和維護(hù)由DBA和DBMS完成。2) 大表應(yīng)當(dāng)建索引,小表則不必建索引。3) 對于一個(gè)(y )基本表,不要建立過多的索引。4) 根據(jù)查詢要求建索引。2022/7/19An Introduction to Database System共九十頁5.2.3索引的定義(dngy)和維護(hù)1、建立(jinl)索引2、

23、刪除索引2022/7/19An Introduction to Database System共九十頁5.2.3索引的定義(dngy)和維護(hù)1、建立索引一般(ybn)格式CREATE UNIQUE CLUSTER INDEX ON (, );說明:UNIQUE:表示該索引的每個(gè)索引值只對應(yīng)唯一的數(shù)據(jù)記錄CLUSTER(聚簇):表示基本表中數(shù)據(jù)的物理順序要與索引項(xiàng)的排列順序一致。次序:ASC(升序)、DESC(降序)2022/7/19An Introduction to Database System共九十頁建立(jinl)索引(續(xù))例在Student表的Sname(姓名)列上建立一個(gè)(y )聚

24、簇索引CREATE CLUSTER INDEX 學(xué)生姓名ON 學(xué)生(姓名);在最經(jīng)常查詢的列上建立聚簇索引以提高查詢效率 一個(gè)基本表上最多只能建立一個(gè)聚簇索引 經(jīng)常更新的列不宜建立聚簇索引 2022/7/19An Introduction to Database System共九十頁建立(jinl)索引(續(xù)) 例5-4為學(xué)生_課程(kchng)數(shù)據(jù)庫中的學(xué)生、課程(kchng)和選課三個(gè)表建立索引。其中:1、學(xué)生表按學(xué)號升序建立索引;CREATE UNIQUE INDEX 學(xué)號ON 學(xué)生(學(xué)號);2、課程表按課程號升序建惟一索引;CREATE UNIQUE INDEX 課程號 ON 課程(課程

25、號);3、選課表按學(xué)號升序和課程號降序建惟一索引。CREATE UNIQUE INDEX 選課號 ON 選課(學(xué)號 ASC,課程號 DESC);2022/7/19An Introduction to Database System共九十頁5.2.3索引的定義(dngy)和維護(hù)2、刪除索引一般格式:DROP INDEX ;刪除索引時(shí),系統(tǒng)會(huì)從數(shù)據(jù)字典(zdin)中刪去有關(guān)該索引的描述。例5-5 刪除學(xué)生表的“學(xué)生姓名”索引 DROP INDEX 學(xué)生姓名;2022/7/19An Introduction to Database System共九十頁5.2 數(shù)據(jù)庫定義語言5.2.1數(shù)據(jù)庫的定義和維

26、護(hù)(補(bǔ)充部分)5.2.2基本表的定義和維護(hù)5.2.3索引(suyn)的定義和維護(hù)5.2.4視圖的定義和維護(hù)(該部分在5.4后講)2022/7/19An Introduction to Database System共九十頁補(bǔ)充(bchng) mysql:1、show schemas/databases; 顯示所有數(shù)據(jù)庫2、use 庫名; 修改(xigi)當(dāng)前使用庫3、show tables;列出當(dāng)前使用庫中所有表4、describe 表名;顯示表結(jié)構(gòu)2022/7/19An Introduction to Database System共九十頁Do you have any questions

27、?2022/7/19An Introduction to Database System共九十頁第五章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)(biozhn)語言SQL5.1 SQL的功能及特點(diǎn)5.2 數(shù)據(jù)定義語句5.3 數(shù)據(jù)查詢語句5.4 數(shù)據(jù)更新(gngxn)語句5.5 嵌入式SQL5.6 數(shù)據(jù)控制機(jī)制和語句2022/7/19An Introduction to Database System共九十頁5.3 數(shù)據(jù)(shj)查詢語句基本語法SELECT ALL|DISTINCT目標(biāo)(mbio)列組FROM數(shù)據(jù)源WHERE元組選擇條件GROUP BY分列組HAVING 組選擇條件ORDER BY排序列1排序要求1 ,

28、n;2022/7/19An Introduction to Database System共九十頁5.3 數(shù)據(jù)查詢(chxn)語句舉例,學(xué)生課程數(shù)據(jù)庫S_T(同時(shí)(tngsh)見教材P127): 學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept) 課程表:Course(Cno,Cname,Cpno) 學(xué)生選課表:SC(Sno,Cno,Grade) 2022/7/19An Introduction to Database System共九十頁Student表學(xué) 號Sno姓 名Sname性 別 Ssex年 齡 Sage所 在 系 Sdept2002151212002151

29、22200215123200515125李勇劉晨王敏張立男女女男20191819CSCSMAIS2022/7/19An Introduction to Database System共九十頁Course表課程號Cno課程名Cname先行課Cpno1234567數(shù)據(jù)庫數(shù)學(xué)信息系統(tǒng)操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)處理PASCAL語言516762022/7/19An Introduction to Database System共九十頁SC表學(xué) 號Sno 課程號 Cno 成績 Grade 200215121 200215121 200215121 200215122 200215122 1 2 3 2 3 92

30、 85 88 90 802022/7/19An Introduction to Database System共九十頁5.3 數(shù)據(jù)(shj)查詢語句5.3.1、簡單(jindn)查詢(包含了教材5.3中的5.)5.3.2、連接查詢5.3.3、嵌套查詢5.3.4、組合查詢 2022/7/19An Introduction to Database System共九十頁5.3.1、簡單(jindn)查詢簡單(jindn)查詢:查詢僅涉及一個(gè)表,最簡單(jindn)的查詢語句。一、 選擇表中的若干列二、 選擇表中的若干元組三、 ORDER BY子句四、 聚集函數(shù)五、 GROUP BY子句 5.3.52

31、022/7/19An Introduction to Database System共九十頁一、 選擇(xunz)表中的若干列1、查詢指定(zhdng)列補(bǔ)充例6 查詢?nèi)w學(xué)生的學(xué)號與姓名。SELECT 學(xué)號,姓名FROM 學(xué)生 ;例5-9求數(shù)學(xué)系學(xué)生的學(xué)號和姓名。SELECT 學(xué)號,姓名FROM 學(xué)生 WHERE 所在系=數(shù)學(xué)系;2022/7/19An Introduction to Database System共九十頁一、 選擇(xunz)表中的若干列(續(xù))2. 查詢?nèi)苛性赟ELECT關(guān)鍵字后面列出所有列名 將指定為 *補(bǔ)充例7 查詢?nèi)w學(xué)生的詳細(xì)記錄。SELECT 學(xué)號,姓名,性別,

32、年齡,所在(suzi)系 FROM 學(xué)生; 或SELECT *FROM 學(xué)生; 2022/7/19An Introduction to Database System共九十頁一、 選擇(xunz)表中的若干列(續(xù))3. 查詢經(jīng)過計(jì)算(j sun)的值SELECT子句的可以為:算術(shù)表達(dá)式字符串常量函數(shù)列別名 2022/7/19An Introduction to Database System共九十頁查詢(chxn)經(jīng)過計(jì)算的值(續(xù))一、 選擇(xunz)表中的若干列(續(xù))3. 查詢經(jīng)過計(jì)算的值(續(xù))補(bǔ)充例8 查全體學(xué)生的姓名及其出生年份。SELECT 姓名,2004-年齡 FROM Stude

33、nt;/*假定當(dāng)年的年份為2004年*/ 輸出結(jié)果: 姓名 2004-年齡 李勇 1984 劉晨 1985 王敏 1986 張立 1985 2022/7/19An Introduction to Database System共九十頁一、 選擇(xunz)表中的若干列(續(xù))使用列別名改變查詢結(jié)果(ji gu)的列標(biāo)題:補(bǔ)充例8修改如下 SELECT 姓名,2004-年齡 出生年份 FROM Student輸出結(jié)果: 姓名 出生年份 李勇 1984 劉晨 1985 王敏 1986 張立 1985 2022/7/19An Introduction to Database System共九十頁3.4

34、.1 單表查詢(chxn) 查詢(chxn)僅涉及一個(gè)表:一、 選擇表中的若干列二、 選擇表中的若干元組三、 ORDER BY子句四、 聚集函數(shù)五、 GROUP BY子句2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組SELECT中,如果沒有指定DISTINCT關(guān)鍵詞,則缺省為ALL 5-10 查詢(chxn)選修了課程的學(xué)生學(xué)號。 SELECT Sno FROM SC;等價(jià)于:SELECT ALL Sno FROM SC;結(jié)果為: Sno20021512120021512120021512120021512220

35、02151222022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))指定DISTINCT關(guān)鍵詞,去掉(q dio)表中重復(fù)的行 SELECT DISTINCT Sno FROM SC; 執(zhí)行結(jié)果: Sno2002151212002151222022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))查 詢 條 件謂 詞比 較=,=,=,!=,!,!;NOT+上述比較運(yùn)算符確定范圍BETWEEN AND,NOT BETWEEN AND確定集合I

36、N,NOT IN字符匹配LIKE,NOT LIKE空 值IS NULL,IS NOT NULL多重條件(邏輯運(yùn)算)AND,OR,NOT表 常用(chn yn)的查詢條件2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))1、 比較(bjio)補(bǔ)充例9 查詢計(jì)算機(jī)科學(xué)系全體學(xué)生的名單。 SELECT 姓名 FROM 學(xué)生 WHERE 所在系=計(jì)算機(jī); 補(bǔ)充例10 查詢所有年齡在20歲以下的學(xué)生姓名及其年齡。 SELECT 姓名,年齡 FROM 學(xué)生 WHERE 年齡 20;補(bǔ)充例11 查詢考試成績有不及格的學(xué)生的學(xué)

37、號。 SELECT DISTINCT 學(xué)號 FROM 選課 WHERE 成績60; 2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))2、確定范圍謂詞: BETWEEN AND NOT BETWEEN AND 補(bǔ)充例12 查詢年齡在2023歲(包括20歲和23歲)之間的學(xué)生(xu sheng)的姓名、系別和年齡 SELECT Sname,Sdept,SageFROM StudentWHERE Sage BETWEEN 20 AND 23; 補(bǔ)充例13 查詢年齡不在2023歲之間的學(xué)生姓名、系別和年齡 SELEC

38、T Sname,Sdept,Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23; 2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))3、確定集合(jh)謂詞:IN , NOT IN 補(bǔ)充例14 查詢信息系(IS)、數(shù)學(xué)系(MA)和計(jì)算機(jī)科學(xué)系(CS)學(xué)生的姓名和性別。SELECT Sname,SsexFROM StudentWHERE Sdept IN ( IS,MA,CS );補(bǔ)充例15 查詢既不是信息系、數(shù)學(xué)系,也不是計(jì)算機(jī)科學(xué)系的學(xué)生的姓名和性別。SELE

39、CT Sname,SsexFROM Student WHERE Sdept NOT IN ( IS,MA,CS );2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))4、字符匹配(ppi)謂詞: NOT LIKE ESCAPE 1) 匹配串為固定字符串2) 匹配串為含通配符的字符串3) 使用換碼字符將通配符轉(zhuǎn)義為普通字符2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))4、字符匹配(續(xù))匹配串為固定字符串補(bǔ)充例16 查詢(chx

40、n)學(xué)號為200215121的學(xué)生的詳細(xì)情況。 SELECT * FROM Student WHERE Sno LIKE 200215121;等價(jià)于: SELECT * FROM Student WHERE Sno = 200215121 ;2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))4、字符匹配(續(xù))2) 匹配串為含通配符的字符串補(bǔ)充例17 查詢所有姓劉學(xué)生的姓名、學(xué)號和性別。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE 劉%;補(bǔ)充例18 查詢

41、姓歐陽(u yng)且全名為三個(gè)漢字的學(xué)生的姓名。 SELECT Sname FROM Student WHERE Sname LIKE 歐陽_;%任意長度字符通配符_單字符通配符2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))補(bǔ)充例19 查詢名字中第2個(gè)字為“陽”字的學(xué)生(xu sheng)的姓名和學(xué)號。 SELECT Sname,Sno FROM Student WHERE Sname LIKE _陽%;補(bǔ)充例20 查詢所有不姓劉的學(xué)生姓名。 SELECT Sname FROM Student WHERE

42、 Sname NOT LIKE 劉%;2022/7/19An Introduction to Database System共九十頁二、選擇(xunz)表中的若干元組(續(xù))4、字符匹配(ppi)(續(xù))3) 使用換碼字符將通配符轉(zhuǎn)義為普通字符 補(bǔ)充例21 查詢DB_Design課程的課程號。 SELECT Cno FROM Course WHERE Cname LIKE DB_Design ESCAPE ;補(bǔ)充例22 查詢以DB_開頭,且倒數(shù)第3個(gè)字符為 i的課程的詳細(xì)情況。 SELECT * FROM Course WHERE Cname LIKE DB_%i_ _ ESCAPE ; ESCAPE 表示“ ” 為換碼字符 2022/7/19An Introduction to Database System共九十

溫馨提示

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

最新文檔

評論

0/150

提交評論