




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SQL Server中常用的SQL語(yǔ)句· 1、概述· 2、查詢概述· 3、單表查詢· 4、連接查詢· 5、帶有exists的相關(guān)子查詢· 6、SQL的集合操作· 7、插入操作· 8、刪除操作· 9、修改操作· 10、數(shù)據(jù)定義· 11、視圖1、概述名詞笛卡爾積、主鍵、外鍵數(shù)據(jù)完整性· 實(shí)體完整性:主屬性不能為空值,例如選課表中學(xué)號(hào)和課程號(hào)不能為空· 參照完整性:表中的外鍵取值為空或參照表中的主鍵· 用戶定義完整性:取值范圍或非空限制,例如:性別(男女),年齡
2、(0-130)表連接· 自然連接:與等值連接(a.id=b.id)相比,連接后的表只有一列id,而不是兩列(a.id和b.id)。· 半連接:與等值連接(a.id=b.id)相比,連接后的表只有A表的列,被B表“多次匹配”列會(huì)顯示為一行。· 左外連接:left join· 右外連接:right join· 全外連接:full join· 全內(nèi)連接:inner joinSQL語(yǔ)言的構(gòu)成· DDL語(yǔ)言:數(shù)據(jù)定義,定義基本表、視圖、索引;· DML語(yǔ)言:數(shù)據(jù)操縱,查詢、增加、修改、刪除· DCL語(yǔ)言:權(quán)限2、查
3、詢概述查詢包括:?jiǎn)伪聿樵?、連接查詢、帶有exists的相關(guān)子查詢、集合操作四中。select.from常用語(yǔ)句執(zhí)行過程select 投影from table內(nèi)存where 選取元組group 分組having 選擇分組union| 查徇結(jié)果的集 合運(yùn)算select order by 排序輸出3、單表查詢group by 只有出現(xiàn)在group by子句中的屬性,才可出現(xiàn)在select子句中。用order by子句對(duì)查詢結(jié)果按照一個(gè)或多個(gè)列的值進(jìn)行升/降排列輸出,升序?yàn)锳SC;降序?yàn)閐esc,空值將作為最大值排序having 與 where的區(qū)別· where 決定哪些元組被選擇參加運(yùn)算
4、,作用于關(guān)系中的元組· having 決定哪些分組符合要求,作用于分組4、連接查詢連接查詢包括:多表連接查詢、單表連接查詢(自連接)、外連接查詢、嵌套查詢4種連接條件一表名1. 列名1 比較運(yùn)算符 表名2.列名2連接條件二表名1.列名1 between 表名2.列名2 and 表名2.列名3連接條件中的列名稱為連接字段,對(duì)應(yīng)的連接字段應(yīng)是可比的。執(zhí)行過程:采用表掃描的方法,在表1中找到第一個(gè)元組,然后從頭開始掃描表2,查找到滿足條件的元組即進(jìn)行串接并存入結(jié)果表中;再繼續(xù)掃描表2,依次類推,直到表2末尾。再?gòu)谋?中取第二個(gè)元組,重復(fù)上述的操作,直到表1中的元組全部處理完畢。4.1 單表
5、連接(自連接)用表別名把一個(gè)表定義為兩個(gè)不同的表進(jìn)行連接。例:查找至少選修了2號(hào)和4號(hào)課程的學(xué)生的學(xué)號(hào)select FIRST.snofrom SC as FIRST, SC as SECOND where FIRST.Sno=SECOND.Sno and FIRST.cno='s2' and SECOND.cno='4'4.2 外連接查詢外連接查詢包括:Left join、right join、full join4.3 嵌套查詢· 在select from where語(yǔ)句結(jié)構(gòu)的where子句中可嵌入一個(gè)select語(yǔ)句塊· 其上層查詢稱為外
6、層查詢或父查詢,其下層查詢稱為內(nèi)層查詢或子查詢· SQL語(yǔ)言允許使用多重嵌套查詢· 在子查詢中不允許使用order by子句· 嵌套查詢的實(shí)現(xiàn)一般是從里到外,即先進(jìn)行子查詢,再把其結(jié)果用于父查詢作為條件4.3.1 返回單個(gè)值的子查詢例:求與“劉力”同一個(gè)系的學(xué)生名,年齡方法一:select Sname, Sage from student where Sdept = (select sdept from student where Sname = "劉力");方法二:select FIRST.Sname, FIRST.Sage from Stu
7、dent FIRST, Student SECONDwhere FIRST.Sdept = SECOND.Sdept AND SECOND.Sname = "劉力"4.3.2 返回一組值的子查詢例:求選修“C6”課程且成績(jī)超過90分的學(xué)生方法一:select * from student where sno IN (select sno from SC where Cno="C6" AND Grade>90);方法二(連接查詢 ):select student.*from student,SCwhere Student.Sno=SC.Sno AND
8、 Cno="C6" AND Grade>90;例:求比計(jì)算機(jī)系中某一學(xué)生年齡小的其他系的學(xué)生方法一:select * from student where sdept!="CS" AND sage < ANY (select Sage from Student where Sdept="CS");方法二:select *from Studentwhere Sdept!=CS AND Sage < (select MAX(Sage) from Student where Sdept="CS");4.
9、3.3 多重子查詢例:求D01部門中工資與國(guó)貿(mào)系中任意職工相同的職工姓名和工資表結(jié)構(gòu):Teacher(tno, tname, salary, dno)Department(dno, dname)查詢語(yǔ)句:select Tname,Salaryfrom Teacherwhere Dno = "D01" AND salary IN( select salary from teacher where Dno =(select DNO from department where Dname="國(guó)貿(mào)") );例:求工資介于“張三”與“里司”兩個(gè)之間的職工selec
10、t *from teacherwhere Salary >= (select MIN(Salary) from teacher where Tname IN ("張三", "里司") AND Salary <= (select MAX(Salary) from teacher where Tname IN ("張三", "里司");4.3.4 在from語(yǔ)句中使用子查詢,對(duì)查詢結(jié)果定義表名及列名例:求平均成績(jī)超過80分的學(xué)號(hào)及平均成績(jī)select Sno, avg_Gfrom (select Sno,
11、avg(Grade) from SC group by Sno) AS RA(Sno, avg_G)where avg_G > 80;AS RA(Sno, avg_G),為查詢作為定義表名(RA)和列名(Sno, avg_G)5、帶有exists的相關(guān)子查詢· 不相關(guān)子查詢:子查詢的查詢條件不依賴于父查詢的稱為不相關(guān)子查詢。· 相關(guān)子查詢:子查詢的查詢條件依賴于外層父查詢的某個(gè)屬性值的稱為相關(guān)子查詢,帶exists 的子查詢就是相關(guān)子查詢· exists表示存在量詞,帶有exists的子查詢不返回任何記錄的數(shù)據(jù),只返回邏輯值“True” 或“False”例:
12、求所有選修了“C1”課程的學(xué)生名。不相關(guān)子查詢: select Sname from student where sno IN ( select sno from SC where Cno = "C1" ); 相關(guān)子查詢select Sname from studentwhere exists (select * from SC where student.sno=SC.sno AND Cno = "C1" );相關(guān)子查詢執(zhí)行過程:先在外層查詢中取student表的第一個(gè)元組(記錄),用該記錄的相關(guān)的屬性值(在內(nèi)層where子句中給定的)處理內(nèi)層查詢,若
13、外層的where子句返回TRUE值,則此元組送入結(jié)果的表中。然后再取下一個(gè)元組;重復(fù)上述過程直到外層表的記錄全部遍歷一次為止。· 不關(guān)心子查詢的具體內(nèi)容,因此用 select *· exists + 子查詢用來判斷該子查詢是否返回元組· 當(dāng)子查詢的結(jié)果集非空時(shí),exists 為“True”;當(dāng)子查詢的結(jié)果集為空時(shí),exists為“False”。· not exists :若子查詢結(jié)果為空,返回“TRUE”值,否則返回“FALSE”例:查詢選修了所有課程的學(xué)生的姓名(續(xù))select Snamefrom studentwhere not exists (
14、select * from Course where not exists ( select * from SC where student.sno=SC.sno AND Course.Cno=SC.Cno );例:查詢至少選修了S1所選的全部課程的學(xué)生名select Snamefrom studentwhere not exists( select * from SC SCX where SCX.sno="s1" AND not exists ( select * from SC SCY where student.sno=SCY.sno AND SCX.Cno=SCY.
15、Cno );6、SQL的集合操作· 屬性個(gè)數(shù)必須一致、對(duì)應(yīng)的類型必須一致· 屬性名可以不一致, 最終結(jié)果集采用第一個(gè)結(jié)果的屬性名· 缺省為自動(dòng)去除重復(fù)元組,除非顯式說明ALL· order by放在整個(gè)語(yǔ)句的最后6.1 “并”操作,例:查詢計(jì)算機(jī)系的學(xué)生或者年齡不大于19歲的學(xué)生,并按年齡倒排序。select * from student where Sdept="CS"UNIONselect * from student where AGE <= 19order by AGE desc6.2 “交”操作,例:查詢計(jì)算機(jī)系的學(xué)生
16、并且年齡不大于19歲的學(xué)生,并按年齡倒排序。(select * from student where Sdept = "CS") INTERSECT(select * from student where AGE <= 19)order by AGE desc6.3 “差”操作,例:查詢選修課程1但沒有選修課程2的學(xué)生。select Sname, Sdeptfrom studentwhere sno IN ( (select sno from SC where Cno="1") EXCEPT (select sno from SC where Cn
17、o="2") 7、插入操作格式:insert into 表名(列名1,) values (列值1,)插入一已知元組的全部列值insert into student values("2003001", "陳冬", 18, "男", "電商", "管理學(xué)院", "徐州");插入一已知元組的部分列值insert into SC(Sno,Cno) values ("2003001", "C003");插入子查詢的結(jié)果例:設(shè)關(guān)
18、系S_G(Sno,avg_G),把平均成績(jī)大于80的男生的學(xué)號(hào)及平均成績(jī)存入S_G中insert into S_G(sno,avg_G) ( select sno, avg(GRADE) from SC where Sno IN (select Sno from Student where SEX="男") group by Sno having avg(GRADE) > 80);8、刪除操作格式: delete from 表名 where 條件;· 只能對(duì)整個(gè)元組操作,不能只刪除某些屬性上的值· 只能對(duì)一個(gè)關(guān)系(表)起作用,若要從多個(gè)關(guān)系(表)中
19、刪除元組,則必須對(duì)每個(gè)關(guān)系分別執(zhí)行刪除命令9、修改操作update語(yǔ)句一次只能操作一個(gè)表。格式1:update 表名 別名set 列名 = 表達(dá)式, .where 條件;格式2:update 表名 別名set (列名, .) = (子查詢)where 條件;例:工種為SALESMEN的職工的工資改為工種平均工資的110%update EMPLOYEEset Salary = (select 1.1 * avg(Salary) from EMPLOYEE where JOB="SALESMEN")where JOB="SALESMEN" 例:將所有學(xué)生的年
20、齡增加1歲update student set Sage=Sage+1; 10、數(shù)據(jù)定義創(chuàng)建課程表create table SC ( sno CHAR(6) not null, Cno CHAR(6) not null, Grade smallint default null)primary key (sno,Cno)foreign key (sno) references student(sno)foreign key (Cno) references Course(Cno)check (Grade between 0 AND 100);常用的索引:唯一索引和聚簇索引唯一索引· 對(duì)于已含重復(fù)值的屬性列不能建UNIQUE索引· 對(duì)某個(gè)列建立UNIQUE索引后,插入新記錄時(shí)DBMS會(huì)自動(dòng)檢查新記錄在該列上是否取了重復(fù)值。這相當(dāng)于增加了一個(gè)U
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省宜昌市虎亭區(qū)2025屆小升初數(shù)學(xué)模擬試卷含解析
- 青島市市北區(qū)2025屆數(shù)學(xué)四下期末檢測(cè)模擬試題含解析
- 四川航天職業(yè)技術(shù)學(xué)院《當(dāng)代西方學(xué)者眼中的馬克思主義哲學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌應(yīng)用技術(shù)師范學(xué)院《網(wǎng)絡(luò)與新媒體導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢科技大學(xué)《建筑法規(guī)》2023-2024學(xué)年第二學(xué)期期末試卷
- 電磁閥氣源控制系統(tǒng)助力工業(yè)智能化
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《燈具與照明設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州城市職業(yè)學(xué)院《施工原理與方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 華中農(nóng)業(yè)大學(xué)《城市公共景觀設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 人口老齡化背景下居民儲(chǔ)蓄模式轉(zhuǎn)變調(diào)查問卷
- 2024年07月江蘇銀行招考筆試歷年參考題庫(kù)附帶答案詳解
- 2023中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- GB/T 6414-2017鑄件尺寸公差、幾何公差與機(jī)械加工余量
- 《金字塔原理-邏輯思維與高效溝通》汪洱課件
- 常見臨床實(shí)驗(yàn)室檢查解讀課件
- 簡(jiǎn)諧運(yùn)動(dòng)課件
- 生命科學(xué)引論:遺傳學(xué)的魅力
- 北京市建設(shè)工程造價(jià)管理協(xié)會(huì) 京價(jià)協(xié)2015011
- 小學(xué)數(shù)學(xué)人教四年級(jí)下冊(cè)圖形的運(yùn)動(dòng)軸對(duì)稱教案詳案
- 招貼設(shè)計(jì) 課件完整版
- 住宅房屋樓層修正系數(shù)表
評(píng)論
0/150
提交評(píng)論