版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、A,1,查 詢,A,2,數據查詢,語句格式 SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ;,A,3,單表查詢,查詢僅涉及一個表: 一、 選擇表中的若干列 二、 選擇表中的若干元組 三、 ORDER BY子句 四、 聚集函數 五、 GROUP BY子句,A,4,1、 選擇表中的若干列,查詢指定列 查詢全體學生的學號與姓名。 SELECT Sno,Sname FROM Student; 查詢全體學生的姓名、學號、所在系。 SELECT Sname,Sno,Sdept FROM Student;,A,5,2
2、. 查詢全部列,選出所有屬性列: 在SELECT關鍵字后面列出所有列名 將指定為 * 查詢全體學生的詳細記錄。 SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student; 或 SELECT * FROM Student;,A,6,3. 查詢經過計算的值,SELECT子句的可以為: 算術表達式 字符串常量 函數 列別名,A,7,查全體學生的姓名及其出生年份。 SELECT Sname,2004-Sage /*假定當年的年份為2004年*/ FROM Student; 輸出結果: Sname 2004-Sage 李勇 1984 劉晨 1985 王敏 1986 張立
3、 1985,查詢經過計算的值(續(xù)),A,8,查詢經過計算的值(續(xù)),查詢全體學生的姓名、出生年份和所有系,要求用小寫字母表示所有系名 SELECT Sname,Year of Birth: ,2004-Sage, LOWER(Sdept) FROM Student; 輸出結果: Sname Year of Birth: 2004-Sage ISLOWER(Sdept) 李勇 Year of Birth: 1984 cs 劉晨 Year of Birth: 1985 is 王敏 Year of Birth: 1986 ma 張立 Year of Birth: 1985 is,A,9,查詢經過計算
4、的值(續(xù)),使用列別名改變查詢結果的列標題: SELECT Sname NAME,Year of Birth: BIRTH, 2000-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT FROM Student; 輸出結果: NAME BIRTH BIRTHDAY DEPARTMENT - - - - 李勇 Year of Birth: 1984 cs 劉晨 Year of Birth: 1985 is 王敏 Year of Birth: 1986 ma 張立 Year of Birth: 1985 is,A,10,單表查詢,查詢僅涉及一個表: 一、 選擇表中的若干列
5、 二、 選擇表中的若干元組 三、 ORDER BY子句 四、 聚集函數 五、 GROUP BY子句,A,11,選擇表中的若干元組,1. 消除取值重復的行 如果沒有指定DISTINCT關鍵詞,則缺省為ALL 查詢選修了課程的學生學號。 SELECT Sno FROM SC; 等價于: SELECT ALL Sno FROM SC; 執(zhí)行上面的SELECT語句后,結果為: Sno 200215121 200215121 200215121 200215122 200215122,A,12,消除取值重復的行(續(xù)),指定DISTINCT關鍵詞,去掉表中重復的行 SELECT DISTINCT Sno
6、FROM SC; 執(zhí)行結果: Sno 200215121 200215122,A,13,2.查詢滿足條件的元組,表3.4 常用的查詢條件,A,14,(1) 比較大小,查詢計算機科學系全體學生的名單。 SELECT Sname FROM Student WHERE Sdept=CS; 查詢所有年齡在20歲以下的學生姓名及其年齡。 SELECT Sname,Sage FROM Student WHERE Sage 20; 查詢考試成績有不及格的學生的學號。 SELECT DISTINCT Sno FROM SC WHERE Grade60;,A,15,(2)確定范圍,謂詞: BETWEEN AND
7、 NOT BETWEEN AND 查詢年齡在2023歲(包括20歲和23歲)之間的學生的 姓名、系別和年齡 SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23; 查詢年齡不在2023歲之間的學生姓名、系別和年齡 SELECT Sname,Sdept,Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23;,A,16,(3) 確定集合,謂詞:IN , NOT IN 查詢信息系(IS)、數學系(MA)和計算機科學系(CS)學生的姓名和性別。 SELECT Sname,Sse
8、x FROM Student WHERE Sdept IN ( IS,MA,CS ); 查詢既不是信息系、數學系,也不是計算機科學系的學生的姓名和性別。 SELECT Sname,Ssex FROM Student WHERE Sdept NOT IN ( IS,MA,CS );,A,17,(4)字符匹配,謂詞: NOT LIKE ESCAPE 匹配串為固定字符串 查詢學號為200215121的學生的詳細情況。 SELECT * FROM Student WHERE Sno LIKE 200215121; 等價于: SELECT * FROM Student WHERE Sno = 20021
9、5121 ;,A,18,字符匹配(續(xù)),2) 匹配串為含通配符的字符串,SQL Server提供了四種通配符:%代表任意多個字符,_(下劃線)代表單個字符, 代表指定范圍內的單個字符,代表不在指定范圍內的單個字符。 查詢所有姓劉學生的姓名、學號和性別。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE 劉%; 查詢姓歐陽且全名為三個漢字的學生的姓名。 SELECT Sname FROM Student WHERE Sname LIKE 歐陽_;,A,19,字符匹配(續(xù)),查詢名字中第2個字為陽字的學生的姓名和學號。 SELECT Sname
10、,Sno FROM Student WHERE Sname LIKE _陽%; 查詢所有不姓劉的學生姓名。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname NOT LIKE 劉%;,A,20,字符匹配(續(xù)),3) 使用換碼字符將通配符轉義為普通字符 查詢DB_Design課程的課程號和學分。 SELECT Cno,Ccredit FROM Course WHERE Cname LIKE DB_Design ESCAPE ; 查詢以DB_開頭,且倒數第3個字符為 i的課程的詳細情況。 SELECT * FROM Course WHERE Cname
11、LIKE DB_%i_ _ ESCAPE ; ESCAPE 表示“ ” 為換碼字符,A,21,(5) 涉及空值的查詢,謂詞: IS NULL 或 IS NOT NULL “IS” 不能用 “=” 代替 某些學生選修課程后沒有參加考試,所以有選課記錄,但沒 有考試成績。查詢缺少成績的學生的學號和相應的課程號。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL 查所有有成績的學生學號和課程號。 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL;,A,22,(6) 多重條件查詢,邏輯運算符:AND和 OR來聯(lián)結多個查詢條
12、件 AND的優(yōu)先級高于OR 可以用括號改變優(yōu)先級 可用來實現(xiàn)多種其他謂詞 NOT IN NOT BETWEEN AND ,A,23,多重條件查詢(續(xù)),查詢計算機系年齡在20歲以下的學生姓名。 SELECT Sname FROM Student WHERE Sdept= CS AND Sage20;,A,24,多重條件查詢(續(xù)),改寫 查詢信息系(IS)、數學系(MA)和計算機科學系(CS)學生的姓名和性別。 SELECT Sname,Ssex FROM Student WHERE Sdept IN ( IS,MA,CS ) 可改寫為: SELECT Sname,Ssex FROM Stude
13、nt WHERE Sdept= IS OR Sdept= MA OR Sdept= CS ;,A,25,單表查詢,查詢僅涉及一個表: 一、 選擇表中的若干列 二、 選擇表中的若干元組 三、 ORDER BY子句 四、 聚集函數 五、 GROUP BY子句,A,26,ORDER BY子句,ORDER BY子句 可以按一個或多個屬性列排序 升序:ASC;降序:DESC;缺省值為升序 當排序列含空值時 ASC:排序列為空值的元組最后顯示 DESC:排序列為空值的元組最先顯示,A,27,ORDER BY子句 (續(xù)),查詢選修了3號課程的學生的學號及其成績,查詢結果按分數降序排列。 SELECT Sno
14、,Grade FROM SC WHERE Cno= 3 ORDER BY Grade DESC; 查詢全體學生情況,查詢結果按所在系的系號升序排列,同一系中的學生按年齡降序排列。 SELECT * FROM Student ORDER BY Sdept,Sage DESC;,A,28,嵌套查詢,嵌套查詢概述 一個SELECT-FROM-WHERE語句稱為一個查詢塊 將一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢,A,29,嵌套查詢(續(xù)),SELECT Sname /*外層查詢/父查詢*/ FROM Student WHERE Sno IN (SELE
15、CT Sno /*內層查詢/子查詢*/ FROM SC WHERE Cno= 2 );,A,30,插 入,A,31,插入數據,兩種插入數據方式 1. 插入元組 2. 插入子查詢結果 可以一次插入多個元組,A,32,一、插入元組,語句格式 INSERT INTO (,) VALUES ( , ) 功能 將新元組插入指定表中,A,33,插入元組(續(xù)),INTO子句 屬性列的順序可與表定義中的順序不一致 沒有指定屬性列 指定部分屬性列 VALUES子句 提供的值必須與INTO子句匹配 值的個數 值的類型,A,34,插入元組(續(xù)),例1 將一個新學生元組(學號:200215128;姓名:陳冬;性別:男
16、;所在系:IS;年齡:18歲)插入到Student表中。 INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES (200215128,陳冬,男,IS,18);,A,35,插入元組(續(xù)),例2 將學生張成民的信息插入到Student表中。 INSERT INTO Student VALUES (200215126, 張成民, 男,18,CS);,A,36,插入元組(續(xù)),例3 插入一條選課記錄( 200215128,1 )。 INSERT INTO SC(Sno,Cno) VALUES ( 200215128 , 1 ); RDBMS將在新
17、插入記錄的Grade列上自動地賦空值。 或者: INSERT INTO SC VALUES ( 200215128 , 1 ,NULL);,A,37,二、插入子查詢結果,語句格式 INSERT INTO ( , ) 子查詢; 功能 將子查詢結果插入指定表中,A,38,插入子查詢結果(續(xù)),INTO子句(與插入元組類似) 子查詢 SELECT子句目標列必須與INTO子句匹配 值的個數 值的類型,A,39,插入子查詢結果(續(xù)),例4 對每一個系,求學生的平均年齡,并把結果存入數據庫。 第一步:建表 CREATE TABLE Dept_age (Sdept CHAR(15) /* 系名*/ Avg_
18、age SMALLINT); /*學生平均年齡*/,A,40,插入子查詢結果(續(xù)),第二步:插入數據 INSERT INTO Dept_age(Sdept,Avg_age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;,A,41,插入子查詢結果(續(xù)),RDBMS在執(zhí)行插入語句時會檢查所插元組是 否破壞表上已定義的完整性規(guī)則 實體完整性 參照完整性 用戶定義的完整性 NOT NULL約束 UNIQUE約束 值域約束,A,42,修 改,A,43,修改數據,語句格式 UPDATE SET =,= WHERE ; 功能 修改指定表中滿足WHER
19、E子句條件的元組,A,44,修改數據(續(xù)),SET子句 指定修改方式 要修改的列 修改后取值 WHERE子句 指定要修改的元組 缺省表示要修改表中的所有元組,A,45,修改數據(續(xù)),三種修改方式 1. 修改某一個元組的值 2. 修改多個元組的值 3. 帶子查詢的修改語句,A,46,1. 修改某一個元組的值,例5 將學生200215121的年齡改為22歲 UPDATE Student SET Sage=22 WHERE Sno= 200215121 ;,A,47,2. 修改多個元組的值,例6 將所有學生的年齡增加1歲 UPDATE Student SET Sage= Sage+1;,A,48,3. 帶子查詢的修改語句,例7 將計算機科學系全體學生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學學生食堂食品安全管理制度
- 養(yǎng)老院工作人員服務態(tài)度規(guī)范制度
- 企業(yè)內部保密責任追究制度
- 公共交通車輛駕駛人員培訓考核制度
- 2026年機器人技術與未來應用趨勢考核題
- 2026年現(xiàn)代企業(yè)管理知識測試題庫企業(yè)戰(zhàn)略與組織管理
- 2026年化工原理與工藝流程模擬練習題
- 2026年法律職業(yè)資格考試專題訓練憲法與行政法
- 2026年祠堂修繕捐款協(xié)議
- 古田會議永放光芒課件
- 戶外領隊培訓課件
- 2026年深圳市離婚協(xié)議書規(guī)范范本
- 2026年及未來5年中國飼料加工設備行業(yè)發(fā)展前景預測及投資戰(zhàn)略研究報告
- 2026年自動駕駛政策法規(guī)報告
- 醫(yī)療數據倫理治理的國際經驗借鑒
- 浙江省《檢驗檢測機構技術負責人授權簽字人》考試題及答案
- 子午流注在護理中的應用
- 新媒體評論管理制度規(guī)范(3篇)
- 劑量反應曲線的統(tǒng)計分析方法-洞察及研究
- 2025年高職室內藝術設計(室內設計)試題及答案
- 2025課堂懲罰 主題班會:馬達加斯加企鵝課堂懲罰 課件
評論
0/150
提交評論