教學(xué)電子課件c語(yǔ)言和數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)_第1頁(yè)
教學(xué)電子課件c語(yǔ)言和數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)_第2頁(yè)
教學(xué)電子課件c語(yǔ)言和數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)_第3頁(yè)
教學(xué)電子課件c語(yǔ)言和數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)_第4頁(yè)
教學(xué)電子課件c語(yǔ)言和數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第九章數(shù)據(jù)查詢基礎(chǔ)Students表中插入一條記錄回顧和作業(yè)點(diǎn)評(píng)2-1INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES('張青裁','上海松江',6,'')INSERTINTOStudents(SCode,SName,SAddress,SGrade,SEmail,SSEX)VALUES(100,'張青裁','上海松江',6,'',0)INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES('張青裁','上海松江',6,'',0)如果SCode為標(biāo)識(shí)列,Students表中插入一條記錄字段個(gè)數(shù)不一致不能為標(biāo)識(shí)列字段賦值INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES('張青裁','上海松江',6,'',0)

INSERTINTOStudentsInfo('姓名','地址','電子郵件')SELECTSName,SAddress,SEmailFROMStudents一次插入多條學(xué)生記錄INSERTINTOStudentsInfo(姓名,地址,電子郵件)SELECTSName,SAddress,SEmailFROMStudentsUPDATEStudentsSETSName='胡斐'SETSSex='1'WHERESName='胡非'回顧和作業(yè)點(diǎn)評(píng)2-2UPDATEStudentsSETSName='胡斐',SSex='1'

WHERESName='胡非'修改學(xué)生記錄字段名不需要單引號(hào)出現(xiàn)了2個(gè)SET子句預(yù)習(xí)檢查從學(xué)生表中查詢?nèi)康臄?shù)據(jù),SQL語(yǔ)句怎么寫(xiě)?查詢排序使用的關(guān)鍵字是什么?本章任務(wù)查詢學(xué)生信息查詢考試信息掌握查詢的機(jī)制使用SELECT語(yǔ)句進(jìn)行條件查詢使用表達(dá)式、運(yùn)算符和函數(shù)實(shí)現(xiàn)查詢掌握查詢排序本章目標(biāo)什么是查詢客戶端程序SQLServerSELECT*FROMSALES查詢產(chǎn)生一個(gè)虛擬表看到的是表形式顯示的結(jié)果,但結(jié)果并不真正存儲(chǔ)每次執(zhí)行查詢只是從數(shù)據(jù)表中提取數(shù)據(jù),并按照表的形式顯示出來(lái)ABCDEFG

查詢結(jié)果集查詢請(qǐng)求學(xué)生編號(hào)學(xué)生姓名地址所在班級(jí)……001張明全湖南長(zhǎng)沙S201002李菲湖北宜昌S202003于寄謙甘肅天水S204004劉國(guó)正山東荷澤S201005周接輪臺(tái)灣新竹S204006鞏小妹香港龍灣S203007鞏大妹香港龍灣S203008張明敏北京順義S202009矛十八四川棉陽(yáng)S204010羅林光陜西臨潼S202011司馬坡新疆喀什S201SELECT*FROMStudentsWHERE所在班級(jí)

='S202'S202陜西臨潼羅林光010…S202湖北宜昌李菲002S202北京順義張明敏008查詢機(jī)制簡(jiǎn)介SELECT<列名>FROM<表名>[WHERE

<查詢條件表達(dá)式>][ORDERBY<排序的列名>[ASC或DESC]]SELECT SCode,SName,SAddressFROM StudentsWHERE SSEX=0ORDERBY SCode查詢語(yǔ)法列名稱表名過(guò)濾條件排序條件SELECT

SCode,SName,SAddressFROMStudentsWHERE

SSEX=0ORDERBY

SCode查詢?nèi)康男泻土蠸ELECT*FROMStudents

數(shù)據(jù)查詢基礎(chǔ)2-1SELECT*FROMCourse

查詢?nèi)繉W(xué)生信息查詢?nèi)靠颇啃畔⒉樵儾糠至蠸ELECTSName,SAddressFROMStudents

查詢學(xué)生的姓名和地址演示示例1:簡(jiǎn)單數(shù)據(jù)查詢數(shù)據(jù)查詢基礎(chǔ)2-2查詢部分行或列SELECT

SName,SGradeFROMStudentsWHERESAddress='北京'SELECTSName,SAddressFROMStudentsWHERESsex=1查詢“北京”地區(qū)的學(xué)生姓名和年級(jí)查詢女學(xué)生姓名和地址演示示例1:簡(jiǎn)單數(shù)據(jù)查詢練習(xí)——查詢學(xué)生相關(guān)基本信息需求說(shuō)明:查詢?nèi)縎1的學(xué)生信息查詢?nèi)縎2的學(xué)生的姓名和電話查詢?nèi)縎1女同學(xué)的信息查詢課時(shí)超過(guò)60的科目信息完成時(shí)間:10分鐘使用AS來(lái)命名列SELECTSCode

AS

學(xué)生編號(hào),SNameAS學(xué)生姓名,

SAddressAS

學(xué)生地址

FROMStudentsWHERESAddress<>'河南新鄉(xiāng)'SELECTFirstName+'.'

+LastNameAS

姓名

FROMEmployees使用=來(lái)命名列SELECT

姓名

=

FirstName+'.'+LastName

FROMEmployees注意:1.+連接的數(shù)據(jù)類型必須兼容2.如果+連接字符型數(shù)據(jù),結(jié)果為字符串?dāng)?shù)據(jù)的連接3.如果+連接數(shù)值型數(shù)據(jù),結(jié)果為數(shù)值的和數(shù)據(jù)查詢-列別名演示示例2:列別名查詢數(shù)據(jù)查詢-空行、常量列查詢空行SELECTSNameFROMStudentsWHERESEmailISNULL使用常量列SELECT姓名=SName,地址=SAddress,‘北京新興橋'AS學(xué)校名稱FROMStudents原來(lái)有數(shù)據(jù),但數(shù)據(jù)被清除的列這樣能怎樣查出來(lái)?演示示例3:查詢空值、常量列數(shù)據(jù)查詢-限制行數(shù)限制固定行數(shù)SELECTTOP5SName,SAddressFROMStudentsWHERESSex=0返回百分之多少行SELECTTOP20PERCENTSName,SAddressFROMStudentsWHERESSex=0與取固定的數(shù)據(jù)行相比,提取固定百分比數(shù)據(jù)還能得到何種信息?演示示例4:查詢限制行數(shù)列指導(dǎo)——查詢學(xué)生相關(guān)復(fù)雜信息2-1訓(xùn)練要點(diǎn):使用SELECT語(yǔ)句查詢數(shù)據(jù)需求說(shuō)明:S2的科目名稱S2男同學(xué)的姓名和住址無(wú)電子郵件的學(xué)生姓名和年級(jí)信息出生日期在1990年之后的S2的學(xué)生姓名和年級(jí)信息參加了日期為2010年2月15日的“HTML和CSS網(wǎng)頁(yè)技術(shù)”科目考試的成績(jī)信息講解需求說(shuō)明指導(dǎo)——查詢學(xué)生相關(guān)復(fù)雜信息2-2難點(diǎn)分析:注意各個(gè)表之間的關(guān)系,例如通過(guò)查看S2的年級(jí)編號(hào)在科目表中查詢對(duì)應(yīng)科目完成時(shí)間:20分鐘SELECTSubjectNameFROMSubject

WHEREGradeId=2查詢單列排序升序排列SELECTStudentIDAS學(xué)生編號(hào),(Score*0.9+5)AS綜合成績(jī)FROMScoreWHERE(Score*0.9+5)>60ORDERBYScore降序排列SELECTStudentID,ScoreFROMScoreORDERBYScoreSELECTStudentID,ScoreFROMScoreORDERBYScoreDESC演示示例5:查詢排序按多列排序SELECTStudentIDAS學(xué)生編號(hào),CourseIDAS課程ID,ScoreAS成績(jī)FROMScoreWHEREScore>60ORDERBYCourseID,Score1、如果成績(jī)按升序,課程編號(hào)按降序,該如何編寫(xiě)?2、排序中的列,可以使用表達(dá)式嗎?

——

如果不可以,請(qǐng)說(shuō)明原因

——

如果可以,請(qǐng)舉例說(shuō)明查詢多列排序演示示例5:查詢排序小結(jié)

編寫(xiě)SQL語(yǔ)句:

1、查詢河北的男同學(xué)

2、查詢考試成績(jī)前五名的分?jǐn)?shù)參考答案練習(xí)——使用排序查詢學(xué)生相關(guān)信息需求說(shuō)明:查詢學(xué)生相關(guān)信息查詢科目相關(guān)信息查詢成績(jī)相關(guān)信息完成時(shí)間:25分鐘常用的幾類函數(shù)字符串函數(shù)用于控制返回給用戶的字符串日期函數(shù)用于操作日期值數(shù)學(xué)函數(shù)用于對(duì)數(shù)值進(jìn)行代數(shù)運(yùn)算系統(tǒng)函數(shù)獲取有關(guān)SQLServer中對(duì)象和設(shè)置的系統(tǒng)信息SQLServer中的函數(shù)函數(shù)名描述示例CHARINDEX尋找一個(gè)指定的字符串在另一個(gè)字符串中的起始位置SELECTCHARINDEX('JBNS','MyJbnsCourse',1)返回:4LEN返回傳遞給它的字符串長(zhǎng)度SELECTLEN('SQLServer課程')返回:12UPPER把傳遞給它的字符串轉(zhuǎn)換為大寫(xiě)SELECTUPPER('sqlserver課程')返回:SQLSERVER課程LTRIM清除字符左邊的空格SELECTLTRIM('周智宇')返回:周智宇(后面的空格保留)RTRIM清除字符右邊的空格SELECTRTRIM('周智宇')返回:周智宇(前面的空格保留)RIGHT從字符串右邊返回指定數(shù)目的字符SELECTRIGHT('買賣提.吐?tīng)査?,3)返回:吐?tīng)査蒖EPLACE替換一個(gè)字符串中的字符SELECTREPLACE('莫樂(lè)可切.楊可','可','蘭')返回:莫樂(lè)蘭切.楊蘭STUFF在一個(gè)字符串中,刪除指定長(zhǎng)度的字符,并在該位置插入一個(gè)新的字符串SELECTSTUFF('ABCDEFG',2,3,'我的音樂(lè)我的世界')返回:A我的音樂(lè)我的世界EFG字符串函數(shù)函數(shù)名描述示例GETDATE取得當(dāng)前的系統(tǒng)日期SELECTGETDATE()返回:今天的日期DATEADD將指定的數(shù)值添加到指定的日期部分后的日期SELECTDATEADD(mm,4,'01/01/2009')返回:以當(dāng)前的日期格式返回05/01/2009DATEDIFF兩個(gè)日期之間的指定日期部分的間隔SELECTDATEDIFF(mm,'01/01/2009','05/01/2009')返回:4DATENAME日期中指定日期部分的字符串形式SELECTDATENAME(dw,'01/01/2000')返回:Saturday或星期六DATEPART日期中指定日期部分的整數(shù)形式SELECTDATEPART(day,'01/15/2000')返回:15日期函數(shù)函數(shù)名描述示例RAND返回從0到1之間的隨機(jī)float值SELECTRAND()返回:0.79288062146374ABS取數(shù)值表達(dá)式的絕對(duì)值SELECTABS(-43)返回:43CEILING取大于或等于指定數(shù)值、表達(dá)式的最小整數(shù)SELECTCEILING(43.5)返回:44FLOOR取小于或等于指定表達(dá)式的最大整數(shù)SELECTFLOOR(43.5)返回:43POWER取數(shù)值表達(dá)式的冪值SELECTPOWER(5,2)返回:25ROUND將數(shù)值表達(dá)式四舍五入為指定精度SELECTROUND(43.543,1)返回:43.500SIGN對(duì)于正數(shù)返回+1,對(duì)于負(fù)數(shù)返回-1,對(duì)于0則返回0SELECTSIGN(-43)返回:-1SQRT取浮點(diǎn)表達(dá)式的平方根SELECTSQRT(9)返回:3數(shù)學(xué)函數(shù)函數(shù)名描述示例CONVERT用來(lái)轉(zhuǎn)變數(shù)據(jù)類型SELECTCONVERT(VARCHAR(5),12345)返回:字符串12345CURRENT_USER返回當(dāng)前用戶的名字SELECTCURRENT_USER返回:你登錄的用戶名DATALENGTH返回用于指定表達(dá)式的字節(jié)數(shù)SELECTDATALENGTH('中國(guó)A聯(lián)盟')返回:5HOST_NAME返回當(dāng)前用戶所登錄的計(jì)算機(jī)名字SELECTHOST_NAME()返回:你所登錄的計(jì)算機(jī)的名字SYSTEM_USER返回當(dāng)前所登錄的用戶名稱SELECTSYSTEM_USER返回:你當(dāng)前所登錄的用戶名USER_NAME從給定的用戶ID返回用戶名SELECTUSER_NAME(1)返回:從任意數(shù)據(jù)庫(kù)中返回“dbo”系統(tǒng)函數(shù)案例1—問(wèn)題某公司印了一批充值卡,卡的密碼是隨機(jī)生成的,現(xiàn)在出現(xiàn)這個(gè)問(wèn)題:

卡里面的字母“O和數(shù)字0”、“字母i和數(shù)字1”,用戶反映說(shuō)看不清楚,公司決定,把存儲(chǔ)在數(shù)據(jù)庫(kù)中的密碼中所有的“O”都改成“0”,把所有的“i”都改成“1”;請(qǐng)編寫(xiě)SQL語(yǔ)句實(shí)現(xiàn)以上要求數(shù)據(jù)庫(kù)表名:Card密碼列名:PassWord實(shí)現(xiàn)卡密碼更新的功能,需要使用UPDATE語(yǔ)句牽涉到字符串的替換,需要使用到SQLServer中的函數(shù)REPLACE()案例1—分析案例1—T-SQL兩行SQL語(yǔ)句UPDATECardSETPassWord=REPLACE(PassWord,'O','0')UPDATECardSETPassWord=REPLACE(PassWord,'i','1')一行SQL語(yǔ)句UPDATECardSET PassWord=REPLACE(REPLACE(PassWord,'O','0'),'i','1')演示示例6:修改卡密碼在數(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、13-18、13-100、13-108、14-1、14-2數(shù)據(jù)庫(kù)表名:SellRecord列名:ListNumber案例2—問(wèn)題排序:ORDERBY在ORDERBY的排序列中,需要重新計(jì)算出排序的數(shù)字前半部分的數(shù)字:找到“-”符號(hào)的位置取其左半部分使用CONVERT函數(shù)將其轉(zhuǎn)換為數(shù)字:后半部分的數(shù)字:找到“-”符號(hào)的位置把從第一個(gè)位置到該位置的全部字符替換為空格使用CONVERT函數(shù)將其轉(zhuǎn)換為數(shù)字:案例2—分析CONVERT(INT,LEFT(ListNumber,CHARINDEX('-',ListNumber)-1))CONVERT(INT,STUFF(ListNumber,1,CHARINDEX('-',ListNumber),''))SELECTListNumberFROMSellRecordORDERBY

CONVERT(int,LEFT(ListNumber,CHARINDEX('-',ListNumber)-1)),CONVERT(int,STUFF(ListNumber,1,CHARINDEX('-',ListNumber),''))案例2—T-SQL演示示例7:字符

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論