




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SQLSERVER數(shù)據(jù)庫(kù)基礎(chǔ)第四章 數(shù)據(jù)查詢2022/8/81中國(guó)職業(yè)教育聯(lián)盟課程體系中國(guó)職業(yè)教育聯(lián)盟課程體系成就百萬(wàn)精英2回顧3-1SQL是什么?Structured Query Language:結(jié)構(gòu)化查詢語(yǔ)言T-SQL是什么?Transact-SQL,是SQL的加強(qiáng)版,對(duì)功能進(jìn)行了擴(kuò)充:如變量說(shuō)明、流程控制、功能函數(shù)T-SQL的組成DML(數(shù)據(jù)操作語(yǔ)言)DCL(數(shù)據(jù)控制語(yǔ)言)DDL(數(shù)據(jù)定義語(yǔ)言) 3回顧3-2T-SQL中的運(yùn)算符有哪些?包括有: = = = ! !T-SQL中的邏輯運(yùn)算符有哪些?And邏輯與Not取反Or邏輯或 4回顧3-3代碼改錯(cuò) 1、INSERT INTO Stud
2、ents (SName,SAddress,SGrade,SEmail,SSEX) VALUES (張青裁,上海松江,6,ZQCS) 2、INSERT INTO Students (SCode, SName,SAddress,SGrade,SEmail,SSEX) VALUES (100,張青裁,上海松江,6,ZQCS,0) 3、INSERT INTO StudentsInfo (姓名, 地址, 電子郵件) SELECT SName,SAddress,SEmail FROM Students4、Update Students Set SName = 胡斐 Set SSex = 1 Where S
3、Name = 胡非 1、INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (張青裁,上海松江,6,ZQCS,0) 2、INSERT INTO Students ( SName,SAddress,SGrade,SEmail,SSEX) VALUES (張青裁,上海松江,6,ZQCS,0) 3、INSERT INTO StudentsInfo (姓名, 地址, 電子郵件) SELECT SName,SAddress,SEmail FROM Students 4、Update Students Set SName = 胡斐
4、, SSex = 1 Where SName = 胡非去掉了sCode這個(gè)自增列去掉了100主鍵,自增長(zhǎng)5預(yù)習(xí)檢查SQL語(yǔ)句中使用最頻繁的是增、刪、改、查中的哪種操作?查詢(query)SQL語(yǔ)句中,執(zhí)行查詢會(huì)用到的關(guān)鍵字是?selectSQL server中有哪四種系統(tǒng)內(nèi)置函數(shù)?字符串處理函數(shù)日期時(shí)間函數(shù)聚合函數(shù) 數(shù)學(xué)函數(shù)6本章任務(wù)使用select實(shí)現(xiàn)各種查詢。使用系統(tǒng)內(nèi)置函數(shù)實(shí)現(xiàn)一些特殊的排序。7理解查詢的機(jī)制熟練使用Select查詢數(shù)據(jù)掌握常用的Sql Server系統(tǒng)內(nèi)置函數(shù)本章目標(biāo)8什么是查詢?客戶程序查詢請(qǐng)求查詢結(jié)果集SQL SERVERA B C D E F G SELECT *
5、 FROM SALES查詢產(chǎn)生一個(gè)虛擬表,看到的是表形式顯示的結(jié)果,但結(jié)果并不真正存儲(chǔ),每次執(zhí)行查詢只是現(xiàn)從數(shù)據(jù)表中提取數(shù)據(jù),并按照表的形式顯示出來(lái)9怎么查的?SELECT * FROM StudentsH WHERE 所在班級(jí) = S202S202陜西臨潼羅林光010S202湖北宜昌李菲002S202北京順義張明敏008常用運(yùn)算符常用的邏輯運(yùn)算符如:常用運(yùn)算符常用的條件運(yùn)算符如:大多與C語(yǔ)言中的一樣,很容易理解12思考既然查詢得到的“結(jié)果集”的結(jié)構(gòu)類似于一張表,那么可以在“結(jié)果集”上繼續(xù)進(jìn)行查詢嗎?可以的。我們稱之為嵌套查詢13查詢的基本結(jié)構(gòu)查詢的基本結(jié)構(gòu)SELECT FROM WHERE
6、ORDER BY ASC或DESC14表結(jié)構(gòu)如下表的基本結(jié)構(gòu),表名為Score表中的數(shù)據(jù)如下15數(shù)據(jù)查詢-基礎(chǔ)SELECT * FROM Score SELECT StuNameFROM Score查詢?nèi)康男泻土胁樵儐瘟卸嗔胁樵僑ELECT StuName,course,scoreFROM Score16數(shù)據(jù)查詢中重命名列SELECT scoreId as 課程編號(hào),stuName as 姓名 ,course as 課程,score as 成績(jī)From scoreSELECT scoreId 課程編號(hào),stuName 姓名 ,course 課程,score 成績(jī)From scoreSELEC
7、T 課程編號(hào)=scoreId, 姓名=stuName , 課程=course, 成績(jī)=scoreFrom score在查詢中為列取別名方法一方法二方法三17數(shù)據(jù)查詢-空行常量列SELECT SName FROM Students WHERE SEmail IS NULLSELECT 姓名=SName,地址= SAddress,河北新龍 AS 學(xué)校名稱FROM Students查詢值為Null的行給查詢結(jié)果增加常量列18數(shù)據(jù)查詢-限制行數(shù)SELECT TOP 5 *FROM score WHERE Score=90SELECT TOP 20 Percent *FROM score WHERE S
8、core=90限制查詢結(jié)果的行數(shù)返回百分之多少行19小結(jié)1基本查詢。含所有列、單列、多列查詢Select * from 表名 where Select 列1,列2,列n from 表名 where 查詢時(shí)重命名列名SELECT scoreId as 課程編號(hào), stuName as 姓名 from 表名 SELECT scoreId 課程編號(hào), stuName 姓名 from 表名 SELECT課程編號(hào) = scoreId,姓名 = stuName from 表名 查詢?yōu)榭?null)的行,以及給結(jié)果加一個(gè)常量列SELECT SName FROM Students WHERE SEmail I
9、S NULLSELECT 姓名=SName, 地址= SAddress, 河北新龍 AS 學(xué)校名稱FROM Students 查詢時(shí)限制返回行數(shù)SELECT TOP 5 * FROM scoreSELECT TOP 20 Percent * FROM score 20條件查詢帶Between的范圍查詢帶in的范圍查詢SELECT * from score where score between 88 and 95SELECT * from score where score in (88,95)21條件查詢使用and來(lái)實(shí)現(xiàn)條件查詢使用or來(lái)實(shí)現(xiàn)條件查詢SELECT * from score w
10、here score 85 and course = htmlSELECT * from score where score 85 or course = html22Order by 子句的應(yīng)用Order by子句主要用于實(shí)現(xiàn)排序功能升序排列降序排列Select * from score order by score ascSelect * from score order by score desc23數(shù)據(jù)查詢-聚合函數(shù)24Group by 子句的應(yīng)用第一門課6個(gè)成績(jī)?nèi)∑骄档诙T課6個(gè)成績(jī)?nèi)∑骄档谌T課5個(gè)成績(jī)?nèi)∑骄?5分組查詢GROUP BY分組查詢就是將查詢的結(jié)果按照一列或一些列
11、的值進(jìn)行分組.這樣就可以對(duì)每一組進(jìn)行相應(yīng)的操作.Select stuname 學(xué)員姓名,course 課程名稱,score as 學(xué)員成績(jī)From scoreGroup by stuname,score,course26Having子句的應(yīng)用WHEREGROUP BYHAVINGWHERE子句從數(shù)據(jù)源中去掉不符合其搜索條件的數(shù)據(jù)GROUP BY子句搜集數(shù)據(jù)行到各個(gè)組中,統(tǒng)計(jì)函數(shù)為各個(gè)組計(jì)算統(tǒng)計(jì)值HAVING子句去掉不符合其組搜索條件的各組數(shù)據(jù)行27分組查詢思考將工資大于2000 的員工按部門分組,將人數(shù)大于1的部門及人數(shù)列出來(lái)。思考:分析以下T-SQL的含義SELECT 部門編號(hào), COUNT
12、(*)FROM 員工信息表WHERE 工資 = 2000GROUP BY 部門編號(hào)HAVING COUNT(*) 128小結(jié)1范圍查詢betweenand in分組查詢 group byHaving子句去掉不符合其組搜索條件的各組數(shù)據(jù)行實(shí)現(xiàn)結(jié)果集的升序降序Order by 字段 ascorder by 字段 desc29多表聯(lián)接查詢定義:當(dāng)查詢中需要使用的數(shù)據(jù)不在一張表中時(shí),需要使用多表查詢多表查詢的分類:內(nèi)聯(lián)結(jié)(INNER JOIN)外聯(lián)結(jié)左外聯(lián)結(jié) (LEFT JOIN)右外聯(lián)結(jié) (RIGHT JOIN)完整外聯(lián)結(jié)(FULL JOIN)交叉聯(lián)結(jié)(CROSS JOIN)30多表聯(lián)結(jié)查詢Scor
13、eStudentsIDCourseIDScore122300100100200297896776300381StundentsSName梅超風(fēng)陳玄風(fēng)陸乘風(fēng)曲靈風(fēng)SCode1234查詢結(jié)果SName梅超風(fēng)陳玄風(fēng)陳玄風(fēng)陸乘風(fēng)CourseIDScore00100100200297896776陸乘風(fēng)00381曲靈風(fēng)NULLNULL31多表聯(lián)結(jié)查詢內(nèi)聯(lián)結(jié)內(nèi)連接關(guān)鍵:找出連接的表之間關(guān)系連接的結(jié)果是兩個(gè)表中的公共數(shù)據(jù)使用的表數(shù)據(jù)32多表聯(lián)結(jié)查詢內(nèi)聯(lián)結(jié)SELECT *FROMuserinfo as a inner join deptinfo as b on a.deptid = b.deptid例子33SQ
14、L Server中的函數(shù)字符串函數(shù)日期函數(shù)數(shù)學(xué)函數(shù)聚合函數(shù)34字符串函數(shù)SELECT STUFF(ABCDEFG, 2, 3, 我的音樂(lè)我的世界)返回:A我的音樂(lè)我的世界EFG在一個(gè)字符串中,刪除指定長(zhǎng)度的字符,并在該位置插入一個(gè)新的字符串STUFFSELECT CHARINDEX(ACCP,My Accp Course,1 )返回:4用來(lái)尋找一個(gè)指定的字符串在另一個(gè)字符串中的起始位置CHARINDEX舉例描述函數(shù)名SELECT LEN(SQL Server課程)返回:12返回傳遞給它的字符串長(zhǎng)度LENSELECT LOWER(SQL Server課程)返回:sql server課程把傳遞給它
15、的字符串轉(zhuǎn)換為小寫LOWERSELECT UPPER(sql server課程)返回:SQL SERVER課程把傳遞給它的字符串轉(zhuǎn)換為大寫UPPERSELECT LTRIM ( 周智宇 )返回:周智宇 (后面的空格保留)清除字符左邊的空格LTRIMSELECT RTRIM ( 周智宇 )返回: 周智宇(前面的空格保留)清除字符右邊的空格RTRIMSELECT RIGHT(買賣提.吐?tīng)査?3)返回:吐?tīng)査蓮淖址疫叿祷刂付〝?shù)目的字符RIGHTSELECT REPLACE(莫樂(lè)可切.楊可,可,蘭)返回:莫樂(lè)蘭切.楊蘭替換一個(gè)字符串中的字符REPLACE35日期函數(shù)SELECT DATEPART(
16、day, 01/15/2000)返回:15日期中指定日期部分的整數(shù)形式DATEPARTSELECT GETDATE()返回:今天的日期取得當(dāng)前的系統(tǒng)日期GETDATE舉例描述函數(shù)名SELECT DATEADD(mm,4,01/01/99)返回:以當(dāng)前的日期格式返回05/01/99將指定的數(shù)值添加到指定的日期部分后的日期DATEADDSELECT DATEDIFF(mm,01/01/99,05/01/99)返回:4兩個(gè)日期之間的指定日期部分的區(qū)別DATEDIFFSELECT DATENAME(dw,01/01/2000)返回:Saturday日期中指定日期部分的字符串形式DATENAME36數(shù)學(xué)
17、函數(shù)SELECT SQRT(9)返回:3取浮點(diǎn)表達(dá)式的平方根SqrtSELECT ABS(-43)返回:43取數(shù)值表達(dá)式的絕對(duì)值A(chǔ)BS舉例描述函數(shù)名SELECT CEILING(43.5)返回:44返回大于或等于所給數(shù)字表達(dá)式的最小整數(shù)CEILINGSELECT POWER(5,2)返回:25取數(shù)值表達(dá)式的冪值POWERSELECT ROUND(43.543,1)返回:43.5將數(shù)值表達(dá)式四舍五入為指定精度ROUNDSELECT SIGN(-43)返回:-1對(duì)于正數(shù)返回+1,對(duì)于負(fù)數(shù)返回-1,對(duì)于0 則返回0SignSELECT FLOOR(43.5)返回:43取小于或等于指定表達(dá)式的最大整數(shù)
18、FLOOR37案例分析1要求某公司印了一批充值卡,卡的密碼是隨機(jī)生成的,現(xiàn)在出現(xiàn)這個(gè)問(wèn)題: 卡里面的“O和0”(哦和零)“i和1”(哎和一),用戶反映說(shuō)看不清楚,公司決定,把存儲(chǔ)在數(shù)據(jù)庫(kù)中的密碼中所有的“哦”都改成“零”,把所有的“i”都改成“1”;請(qǐng)編寫SQL語(yǔ)句實(shí)現(xiàn)以上要求;數(shù)據(jù)庫(kù)表名:Card;密碼字段名:PassWord;38案例分析1分析這是更新語(yǔ)句,需要使用UPDATE語(yǔ)句;因?yàn)闋可娴阶址奶鎿Q,需要使用到SQL Server中的函數(shù)Replace;39案例分析1T-SQLUpdate Card Set PassWord = Replace(PassWord ,O,0)Updat
19、e Card Set PassWord = Replace(PassWord ,i,1)Update Card Set PassWord = Replace(Replace(PassWord ,O,0),i,1)兩行SQL語(yǔ)句一行SQL語(yǔ)句40案例分析2要求在數(shù)據(jù)庫(kù)表中有以下字符數(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)在希望通過(guò)SQL語(yǔ)句進(jìn)行排序,并且首先要按照前半部分的數(shù)字進(jìn)行排序,然后再按照后半部分的數(shù)字進(jìn)行排需,輸出要排成這樣:13-1、13-2、13-3、13-10、13-11、13-15、
20、13-18、13-100、13-108、14-1、14-2數(shù)據(jù)庫(kù)表名:SellRecord;字段名:ListNumber;41案例分析2分析這是查詢語(yǔ)句,需要使用SELECT語(yǔ)句需要使用到ORDER BY進(jìn)行排序,并且在ORDER BY的排序列中,也需要重新計(jì)算出排序的數(shù)字來(lái)前半部分的數(shù)字,可以從先找到“-”符號(hào)的位置,然后,取其左半部分,最后再使用Convert函數(shù)將其轉(zhuǎn)換為數(shù)字:Convert(int, Left(ListNumber, CharIndex(-, ListNumber)-1)后半部分的數(shù)字,可以先找到“-”符號(hào)的位置,然后把從第一個(gè)位置到該位置的全部字符替換為空格,最后再使用C
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中介留學(xué)合同范本
- 個(gè)人創(chuàng)業(yè)合同范本
- 勞務(wù)合同范例文件
- 廚房排煙整改合同范本
- 原料加工合同范本
- 單位車輛出售合同范本
- 合伙創(chuàng)業(yè)交租合同范本
- 合資房協(xié)議合同范本
- 衛(wèi)浴工地供貨合同范例
- 合作合同范本代加工
- 果實(shí)酚類和揮發(fā)性物質(zhì)含量特征及其與果實(shí)品質(zhì)關(guān)系的研究
- 2023年?yáng)|華高級(jí)中學(xué)中考自招數(shù)學(xué)復(fù)習(xí)題及答案解析
- 結(jié)果比過(guò)程重要辯論賽
- JTG C10-2007 公路勘測(cè)規(guī)范
- 工程結(jié)算審核項(xiàng)目投標(biāo)技術(shù)方案造價(jià)咨詢服務(wù)方案
- 高中英語(yǔ)2024屆新高考詞匯轉(zhuǎn)換匯總(共六組)
- 2024年廣州市高三一模高考英語(yǔ)試卷試題答案詳解(含作文范文)
- 《養(yǎng)老護(hù)理員》-課件:職業(yè)安全和個(gè)人防護(hù)知識(shí)
- GB 19644-2024食品安全國(guó)家標(biāo)準(zhǔn)乳粉和調(diào)制乳粉
- TCASWSS 025-2024 老年大學(xué)課程設(shè)置規(guī)范
- 2024年河南省專升本考試管理學(xué)測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論