




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、查 詢,1,PPT學習交流,數(shù)據(jù)查詢,語句格式 SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ;,2,PPT學習交流,單表查詢,查詢僅涉及一個表: 一、 選擇表中的若干列 二、 選擇表中的若干元組 三、 ORDER BY子句 四、 聚集函數(shù) 五、 GROUP BY子句,3,PPT學習交流,1、 選擇表中的若干列,查詢指定列 查詢全體學生的學號與姓名。 SELECT Sno,Sname FROM Student; 查詢全體學生的姓名、學號、所在系。 SELECT Sname,Sno,Sdept FROM
2、Student;,4,PPT學習交流,2. 查詢全部列,選出所有屬性列: 在SELECT關鍵字后面列出所有列名 將指定為 * 查詢全體學生的詳細記錄。 SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student; 或 SELECT * FROM Student;,5,PPT學習交流,3. 查詢經(jīng)過計算的值,SELECT子句的可以為: 算術表達式 字符串常量 函數(shù) 列別名,6,PPT學習交流,查全體學生的姓名及其出生年份。 SELECT Sname,2004-Sage /*假定當年的年份為2004年*/ FROM Student; 輸出結果: Sname 2004
3、-Sage 李勇 1984 劉晨 1985 王敏 1986 張立 1985,查詢經(jīng)過計算的值(續(xù)),7,PPT學習交流,查詢經(jīng)過計算的值(續(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 m
4、a 張立 Year of Birth: 1985 is,8,PPT學習交流,查詢經(jīng)過計算的值(續(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 Bi
5、rth: 1985 is,9,PPT學習交流,單表查詢,查詢僅涉及一個表: 一、 選擇表中的若干列 二、 選擇表中的若干元組 三、 ORDER BY子句 四、 聚集函數(shù) 五、 GROUP BY子句,10,PPT學習交流,選擇表中的若干元組,1. 消除取值重復的行 如果沒有指定DISTINCT關鍵詞,則缺省為ALL 查詢選修了課程的學生學號。 SELECT Sno FROM SC; 等價于: SELECT ALL Sno FROM SC; 執(zhí)行上面的SELECT語句后,結果為: Sno 200215121 200215121 200215121 200215122 200215122,11,PP
6、T學習交流,消除取值重復的行(續(xù)),指定DISTINCT關鍵詞,去掉表中重復的行 SELECT DISTINCT Sno FROM SC; 執(zhí)行結果: Sno 200215121 200215122,12,PPT學習交流,2.查詢滿足條件的元組,表3.4 常用的查詢條件,13,PPT學習交流,(1) 比較大小,查詢計算機科學系全體學生的名單。 SELECT Sname FROM Student WHERE Sdept=CS; 查詢所有年齡在20歲以下的學生姓名及其年齡。 SELECT Sname,Sage FROM Student WHERE Sage 20; 查詢考試成績有不及格的學生的學號
7、。 SELECT DISTINCT Sno FROM SC WHERE Grade60;,14,PPT學習交流,(2)確定范圍,謂詞: BETWEEN AND 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;,15,P
8、PT學習交流,(3) 確定集合,謂詞:IN , NOT IN 查詢信息系(IS)、數(shù)學系(MA)和計算機科學系(CS)學生的姓名和性別。 SELECT Sname,Ssex FROM Student WHERE Sdept IN ( IS,MA,CS ); 查詢既不是信息系、數(shù)學系,也不是計算機科學系的學生的姓名和性別。 SELECT Sname,Ssex FROM Student WHERE Sdept NOT IN ( IS,MA,CS );,16,PPT學習交流,(4)字符匹配,謂詞: NOT LIKE ESCAPE 匹配串為固定字符串 查詢學號為200215121的學生的詳細情況。 S
9、ELECT * FROM Student WHERE Sno LIKE 200215121; 等價于: SELECT * FROM Student WHERE Sno = 200215121 ;,17,PPT學習交流,字符匹配(續(xù)),2) 匹配串為含通配符的字符串,SQL Server提供了四種通配符:%代表任意多個字符,_(下劃線)代表單個字符, 代表指定范圍內的單個字符,代表不在指定范圍內的單個字符。 查詢所有姓劉學生的姓名、學號和性別。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE 劉%; 查詢姓歐陽且全名為三個漢字的學生的姓名。
10、 SELECT Sname FROM Student WHERE Sname LIKE 歐陽_;,18,PPT學習交流,字符匹配(續(xù)),查詢名字中第2個字為陽字的學生的姓名和學號。 SELECT Sname,Sno FROM Student WHERE Sname LIKE _陽%; 查詢所有不姓劉的學生姓名。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname NOT LIKE 劉%;,19,PPT學習交流,字符匹配(續(xù)),3) 使用換碼字符將通配符轉義為普通字符 查詢DB_Design課程的課程號和學分。 SELECT Cno,Ccredit FR
11、OM Course WHERE Cname LIKE DB_Design ESCAPE ; 查詢以DB_開頭,且倒數(shù)第3個字符為 i的課程的詳細情況。 SELECT * FROM Course WHERE Cname LIKE DB_%i_ _ ESCAPE ; ESCAPE 表示“ ” 為換碼字符,20,PPT學習交流,(5) 涉及空值的查詢,謂詞: IS NULL 或 IS NOT NULL “IS” 不能用 “=” 代替 某些學生選修課程后沒有參加考試,所以有選課記錄,但沒 有考試成績。查詢缺少成績的學生的學號和相應的課程號。 SELECT Sno,Cno FROM SC WHERE G
12、rade IS NULL 查所有有成績的學生學號和課程號。 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL;,21,PPT學習交流,(6) 多重條件查詢,邏輯運算符:AND和 OR來聯(lián)結多個查詢條件 AND的優(yōu)先級高于OR 可以用括號改變優(yōu)先級 可用來實現(xiàn)多種其他謂詞 NOT IN NOT BETWEEN AND ,22,PPT學習交流,多重條件查詢(續(xù)),查詢計算機系年齡在20歲以下的學生姓名。 SELECT Sname FROM Student WHERE Sdept= CS AND Sage20;,23,PPT學習交流,多重條件查詢(續(xù)),改
13、寫 查詢信息系(IS)、數(shù)學系(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 ;,24,PPT學習交流,單表查詢,查詢僅涉及一個表: 一、 選擇表中的若干列 二、 選擇表中的若干元組 三、 ORDER BY子句 四、 聚集函數(shù) 五、 GROUP BY子句,25,PPT學習交流,ORDER BY子句,ORDER BY子句
14、可以按一個或多個屬性列排序 升序:ASC;降序:DESC;缺省值為升序 當排序列含空值時 ASC:排序列為空值的元組最后顯示 DESC:排序列為空值的元組最先顯示,26,PPT學習交流,ORDER BY子句 (續(xù)),查詢選修了3號課程的學生的學號及其成績,查詢結果按分數(shù)降序排列。 SELECT Sno,Grade FROM SC WHERE Cno= 3 ORDER BY Grade DESC; 查詢全體學生情況,查詢結果按所在系的系號升序排列,同一系中的學生按年齡降序排列。 SELECT * FROM Student ORDER BY Sdept,Sage DESC;,27,PPT學習交流,
15、嵌套查詢,嵌套查詢概述 一個SELECT-FROM-WHERE語句稱為一個查詢塊 將一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢,28,PPT學習交流,嵌套查詢(續(xù)),SELECT Sname /*外層查詢/父查詢*/ FROM Student WHERE Sno IN (SELECT Sno /*內層查詢/子查詢*/ FROM SC WHERE Cno= 2 );,29,PPT學習交流,插 入,30,PPT學習交流,插入數(shù)據(jù),兩種插入數(shù)據(jù)方式 1. 插入元組 2. 插入子查詢結果 可以一次插入多個元組,31,PPT學習交流,一、插入元組,語句格式
16、INSERT INTO (,) VALUES ( , ) 功能 將新元組插入指定表中,32,PPT學習交流,插入元組(續(xù)),INTO子句 屬性列的順序可與表定義中的順序不一致 沒有指定屬性列 指定部分屬性列 VALUES子句 提供的值必須與INTO子句匹配 值的個數(shù) 值的類型,33,PPT學習交流,插入元組(續(xù)),例1 將一個新學生元組(學號:200215128;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。 INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES (200215128,陳冬,男,IS,18);
17、,34,PPT學習交流,插入元組(續(xù)),例2 將學生張成民的信息插入到Student表中。 INSERT INTO Student VALUES (200215126, 張成民, 男,18,CS);,35,PPT學習交流,插入元組(續(xù)),例3 插入一條選課記錄( 200215128,1 )。 INSERT INTO SC(Sno,Cno) VALUES ( 200215128 , 1 ); RDBMS將在新插入記錄的Grade列上自動地賦空值。 或者: INSERT INTO SC VALUES ( 200215128 , 1 ,NULL);,36,PPT學習交流,二、插入子查詢結果,語句格式
18、 INSERT INTO ( , ) 子查詢; 功能 將子查詢結果插入指定表中,37,PPT學習交流,插入子查詢結果(續(xù)),INTO子句(與插入元組類似) 子查詢 SELECT子句目標列必須與INTO子句匹配 值的個數(shù) 值的類型,38,PPT學習交流,插入子查詢結果(續(xù)),例4 對每一個系,求學生的平均年齡,并把結果存入數(shù)據(jù)庫。 第一步:建表 CREATE TABLE Dept_age (Sdept CHAR(15) /* 系名*/ Avg_age SMALLINT); /*學生平均年齡*/,39,PPT學習交流,插入子查詢結果(續(xù)),第二步:插入數(shù)據(jù) INSERT INTO Dept_age
19、(Sdept,Avg_age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;,40,PPT學習交流,插入子查詢結果(續(xù)),RDBMS在執(zhí)行插入語句時會檢查所插元組是 否破壞表上已定義的完整性規(guī)則 實體完整性 參照完整性 用戶定義的完整性 NOT NULL約束 UNIQUE約束 值域約束,41,PPT學習交流,修 改,42,PPT學習交流,修改數(shù)據(jù),語句格式 UPDATE SET =,= WHERE ; 功能 修改指定表中滿足WHERE子句條件的元組,43,PPT學習交流,修改數(shù)據(jù)(續(xù)),SET子句 指定修改方式 要修改的列 修改后取值
20、WHERE子句 指定要修改的元組 缺省表示要修改表中的所有元組,44,PPT學習交流,修改數(shù)據(jù)(續(xù)),三種修改方式 1. 修改某一個元組的值 2. 修改多個元組的值 3. 帶子查詢的修改語句,45,PPT學習交流,1. 修改某一個元組的值,例5 將學生200215121的年齡改為22歲 UPDATE Student SET Sage=22 WHERE Sno= 200215121 ;,46,PPT學習交流,2. 修改多個元組的值,例6 將所有學生的年齡增加1歲 UPDATE Student SET Sage= Sage+1;,47,PPT學習交流,3. 帶子查詢的修改語句,例7 將計算機科學系全體學生的成績置零。 UPDATE SC SET Gra
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 協(xié)助家長辦年貨課件
- 健康素養(yǎng)促進課件
- 合肥科學實驗班數(shù)學試卷
- 河南省初三數(shù)學試卷
- 健康管理電教課件
- 2025-2030年中國手帕袋項目投資可行性研究分析報告
- 烏魯木齊市第七十七小學-企業(yè)報告(業(yè)主版)
- 2025年中國電路保護元器件行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 中國披薩連鎖店行業(yè)發(fā)展趨勢預測及投資戰(zhàn)略咨詢報告
- 2025年中國太陽能硅片硅錠行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報告
- HJ 651-2013 礦山生態(tài)環(huán)境保護與恢復治理技術規(guī)范(試行)
- SY-T 5333-2023 鉆井工程設計規(guī)范
- 冠脈介入進修匯報
- 敘事護理學智慧樹知到期末考試答案章節(jié)答案2024年中國人民解放軍海軍軍醫(yī)大學
- 2024四川省南部縣事業(yè)單位招聘45人歷年公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- PDCA提高臥床患者踝泵運動的執(zhí)行率
- NBT《風電場工程施工質量檢驗與評定規(guī)程》
- 兒科護理安全不良事件
- 中國硒化汞行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告2024-2029版
- 票務購票合同
- INSAR技術在城市地面沉降監(jiān)測中的應用
評論
0/150
提交評論