版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、An Introduction to Database System,3.3.5 集合查詢,標(biāo)準(zhǔn)SQL直接支持的集合操作種類 并操作(UNION) 一般商用數(shù)據(jù)庫(kù)支持的集合操作種類 并操作(UNION) 交操作(INTERSECT) 差操作(MINUS),An Introduction to Database System,1 并操作,形式 UNION ALL 參加UNION操作的各結(jié)果表的列數(shù)必須相同;對(duì)應(yīng)項(xiàng)的數(shù)據(jù)類型也必須相同,An Introduction to Database System,并操作(續(xù)),例45 查詢計(jì)算機(jī)科學(xué)系的學(xué)生及年齡不大于19歲的學(xué)生。 方法一: SELECT
2、 * FROM Student WHERE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19;,An Introduction to Database System,并操作(續(xù)),方法二: SELECT DISTINCT * FROM Student WHERE Sdept= CS OR Sage=19;,An Introduction to Database System,并操作(續(xù)),例46 查詢選修了課程1或者選修了課程2的學(xué)生。 方法一: SELECT Sno FROM SC WHERE Cno= 1 UNION SELECT Sn
3、o FROM SC WHERE Cno= 2 ;,An Introduction to Database System,并操作(續(xù)),方法二: SELECT DISTINCT Sno FROM SC WHERE Cno= 1 OR Cno= 2 ;,An Introduction to Database System,并操作(續(xù)),例47 設(shè)數(shù)據(jù)庫(kù)中有一教師表Teacher(Tno, Tname,.)。查詢學(xué)校中所有師生的姓名。 SELECT Sname FROM Student UNION SELECT Tname FROM Teacher;,new,An Introduction to D
4、atabase System,2 交操作,標(biāo)準(zhǔn)SQL中沒有提供集合交操作,但可用其他方法間接實(shí)現(xiàn)。,An Introduction to Database System,2 交操作,例48 查詢計(jì)算機(jī)科學(xué)系的學(xué)生與年齡不大于19歲的學(xué)生的交集 本例實(shí)際上就是查詢計(jì)算機(jī)科學(xué)系中年齡不大于19歲的學(xué)生 SELECT * FROM Student WHERE Sdept= CS AND Sage=19;,An Introduction to Database System,交操作(續(xù)),例49 查詢選修課程1的學(xué)生集合與選修課程2的學(xué)生集合的交集 本例實(shí)際上是查詢既選修了課程1又選修了課程2的學(xué)生
5、Select sno From sc Where cno=1 Intersect Select sno From sc Where cno=2;,An Introduction to Database System,SELECT Sno FROM SC WHERE Cno= 1 AND Sno IN (SELECT Sno FROM SC WHERE Cno= 2 );,An Introduction to Database System,交操作(續(xù)),例50 查詢學(xué)生姓名與教師姓名的交集 本例實(shí)際上是查詢學(xué)校中與教師同名的學(xué)生姓名 SELECT DISTINCT Sname FROM Stu
6、dent WHERE Sname IN (SELECT Tname FROM Teacher);,new,An Introduction to Database System,3 差操作,例51 查詢計(jì)算機(jī)科學(xué)系的學(xué)生與年齡不大于19歲的學(xué)生的差集。 Select * from student where sdept=CS Minus Select * from student where age=19;,An Introduction to Database System,3 差操作,例51 查詢計(jì)算機(jī)科學(xué)系的學(xué)生與年齡不大于19歲的學(xué)生的差集。 本例實(shí)際上是查詢計(jì)算機(jī)科學(xué)系中年齡大于19歲
7、的學(xué)生 SELECT * FROM Student WHERE Sdept= CS AND Sage19;,An Introduction to Database System,差操作(續(xù)),例52 查詢學(xué)生姓名與教師姓名的差集 本例實(shí)際上是查詢學(xué)校中未與教師同名的學(xué)生姓名 SELECT DISTINCT Sname FROM Student WHERE Sname NOT IN (SELECT Tname FROM Teacher);,new,An Introduction to Database System,4. 對(duì)集合操作結(jié)果的排序,ORDER BY子句只能用于對(duì)最終查詢結(jié)果排序,不能
8、對(duì)中間結(jié)果排序 任何情況下,ORDER BY子句只能出現(xiàn)在最后 對(duì)集合操作結(jié)果排序時(shí),ORDER BY子句中用數(shù)字指定排序?qū)傩?new,An Introduction to Database System,對(duì)集合操作結(jié)果的排序(續(xù)),例53 錯(cuò)誤寫法 SELECT * FROM Student WHERE Sdept= CS ORDER BY Sno UNION SELECT * FROM Student WHERE Sage=19 ORDER BY Sno;,new,An Introduction to Database System,對(duì)集合操作結(jié)果的排序(續(xù)),正確寫法 SELECT *
9、FROM Student WHERE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19 ORDER BY 1;,new,An Introduction to Database System,3.3.6 SELECT語(yǔ)句的一般格式,SELECT ALL|DISTINCT 別名 , 別名 FROM 別名 , 別名 WHERE GROUP BY , . HAVING ORDER BY ASC|DESC , ASC|DESC ;,An Introduction to Database System,3.4 數(shù) 據(jù) 更 新,3.4.1 插入數(shù)據(jù) 3.
10、4.2 修改數(shù)據(jù) 3.4.3 刪除數(shù)據(jù),An Introduction to Database System,3.4.1 插入數(shù)據(jù),兩種插入數(shù)據(jù)方式 插入單個(gè)元組 插入子查詢結(jié)果,An Introduction to Database System,1. 插入單個(gè)元組,語(yǔ)句格式 INSERT INTO (,) VALUES ( , ) 功能 將新元組插入指定表中。,An Introduction to Database System,插入單個(gè)元組(續(xù)),例1 將一個(gè)新學(xué)生記錄 INSERT INTO Student VALUES (95020,陳冬,男,null,18); 或 INSERT I
11、NTO Student (sname,sno,ssex,sage) VALUES (陳冬, 95020, 男,18);,An Introduction to Database System,Add date value,Consider Party( name, birthday ) Insert into party values(Newborn, sysdate); Insert into party values(Rose, 11-Jan-84); Insert into party values(Jack, todate(11/01/1984,MM/DD/YYYY);,An Intro
12、duction to Database System,Use substitution variables,Consider SC(sno, cno, grade) Insert into sc values ( new 1:insert into sc values(95001,c01,90) 1 row created.,An Introduction to Database System,2. 插入子查詢結(jié)果,語(yǔ)句格式 INSERT INTO ( , ) 子查詢; 功能 將子查詢結(jié)果插入指定表中,An Introduction to Database System,插入子查詢結(jié)果(續(xù)),
13、例3 對(duì)每一個(gè)系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫(kù)。 第一步:建表 CREATE TABLE Deptage (Sdept CHAR(15) /* 系名*/ Avgage SMALLINT); /*學(xué)生平均年齡*/,An Introduction to Database System,插入子查詢結(jié)果(續(xù)),第二步:插入數(shù)據(jù) INSERT INTO Deptage(Sdept,Avgage) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;,An Introduction to Database System,Create Table R
14、e-visited,Oracle supports creating table and inserting tuples from a query combined. Example: Create talbe CSStudent as select sno, sname, ssex,sage from student where sdept=CS;,An Introduction to Database System,3.4.2 修改數(shù)據(jù),語(yǔ)句格式 UPDATE SET =,= WHERE ; 功能 修改指定表中滿足WHERE子句條件的元組,An Introduction to Datab
15、ase System,修改數(shù)據(jù)(續(xù)),三種修改方式 修改某一個(gè)元組的值 修改多個(gè)元組的值 帶子查詢的修改語(yǔ)句,An Introduction to Database System,1. 修改某一個(gè)元組的值,例4 將學(xué)生95001的年齡改為22歲。 UPDATE Student SET Sage=22 WHERE Sno= 95001 ;,An Introduction to Database System,2. 修改多個(gè)元組的值,例5 將所有學(xué)生的年齡增加1歲。 UPDATE Student SET Sage= Sage+1;,An Introduction to Database Syste
16、m,修改多個(gè)元組的值(續(xù)),例6 將信息系所有學(xué)生的年齡增加1歲。 UPDATE Student SET Sage= Sage+1 WHERE Sdept= IS ;,An Introduction to Database System,3. 帶子查詢的修改語(yǔ)句,例7 將計(jì)算機(jī)科學(xué)系全體學(xué)生的成績(jī)置零。 UPDATE SC SET Grade=0 WHERE CS= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);,An Introduction to Database System,修改數(shù)據(jù)(續(xù)),DBMS在執(zhí)行修改語(yǔ)句時(shí)會(huì)檢查修
17、改操作 是否破壞表上已定義的完整性規(guī)則 實(shí)體完整性 主碼不允許修改 用戶定義的完整性 NOT NULL約束 UNIQUE約束 值域約束,An Introduction to Database System,3.4.3 刪除數(shù)據(jù),DELETE FROM WHERE ; 功能 刪除指定表中滿足WHERE子句條件的元組 WHERE子句 指定要?jiǎng)h除的元組 缺省表示要修改表中的所有元組,An Introduction to Database System,刪除數(shù)據(jù)(續(xù)),三種刪除方式 刪除某一個(gè)元組的值 刪除多個(gè)元組的值 帶子查詢的刪除語(yǔ)句,An Introduction to Database Sys
18、tem,1. 刪除某一個(gè)元組的值,例8 刪除學(xué)號(hào)為95019的學(xué)生記錄。 DELETE FROM Student WHERE Sno=95019;,An Introduction to Database System,2. 刪除多個(gè)元組的值,例9 刪除2號(hào)課程的所有選課記錄。 DELETE FROM SC; WHERE Cno=2; 例10 刪除所有的學(xué)生選課記錄。 DELETE FROM SC;,An Introduction to Database System,3. 帶子查詢的刪除語(yǔ)句,例11 刪除計(jì)算機(jī)科學(xué)系所有學(xué)生的選課記錄。 DELETE FROM SC WHERE CS= (SE
19、LETE Sdept FROM Student WHERE Student.Sno=SC.Sno);,An Introduction to Database System,刪除數(shù)據(jù)(續(xù)),DBMS在執(zhí)行刪除語(yǔ)句時(shí)會(huì)檢查所插元組 是否破壞表上已定義的完整性規(guī)則 參照完整性 不允許刪除 級(jí)聯(lián)刪除,An Introduction to Database System,更新數(shù)據(jù)與數(shù)據(jù)一致性,DBMS在執(zhí)行插入、刪除、更新語(yǔ)句時(shí)必 須保證數(shù)據(jù)庫(kù)一致性 必須有事務(wù)的概念和原子性 完整性檢查和保證,An Introduction to Database System,Consider the followi
20、ng table definitions: create table Departments (Name varchar2(20) not null, ); create table Students ( Sdept varchar2(20), foreign key(Sdept) references Departments(Name);,更新數(shù)據(jù)與數(shù)據(jù)一致性,An Introduction to Database System,Students:,Departments:,An Introduction to Database System,Insert a new tuple t int
21、o Students Allowed if tSdept is currently under Departments.Name Rejected otherwise,更新數(shù)據(jù)與數(shù)據(jù)一致性,An Introduction to Database System,Delete an existing tuple t from Departments Options: Rejected if tName is referenced by some tuple in Students. Allowed but also delete all tuples of Students which refer
22、ence t Allowed but also change t1Sdept to null for every t1 in Students which references t,更新數(shù)據(jù)與數(shù)據(jù)一致性,An Introduction to Database System,Update tName of a tuple t in Departments: Options: Rejected if tName is referenced by some tuple in Students Allowed but also update all tuples of Students which r
23、eference t Allowed but also change t1Sdept to null for every t1 in Students which reference t,更新數(shù)據(jù)與數(shù)據(jù)一致性,An Introduction to Database System,Specify options using SQL Format: foreign key (Sdept) references Departments(Name) on delete no action|cascade| set default|set null,更新數(shù)據(jù)與數(shù)據(jù)一致性,An Introduction
24、to Database System,Redefine the Students table. create table Students ( foreign key(Sdept) references Departments(Name) on delete no action on update cascade);,更新數(shù)據(jù)與數(shù)據(jù)一致性,An Introduction to Database System,視圖(Views),A tables created by create table is a base table. A base table is a real table. The
25、conceptual schema of a database is the set of all base tables. A view is a virtual table that does not necessarily exist in physical form. Each view is defined, directly or indirectly, in terms of base tables.,An Introduction to Database System,3.5 視 圖,視圖的特點(diǎn) 虛表,是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表 只存放視圖的定義,不會(huì)出現(xiàn)數(shù)據(jù)冗余 基表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也隨之改變,An Introduction to Database System,3.5 視 圖,基于視圖的操作 查詢 刪除 受限更新 定義基于該視圖的新視圖,An Introduction to
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年秋季小學(xué)數(shù)學(xué)北京課改版五年級(jí)【數(shù)學(xué)(北京版)】小數(shù)除法解決問題(第一課時(shí))-3學(xué)習(xí)任務(wù)單
- 電視機(jī)原理練習(xí)題(判斷選擇)(2024年)
- 電商員工績(jī)效考核方案
- 【7歷期末】安徽省亳州市蒙城縣2023-2024學(xué)年七年級(jí)上學(xué)期期末歷史試題(含解析)
- 實(shí)施消費(fèi)品以舊換新策略的關(guān)鍵因素
- 微課程設(shè)計(jì)小學(xué)體育
- 促進(jìn)制造業(yè)企業(yè)經(jīng)營(yíng)管理流程優(yōu)化實(shí)施方案
- 冰雪經(jīng)濟(jì)前景展望與市場(chǎng)趨勢(shì)研究報(bào)告
- 利用數(shù)字媒體提高小學(xué)生閱讀興趣的探討
- 光電課程設(shè)計(jì)目的
- 2024年全國(guó)《考評(píng)員》專業(yè)技能鑒定考試題庫(kù)與答案
- 道法全冊(cè)知識(shí)點(diǎn)梳理-2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 《網(wǎng)絡(luò)系統(tǒng)管理與維護(hù)》期末考試題庫(kù)及答案
- 人教版數(shù)學(xué)六年級(jí)上冊(cè)期末考試試卷
- 警務(wù)指揮與戰(zhàn)術(shù)學(xué)總論學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 繪本小狐貍賣空氣
- 媒體創(chuàng)意經(jīng)濟(jì):玩轉(zhuǎn)互聯(lián)網(wǎng)時(shí)代學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 實(shí)驗(yàn)室安全準(zhǔn)入學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 華東師大版(2024新版)七年級(jí)上冊(cè)數(shù)學(xué)期末素養(yǎng)評(píng)估測(cè)試卷(含答案)
- 中考二次函數(shù)應(yīng)用題(含答案)
- 畫說學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論