第3章數據庫 關系數據庫標準語言SQL(數據定義與單表查詢) (1)_第1頁
第3章數據庫 關系數據庫標準語言SQL(數據定義與單表查詢) (1)_第2頁
第3章數據庫 關系數據庫標準語言SQL(數據定義與單表查詢) (1)_第3頁
第3章數據庫 關系數據庫標準語言SQL(數據定義與單表查詢) (1)_第4頁
第3章數據庫 關系數據庫標準語言SQL(數據定義與單表查詢) (1)_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三章第三章 關系數據庫標準語言關系數據庫標準語言SQLSQL 補充內容補充內容 vSQL SERVER的安裝 vSQL SERVER的基本配置 vSQL SERVER 的基本數據庫 vSQL SERVER的數據類型 vSQL SERVER幫助系統(tǒng) 3.1 SQL概述概述 vSQL(Structured Query Language) 結構化查詢語言,是關系數據庫的標準語言 vSQL是一個通用的、功能極強的關系數據庫語言 SQL概述(續(xù))概述(續(xù)) v3.1.1 SQL 的產生與發(fā)展的產生與發(fā)展 v3.1.2 SQL的特點的特點 v3.1.3 SQL的基本概念的基本概念 SQL標準的進展過程標

2、準的進展過程 標準 大致頁數 發(fā)布日期 n SQL/86 1986.10 n SQL/89(FIPS 127-1) 120頁 1989年 n SQL/92 622頁 1992年 n SQL99 1700頁 1999年 n SQL2003 2003年 3.1 SQL概述概述 v3.1.1 SQL 的產生與發(fā)展的產生與發(fā)展 v3.1.2 SQL的特點的特點 v3.1.3 SQL的基本概念的基本概念 3.1.2 SQL的特點的特點 1.綜合統(tǒng)一 n集數據定義語言(DDL),數據操縱語言(DML), 數據控制語言(DCL)功能于一體。 n可以獨立完成數據庫生命周期中的全部活動: 定義關系模式,插入數據

3、,建立數據庫; 對數據庫中的數據進行查詢和更新; 數據庫重構和維護 數據庫安全性、完整性控制等 n用戶數據庫投入運行后,可根據需要隨時逐步修改 模式,不影響數據的運行。 n數據操作符統(tǒng)一 2.高度非過程化高度非過程化 v非關系數據模型的數據操縱語言“面向過程面向過程”, 必須制定存取路徑 vSQL只要提出“做什么”,無須了解存取路徑。 v 存取路徑的選擇以及SQL的操作過程由系統(tǒng)自動 完成。 3.面向集合的操作方式面向集合的操作方式 v非關系數據模型采用面向記錄的操作方式,操作對 象是一條記錄 vSQL采用集合操作方式 操作對象、查找結果可以是元組的集合 一次插入、刪除、更新操作的對象可以是元

4、組的集合 4.以同一種語法結構提供多種使用方式以同一種語法結構提供多種使用方式 vSQL是獨立的語言 能夠獨立地用于聯(lián)機交互的使用方式 vSQL又是嵌入式語言 SQL能夠嵌入到高級語言(例如C,C+,Java) 程序中,供程序員設計程序時使用 5.語言簡潔,易學易用語言簡潔,易學易用 v SQL功能極強,完成核心功能只用了9個動詞。 3.1 SQL概述概述 v3.1.1 SQL 的產生與發(fā)展的產生與發(fā)展 v3.1.2 SQL的特點的特點 v3.1.3 SQL的基本概念的基本概念 SQL的基本概念(續(xù))的基本概念(續(xù)) SQL 視圖視圖2視圖視圖1 基本表基本表2基本表基本表1基本表基本表3基本

5、表基本表4 存儲文件存儲文件2 存儲文件存儲文件1 外模式外模式 模模 式式 內模式內模式 SQL支持關系數據庫三級模式結構 SQL的基本概念(續(xù))的基本概念(續(xù)) v 基本表 n 本身獨立存在的表 n SQL中一個關系就對應一個基本表 n 一個(或多個)基本表對應一個存儲文件 n 一個表可以帶若干索引 v 存儲文件 n 邏輯結構組成了關系數據庫的內模式 n 物理結構是任意的,對用戶透明 v 視圖 n 從一個或幾個基本表導出的表 n 數據庫中只存放視圖的定義而不存放視圖對應的數據 n 視圖是一個虛表 n 用戶可以在視圖上再定義視圖 第三章第三章 關系數據庫標準語言關系數據庫標準語言SQL 3.

6、1 SQL概述概述 3.2 學生學生-課程數據庫課程數據庫 3.3 數據定義數據定義 3.4 數據查詢數據查詢 3.5 數據更新數據更新 3.6 視圖視圖 3.7 小結小結 3.2 學生學生-課程課程 數據庫數據庫 v學生-課程模式 S-T : 學生表:Student(Sno,Sname,Ssex,Sage,Sdept) 課程表:Course(Cno,Cname,Cpno,Ccredit) 學生選課表:SC(Sno,Cno,Grade) Student表表 學學 號號 Sno 姓姓 名名 Sname 性性 別別 Ssex 年年 齡齡 Sage 所所 在在 系系 Sdept 200215121

7、200215122 200215123 200515125 李勇李勇 劉晨劉晨 王敏王敏 張立張立 男男 女女 女女 男男 20 19 18 19 CS CS MA IS Course表表 課程號課程號 Cno 課程名課程名 Cname 先行課先行課 Cpno 學分學分 Ccredit 1 2 3 4 5 6 7 數據庫數據庫 數學數學 信息系統(tǒng)信息系統(tǒng) 操作系統(tǒng)操作系統(tǒng) 數據結構數據結構 數據處理數據處理 PASCAL語言語言 5 1 6 7 6 4 2 4 3 4 2 4 SC表表 學學 號號 Sno 課程號課程號 Cno 成績成績 Grade 200215121 200215121 20

8、0215121 200215122 200215122 1 2 3 2 3 92 85 88 90 80 第三章第三章 關系數據庫標準語言關系數據庫標準語言SQL 3.1 SQL概述概述 3.2 學生學生-課程數據庫課程數據庫 3.3 數據定義數據定義 3.4 數據查詢數據查詢 3.5 數據更新數據更新 3.6 視圖視圖 3.7 小結小結 3.3 數據定義數據定義 SQL的數據定義功能: 模式定義、表定義、視圖和索引的定義 3.3 數據定義數據定義 v3.3.1 數據庫的創(chuàng)建與刪除數據庫的創(chuàng)建與刪除 v3.3.2 基本表的定義、刪除與修改基本表的定義、刪除與修改 v3.3.3 索引的建立與刪除

9、索引的建立與刪除 創(chuàng)建數據庫創(chuàng)建數據庫 CREATE DATABASE s_t ON ( NAME = s_t, FILENAME = d:s_t.mdf, SIZE = 1, MAXSIZE = 10, FILEGROWTH = 1 ) LOG ON ( NAME = s_t_log, FILENAME = d:s_t.ldf, SIZE = 1MB, MAXSIZE = 5MB, FILEGROWTH = 1MB ) 3.3 數據定義數據定義 v3.3.1 數據庫的創(chuàng)建數據庫的創(chuàng)建 v3.3.2 基本表的定義、刪除與修改基本表的定義、刪除與修改 v3.3.3 索引的建立與刪除索引的建立與刪

10、除 3.3.2 基本表的定義、刪除與修改基本表的定義、刪除與修改 一、定義基本表一、定義基本表 CREATE TABLE ( , , ); 如果完整性約束條件涉及到該表的多個屬性列, 則必須定義在表級上,否則既可以定義在列級 也可以定義在表級。 ? 完整性性約束包括哪幾種? 3.3.2 基本表的定義、刪除與修改基本表的定義、刪除與修改 v完整性約束分類: 檢查約束(check):用于實現域完整性,當對表進行插 入或更新操作時,檢查其中的列值必須滿足的約束條件。 主鍵約束(primary key):限制表中指定列的取值,以 保證任何兩列在指定列上不存在相同的值,同時主鍵約束 列上的值不得為Nul

11、l。 參照約束(foreign key):如果兩個表之間由主鍵和外 鍵相聯(lián)系,那么在對表中的數據執(zhí)行插入、刪除和更新操 作時,必須遵循它們之間的參照性規(guī)則和各自的數據完整 性規(guī)則。 缺省約束(default):向表插入新行時為沒有給值的列指 定一缺省值,用以增強數據的完整性。 學生表表Student 例 建立“學生”表Student,學號是主碼,姓名取值唯一。 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, /* 列級完整性約束條件*/ Sname CHAR(20) UNIQUE, /* Sname取唯一值*/ Ssex CHAR(2), Sage

12、 TINYINT, Sdept CHAR(20) ); 主碼主碼 例 檢查約束 create table student (sno char(10) not null ,sname char(8),ssex char(2),sage tinyint,sdeptchar(15), check (sage0) -創(chuàng)建檢查約束 例 缺省約束 create table student (sno char(10) not null ,sname char(8), ssex char(2) default 男,sage tinyint,sdept char(15), primary key (sno)-創(chuàng)

13、建缺省約束 3.2.1定義、刪除與修改基本表定義、刪除與修改基本表 課程表課程表Course 例 建立一個“課程”表Course CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4) , Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno) ); 先修課先修課 Cpno是外碼是外碼 被參照表是被參照表是Course 被參照列是被參照列是Cno v 例 主鍵約束 1) create table student (sno char(10

14、) not null ,sname char(8),ssex char(2),sage tinyint,sdept char(15), primary key (sno) -創(chuàng)建主鍵約束,其中sno的not null約束可以不寫 2) create table course (cno char(3) not null primary key (cno), cname varchar(25),cpno char(3),ccredit tinyint ) 3)create table sc(sno char(10) not null, cno char(3) not null, grade num

15、eric (3,1),primary key(sno,cno) ) 3.2.1定義、刪除與修改基本表定義、刪除與修改基本表 學生選課表學生選課表SC 例例 建立一個建立一個“學生選課學生選課”表表SCSC CREATE TABLE SC (Sno CHAR(10), Cno CHAR(3), Grade SMALLINT, PRIMARY KEY (Sno,Cno), /* 主碼由兩個屬性構成,必須作為表級完整性進行定義*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /* 表級完整性約束條件,Sno是外碼,被參照表是Student */ FOREIG

16、N KEY (Cno) REFERENCES Course(Cno) /* 表級完整性約束條件, Cno是外碼,被參照表是Course*/ ); 二、數據類型二、數據類型 vSQL中域的概念用數據類型來實現 v定義表的屬性時 需要指明其數據類型及長度 v選用哪種數據類型 n取值范圍 n要做哪些運算 二、數據類型(二、數據類型(KINGBASE) 數據類型數據類型含義含義 CHAR(n)長度為長度為n的定長字符串的定長字符串 VARCHAR(n)最大長度為最大長度為n的變長字符串的變長字符串 INT長整數(也可以寫作長整數(也可以寫作INTEGER) SMALLINT短整數短整數 NUMERIC

17、(p,d)定點數,由定點數,由p位數字(不包括符號、小數點)組成,小數后面有位數字(不包括符號、小數點)組成,小數后面有d位數字位數字 REAL取決于機器精度的浮點數取決于機器精度的浮點數 Double Precision取決于機器精度的雙精度浮點數取決于機器精度的雙精度浮點數 FLOAT(n)浮點數,精度至少為浮點數,精度至少為n位數字位數字 DATE日期,包含年、月、日,格式為日期,包含年、月、日,格式為YYYY-MM-DD TIME時間,包含一日的時、分、秒,格式為時間,包含一日的時、分、秒,格式為HH:MM:SS 四、修改基本表四、修改基本表 ALTER TABLE ADD 完整性約束

18、 DROP ALTER COLUMN ; 修改基本表(續(xù))修改基本表(續(xù)) 例 向Student表增加“入學時間”列,其數據類型為日期型。 ALTER TABLE Student ADD S_entrance DATE; 不論基本表中原來是否已有數據,新增加的列一律為空值。 ? ALTER TABLE Student ADD S_entrance DATE not null 例 將Student表的“入學時間”列刪除 alter table Student drop column S_entrance 例 將年齡的數據類型由字符型(假設原來的數據類型是字符型)改為 整數。 ALTER TABL

19、E Student ALTER COLUMN Sage INT; 修改基本表(續(xù))修改基本表(續(xù)) 例 增加約束:要求SC的grade取值在0,100 alter table sc add constraint ck_sc check (grade0 and grade=100) 例 增加默認約束:要求性別默認為“男” alter table student add constraint df_ssex default 男 for ssex 例 刪除約束 alter table sc drop constraint ck_sc 五、刪除基本表五、刪除基本表 DROP TABLE 實例:實例:

20、Drop table student 基本表定義一旦刪除,表中的數據、在此表上建立的索引都 將自動被刪除掉,而建立在此表上的視圖雖仍然保留,但 已無法引用。因此執(zhí)行刪除操作一定要格外小心。 3.3 數據定義數據定義 v3.3.1 模式的定義與刪除模式的定義與刪除 v3.3.2 基本表的定義、刪除與修改基本表的定義、刪除與修改 v3.3.3 索引的建立與刪除索引的建立與刪除 3.3.3 索引的建立與刪除索引的建立與刪除 v 建立索引的目的:加快查詢速度 v 誰可以建立索引 DBA 或 表的屬主(即建立表的人) DBMS一般會自動建立以下列上的索引 PRIMARY KEY UNIQUE v 誰 維

21、護索引 DBMS自動完成 v 使用索引 DBMS自動選擇是否使用索引以及使用哪些索引 一、建立索引一、建立索引 v語句格式 CREATE UNIQUE CLUSTER INDEX ON (, ); 其中,指定要建索引的基本表的名字。 索引可以建在該表的一列或多列上,各列名之間用逗號分 隔。每個后面還可以用指定索引值的排列 次序,包括ASC(升序)和DESC(降序)兩種,缺省 值為ASC。 建立索引(續(xù))建立索引(續(xù)) 例13 CREATE CLUSTER INDEX Stusname ON Student(Sname); 在Student表的Sname(姓名)列上建立一個聚簇索引 v 在最經常

22、查詢的列上建立聚簇索引以提高查詢效率 v 一個基本表上最多只能建立一個聚簇索引 v 經常更新的列不宜建立聚簇索引 建立索引(續(xù))建立索引(續(xù)) 例為學生-課程數據庫中的Student,Course,SC三個表建 立 索引。 CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); Student表按學號升序建唯一索引 Course表按課程號升序建唯一索引 SC表按學號升序和課程號降

23、序建唯一索引 二、刪除索引二、刪除索引 v DROP INDEX ; 刪除索引時,系統(tǒng)會從數據字典中刪去有關該索引的 描述。 例 刪除Student表的Stusno索引 DROP INDEX student.Stusno ; SQL Server不支持直接使用索引名 第三章第三章 關系數據庫標準語言關系數據庫標準語言SQL 3.1 SQL概述概述 3.2 學生學生-課程數據庫課程數據庫 3.3 數據定義數據定義 3.4 數據查詢數據查詢 3.5 數據更新數據更新 3.6 視圖視圖 3.7 小結小結 數據查詢數據查詢 v 語句格式 SELECT ALL|DISTINCT , FROM , WHE

24、RE GROUP BY HAVING ORDER BY ASC|DESC ; 3.4 數據查詢數據查詢 v3.4.1 單表查詢單表查詢 v3.4.2 連接查詢連接查詢 v3.4.3 嵌套查詢嵌套查詢 v3.4.4 集合查詢集合查詢 v3.4.5 Select語句的一般形式語句的一般形式 3.4.1 單表查詢單表查詢 v 查詢僅涉及一個表: n一、 選擇表中的若干列 n二、 選擇表中的若干元組 n三、 ORDER BY子句 n四、 聚集函數 n五、 GROUP BY子句 一、一、 選擇表中的若干列選擇表中的若干列 v查詢指定列 例1 查詢全體學生的學號與姓名。 SELECT Sno,Sname

25、FROM Student; 例2 查詢全體學生的姓名、學號、所在系。 SELECT Sname,Sno,Sdept FROM Student; 2. 查詢全部列查詢全部列* v選出所有屬性列: n在SELECT關鍵字后面列出所有列名 n將指定為 * 例3 查詢全體學生的詳細記錄。 SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student; 或 SELECT * FROM Student; 3. 查詢經過計算的值查詢經過計算的值 v SELECT子句的可以為: 算術表達式 字符串常量 函數 列別名 例4 查全體學生的姓名及其出生年份。 SELECT Sname,

26、2004-Sage /*假定當年的年份為2004年*/ FROM Student; 輸出結果:輸出結果: ? Sname 無列名 李勇 1984 劉晨 1985 王敏 1986 張立 1985 查詢經過計算的值(續(xù))查詢經過計算的值(續(xù)) ?年份的變化年份的變化 YEAR(GETDATE() ) 查詢經過計算的值(續(xù))查詢經過計算的值(續(xù)) 例5 查詢全體學生的姓名、出生年份和所有系,要求用小 寫字母表示所有系名 SELECT Sname,Year of Birth: ,2004-Sage age, LOWER(Sdept) FROM Student; 輸出結果:輸出結果:? Sname Sa

27、ge 李勇 Year of Birth: 1984 cs 劉晨 Year of Birth: 1985 is 王敏 Year of Birth: 1986 ma 張立 Year of Birth: 1985 is 查詢經過計算的值(續(xù))查詢經過計算的值(續(xù)) v 使用列改變查詢結果的列標題: SELECT Sname NAME,Year of Birth: BIRTH, 2000-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT FROM Student; 輸出結果: ? NAME BIRTH BIRTHDAY DEPARTMENT - - - - 李勇 Year o

28、f Birth: 1984 cs 劉晨 Year of Birth: 1985 is 王敏 Year of Birth: 1986 ma 張立 Year of Birth: 1985 is 3.4.1 單表查詢單表查詢 v 查詢僅涉及一個表: n一、 選擇表中的若干列 n二、 選擇表中的若干元組 n三、 ORDER BY子句 n四、 聚集函數 n五、 GROUP BY子句 二、選擇表中的若干元組二、選擇表中的若干元組 v 1. 消除取值重復的行 如果沒有指定DISTINCT關鍵詞,則缺省為ALL 例6 查詢選修了課程的學生學號。 SELECT Sno FROM SC; 等價于: SELECT

29、ALL Sno FROM SC; 執(zhí)行上面的SELECT語句后,結果為: ? Sno 200215121 200215121 200215121 200215122 200215122 消除取值重復的行(續(xù))消除取值重復的行(續(xù)) v 指定DISTINCT關鍵詞,去掉表中重復的行 SELECT DISTINCT Sno FROM SC; 執(zhí)行結果: ? Sno 200215121 200215122 2.查詢滿足條件的元組查詢滿足條件的元組 查 詢 條 件謂 詞 比 較=,=,=,!=,!,!;NOT+上述比較 運算符 確定范圍BETWEEN AND,NOT BETWEEN AND 確定集合I

30、N,NOT IN 字符匹配LIKE,NOT LIKE 空 值IS NULL,IS NOT NULL 多重條件(邏輯運算)AND,OR,NOT 表3.4 常用的查詢條件 (1) 比較大小比較大小 例7 查詢計算機科學系全體學生的名單。 SELECT Sname FROM Student WHERE Sdept=CS; 例8 查詢所有年齡在20歲以下的學生姓名及其年齡。 SELECT Sname,Sage FROM Student WHERE Sage 20; 例9 查詢考試成績有不及格的學生的學號。 SELECT DISTINCT Sno FROM SC WHERE Grade60; (2)確定

31、范圍)確定范圍 v 謂詞謂詞: BETWEEN AND NOT BETWEEN AND 例10 查詢年齡在2023歲(包括20歲和23歲)之間的學生的 姓名、系別和年齡 SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23; 例11 查詢年齡不在2023歲之間的學生姓名、系別和年齡 SELECT Sname,Sdept,Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23; (3) 確定集合確定集合 v 謂詞:謂詞:IN , NOT IN 例12查詢信息系(IS)、數學

32、系(MA)和計算機科學系(CS)學生的姓名和 性別。 SELECT Sname,Ssex FROM Student WHERE Sdept IN ( IS,MA,CS ); 例13查詢既不是信息系、數學系,也不是計算機科學系的學生的姓名和性別。 SELECT Sname,Ssex FROM Student WHERE Sdept NOT IN ( IS,MA,CS ); (4)字符匹配字符匹配 v謂詞:謂詞: NOT LIKE ESCAPE 1) 匹配串為固定字符串 例14 查詢學號為200215121的學生的詳細情況。 SELECT * FROM Student WHERE Sno LIKE

33、 200215121; 等價于: SELECT * FROM Student WHERE Sno = 200215121 ; 字符匹配(續(xù))字符匹配(續(xù)) 2) 匹配串為含通配符的字符串 例15 查詢所有姓劉學生的姓名、學號和性別。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE 劉%; 例16 查詢姓歐陽且全名為三個漢字的學生的姓名。 SELECT Sname FROM Student WHERE Sname LIKE 歐陽_; 字符匹配(續(xù))字符匹配(續(xù)) 例17 查詢名字中第2個字為陽字的學生的姓名和學號。 SELECT Sname

34、,Sno FROM Student WHERE Sname LIKE _陽%; 例18 查詢所有不姓劉的學生姓名。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname NOT LIKE 劉%; 字符匹配(續(xù))字符匹配(續(xù)) 3) 使用換碼字符將通配符轉義為普通字符 例19 查詢DB_Design課程的課程號和學分。 SELECT Cno,Ccredit FROM Course WHERE Cname LIKE DB_Design ESCAPE ; 例20 查詢以DB_開頭,且倒數第3個字符為 i的課程的詳細情況。 SELECT * FROM Cours

35、e WHERE Cname LIKE DB_%i_ _ ESCAPE ; ESCAPE 表示表示“ ” 為換碼字符為換碼字符 例20 以下實例的含義; select * from s select * from s where sname like s_% escape select * from s where sname like s_%d_ escape 3.3.1單表查詢單表查詢 以s_開頭 以s_開頭倒數第二字符為d (5) 涉及空值的查詢涉及空值的查詢 n 謂詞:謂詞: IS NULL 或 IS NOT NULL n “IS” 不能用 “=” 代替 例21 某些學生選修課程后沒有參

36、加考試,所以有選課記錄,但沒 有考試成績。查詢缺少成績的學生的學號和相應的課程號。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL 例22 查所有有成績的學生學號和課程號。 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL; (6) 多重條件查詢多重條件查詢 v 邏輯運算符:AND和 OR來聯(lián)結多個查詢條件 AND的優(yōu)先級高于OR 可以用括號改變優(yōu)先級 v 可用來實現多種其他謂詞 NOT IN NOT BETWEEN AND 多重條件查詢(續(xù))多重條件查詢(續(xù)) 例23 查詢計算機系年齡在20歲以下的學生姓名。

37、SELECT Sname FROM Student WHERE Sdept= CS AND Sage20; 多重條件查詢(續(xù))多重條件查詢(續(xù)) v 改寫改寫例例12 例12 查詢信息系(IS)、數學系(MA)和計算機科學系 (CS)學生的姓名和性別。 SELECT Sname,Ssex FROM Student WHERE Sdept IN ( IS,MA,CS ) 可改寫為: SELECT Sname,Ssex FROM Student WHERE Sdept= IS OR Sdept= MA OR Sdept= CS ; 3.4.1 單表查詢單表查詢 v 查詢僅涉及一個表: n一、 選擇

38、表中的若干列 n二、 選擇表中的若干元組 n三、 ORDER BY子句 n四、 聚集函數 n五、 GROUP BY子句 三、三、ORDER BY子句子句 v ORDER BY子句 n可以按一個或多個屬性列排序 n升序:ASC;降序:DESC;缺省值為升序 v 當排序列含空值時 nASC:排序列為空值的元組最后顯示 nDESC:排序列為空值的元組最先顯示 ORDER BY子句子句 (續(xù))(續(xù)) 例24 查詢選修了3號課程的學生的學號及其成績,查詢結果按分 數降序排列。 SELECT Sno,Grade FROM SC WHERE Cno= 3 ORDER BY Grade DESC; 例25 查詢全體學生情況,查詢結果按所在系的系號升序排列, 同一系中的學生按年齡降序排列。 SELECT * FROM Student ORDER BY Sdept,Sage DESC; 3.4.1 單表查詢單表查詢 v 查詢僅涉及一個表: n一、 選擇表中的若干列 n二、 選擇表中的若干元組 n三、 ORDER BY子句 n四、 聚集函數 n五、 GROUP BY子句 四、聚集函數四、聚集函數 v 聚集函數: 計數 COUNT(*) COUNT(DISTINCT|ALL

溫馨提示

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

評論

0/150

提交評論