子查詢多表連接和系統(tǒng)函數(shù)_第1頁
子查詢多表連接和系統(tǒng)函數(shù)_第2頁
子查詢多表連接和系統(tǒng)函數(shù)_第3頁
子查詢多表連接和系統(tǒng)函數(shù)_第4頁
子查詢多表連接和系統(tǒng)函數(shù)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

子查詢多表連接和系統(tǒng)函數(shù)第一頁,共二十二頁,編輯于2023年,星期二回顧學生信息表添加一條記錄:

張小光,男,學號為s90311,21歲,來自泉州將張小光的地址改為平和刪除張小光的信息字段名稱數(shù)據(jù)類型說明stuId數(shù)字學生編號,采用自動編號stuName字符學生姓名,必填stuNo字符學號,必填,且不能重復,格式為"s903XX"stuSex字符性別,必填,只能是"男"或"女",默認為"男"stuAge數(shù)字年齡,必填,必須在15~50歲之間stuAddress字符家庭地址,可不填,默認為"地址不詳"學生信息表第二頁,共二十二頁,編輯于2023年,星期二課程目標子查詢多表聯(lián)接系統(tǒng)函數(shù)綜合案例第三頁,共二十二頁,編輯于2023年,星期二子查詢什么是子查詢子查詢是一個嵌套在select、insert、update、delete語句或其它查詢中的select查詢?yōu)槭裁匆褂米硬樵儾樵兙W(wǎng)頁設計機試考了90分的學生學號

selectstuNo from成績表

wherecourseName='網(wǎng)頁設計'andlabExam=90查詢網(wǎng)頁設計機試考了最高分的學生學號?查詢來自泉州的學生的考試成績?

第四頁,共二十二頁,編輯于2023年,星期二子查詢查詢網(wǎng)頁設計機試考了最高分的學生學號

selectstuNo from成績表

wherecourseName='網(wǎng)頁設計' andlabExam=( selectmax(labExam)from成績表

wherecourseName='網(wǎng)頁設計‘

)第五頁,共二十二頁,編輯于2023年,星期二子查詢查詢來自泉州的學生的考試成績方法一select*from成績表wherestuNoin( selectstuNofrom學生信息表

wherestuAddress='泉州‘)方法二select*fromScorewhereexists( select*fromStudent wherestuAddress='泉州' andScore.stuNo=Student.stuNo)第六頁,共二十二頁,編輯于2023年,星期二聯(lián)接為什么要使用聯(lián)接?查詢學生的C語言成績,要求顯示姓名,學號,筆試成績,機試成績?什么是聯(lián)接?聯(lián)接表示SQLServer應如何使用一個表中的數(shù)據(jù)來選擇另一個表中的行。通過聯(lián)接,可以根據(jù)各個表之間的邏輯關系從兩個或多個表中檢索數(shù)據(jù)第七頁,共二十二頁,編輯于2023年,星期二聯(lián)接聯(lián)接的類型內(nèi)聯(lián)接innerjoin外聯(lián)接

leftjoin或leftouterjoinrightjoin或rightouterjoinfulljoin或fullouterjoin交叉聯(lián)接crossjoin第八頁,共二十二頁,編輯于2023年,星期二聯(lián)接查詢學生的C語言成績,要求顯示姓名,學號,筆試成績,機試成績selectstuName,學生信息表.stuNo,writtenExam,labExamfrom學生信息表innerjoin成績表on學生信息表.stuNo=成績表.stuNowherecourseName='C語言'查詢學生的C語言成績,要求顯示姓名,學號,筆試成績,機試成績(缺考的學生也要顯示)

selectstuName,學生信息表.stuNo,writtenExam,labExam from學生信息表leftjoin成績表

on學生信息表.stuNo=成績表.stuNo wherecourseName='C語言'第九頁,共二十二頁,編輯于2023年,星期二SQLServer中的函數(shù)字符串函數(shù)日期函數(shù)數(shù)學函數(shù)系統(tǒng)函數(shù)第十頁,共二十二頁,編輯于2023年,星期二字符串函數(shù)SELECTSTUFF('ABCDEFG',2,3,'我的音樂我的世界')返回:A我的音樂我的世界EFG在一個字符串中,刪除指定長度的字符,并在該位置插入一個新的字符串STUFFSELECTCHARINDEX('ACCP','MyAccpCourse',1)返回:4用來尋找一個指定的字符串在另一個字符串中的起始位置CHARINDEX舉例描述函數(shù)名SELECTLEN('SQLServer課程')返回:12返回傳遞給它的字符串長度LENSELECTLOWER('SQLServer課程')返回:sqlserver課程把傳遞給它的字符串轉換為小寫LOWERSELECTUPPER('sqlserver課程')返回:SQLSERVER課程把傳遞給它的字符串轉換為大寫UPPERSELECTLTRIM('周智宇')返回:周智宇(后面的空格保留)清除字符左邊的空格LTRIMSELECTRTRIM('周智宇')返回:周智宇(前面的空格保留)清除字符右邊的空格RTRIMSELECTRIGHT('買賣提.吐爾松',3)返回:吐爾松從字符串右邊返回指定數(shù)目的字符RIGHTSELECTREPLACE('莫樂可切.楊可','可','蘭')返回:莫樂蘭切.楊蘭替換一個字符串中的字符REPLACE第十一頁,共二十二頁,編輯于2023年,星期二日期函數(shù)SELECTDATEPART(day,’01/15/2000’)返回:15日期中指定日期部分的整數(shù)形式DATEPARTSELECTGETDATE()返回:今天的日期取得當前的系統(tǒng)日期GETDATE舉例描述函數(shù)名SELECTDATEADD(mm,4,’01/01/99’)返回:以當前的日期格式返回05/01/99將指定的數(shù)值添加到指定的日期部分后的日期DATEADDSELECTDATEDIFF(mm,’01/01/99’,’05/01/99’)返回:4兩個日期之間的指定日期部分的區(qū)別DATEDIFFSELECTDATENAME(dw,’01/01/2000’)返回:Saturday日期中指定日期部分的字符串形式DATENAME第十二頁,共二十二頁,編輯于2023年,星期二數(shù)學函數(shù)SELECTSQRT(9)返回:3取浮點表達式的平方根SqrtSELECTABS(-43)返回:43取數(shù)值表達式的絕對值ABS舉例描述函數(shù)名SELECTCEILING(43.5)返回:44返回大于或等于所給數(shù)字表達式的最小整數(shù)CEILINGSELECTPOWER(5,2)返回:25取數(shù)值表達式的冪值POWERSELECTROUND(43.543,1)返回:43.5將數(shù)值表達式四舍五入為指定精度ROUNDSELECTSIGN(-43)返回:-1對于正數(shù)返回+1,對于負數(shù)返回-1,對于0則返回0SignSELECTFLOOR(43.5)返回:43取小于或等于指定表達式的最大整數(shù)FLOOR第十三頁,共二十二頁,編輯于2023年,星期二系統(tǒng)函數(shù)SELECTUSER_NAME(1)返回:從任意數(shù)據(jù)庫中返回“dbo”從給定的用戶ID返回用戶名USER_NAMESELECTCONVERT(VARCHAR(5),12345)返回:字符串12345用來轉變數(shù)據(jù)類型CONVERT舉例描述函數(shù)名SELECTCURRENT_USER返回:你登錄的用戶名返回當前用戶的名字CURRENT_USERSELECTDATALENGTH('中國A盟')返回:7返回用于指定表達式的字節(jié)數(shù)DATALENGTHSELECTHOST_NAME()返回:你所登錄的計算機的名字返回當前用戶所登錄的計算機名字HOST_NAMESELECTSYSTEM_USER返回:你當前所登錄的用戶名返回當前所登錄的用戶名稱SYSTEM_USER第十四頁,共二十二頁,編輯于2023年,星期二案例分析1—要求某公司印了一批充值卡,卡的密碼是隨機生成的,現(xiàn)在出現(xiàn)這個問題:

卡里面的“O和0”(哦和零)“i和1”(哎和一),用戶反映說看不清楚,公司決定,把存儲在數(shù)據(jù)庫中的密碼中所有的“哦”都改成“零”,把所有的“i”都改成“1”; 請編寫SQL語句實現(xiàn)以上要求;數(shù)據(jù)庫表名:Card;密碼字段名:PassWord;第十五頁,共二十二頁,編輯于2023年,星期二案例分析1—分析這是更新語句,需要使用UPDATE語句;因為牽涉到字符串的替換,需要使用到SQLServer中的函數(shù)Replace;第十六頁,共二十二頁,編輯于2023年,星期二案例分析1—T-SQL兩行SQL語句UpdateCardSetPassWord=Replace(PassWord,'O','0')UpdateCardSetPassWord=Replace(PassWord,'i','1')一行SQL語句Update CardSet PassWord=Replace(Replace(PassWord,'O','0'),'i','1')第十七頁,共二十二頁,編輯于2023年,星期二案例分析2—要求在數(shù)據(jù)庫表中有以下字符數(shù)據(jù),如:

13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2

現(xiàn)在希望通過SQL語句進行排序,并且首先要按照前半部分的數(shù)字進行排序,然后再按照后半部分的數(shù)字進行排需,輸出要排成這樣:

13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2數(shù)據(jù)庫表名:SellRecord;字段名:ListNumber;第十八頁,共二十二頁,編輯于2023年,星期二案例分析2—分析這是查詢語句,需要使用SELECT語句需要使用到ORDERBY進行排序,并且在ORDERBY的排序列中,也需要重新計算出排序的數(shù)字來前半部分的數(shù)字,可以從先找到“-”符號的位置,然后,取其左半部分,最后再使用Convert函數(shù)將其轉換為數(shù)字:

Convert(int,Left(ListNumber,CharIndex('-',ListNumber)-1))后半部分的數(shù)字,可以先找到“-”符號的位置,然后把從第一個位置到該位置的全部字符替換為空格,最后再使用Convert函數(shù)將其轉換為數(shù)字:

Convert(int,Stuff(ListNumber,1,Charindex('-',ListNumber),''))第十九頁,共二十二頁,編輯于2023年,星期二案例分析2—T-SQLSELECTListNumberFROM

SellRecordORDERBYConvert(int,Left(ListNumber,CharIndex('-',ListNumber)-1)),Convert(int,Stuff(ListNumber,1,Charind

溫馨提示

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

評論

0/150

提交評論