Java數(shù)據(jù)庫之SQL server數(shù)據(jù)查詢(一)_第1頁
Java數(shù)據(jù)庫之SQL server數(shù)據(jù)查詢(一)_第2頁
Java數(shù)據(jù)庫之SQL server數(shù)據(jù)查詢(一)_第3頁
Java數(shù)據(jù)庫之SQL server數(shù)據(jù)查詢(一)_第4頁
Java數(shù)據(jù)庫之SQL server數(shù)據(jù)查詢(一)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)查詢(一)第四章回顧以下代碼有什么錯誤?1、INSERTINTOStudents(SName,SAddress,SGrade,SEmail)VALUES(‘張無忌’,‘上?!?6)2、INSERTINTOStudents(SCode,SName,SAddress,SGrade,SEmail)VALUES(100,‘張三豐’,‘杭州',6,'ZSF@S')3、INSERTINTOStudentsInfo('姓名','地址','電子郵件')SELECTSName,SAddress,SEmailFROMStudents4、UpdateStudentsSetSName=‘胡斐’SetSSex=‘女‘WhereSName=‘胡非‘5、DeleteSNamefromStudents預習檢查1.ORDERBY語句有什么作用?2.常用的聚合函數(shù)有哪些?本章任務使用SQL語句對學生數(shù)據(jù)庫進行各項查詢操作本章目標理解查詢的機制使用SELECT語句進行基本查詢使用LIKE、BETWEEN、IN進行模糊查詢使用TOP語句限制返回行數(shù)使用ORDERBY對數(shù)據(jù)進行排序使用DISTINCT消除重復項使用聚合函數(shù)使用GROUPBY進行分組查詢什么是查詢客戶程序查詢請求查詢結(jié)果集SQLSERVERABCDEFG

SELECT*FROMSALES查詢產(chǎn)生一個虛擬表,看到的是表形式顯示的結(jié)果,但結(jié)果并不真正存儲,每次執(zhí)行查詢只是現(xiàn)從數(shù)據(jù)表中提取數(shù)據(jù),并按照表的形式顯示出來如何查詢學員編號學員姓名地址所在班級…….001張明全湖南長沙S201002李菲湖北宜昌S202003于寄謙甘肅天水S204004劉國正山東荷澤S201005周接輪臺灣新竹S204006鞏小妹香港龍灣S203007鞏大妹香港龍灣S203008張明敏北京順義S202009矛十八四川棉陽S204010羅林光陜西臨潼S202011司馬坡新疆喀什S201SELECT*FROMStudentsHWHERE所在班級=‘S202’S202陜西臨潼羅林光010…S202湖北宜昌李菲002S202北京順義張明敏008查詢的基本語法SELECT<列名>FROM<表名>[WHERE

<查詢條件表達式>][ORDERBY<排序的列名>[ASC或DESC]]

列名稱SELECT

SCode,SName,SAddress

表名FROMStudents查詢條件WHERE

SGrade=‘5’排序條件ORDERBY

SCodeSELECT SCode,SName,SAddressFROM StudentsWHERE SGrade=‘5’ORDERBY SCode數(shù)據(jù)查詢-基礎(chǔ)查詢?nèi)康男泻土蠸ELECT*FROMStudents

查詢部分行SELECT

SCode,SName,SAddressFROMStudentsWHERE

SAddress=‘襄樊'SELECT

SCode,SName,SAddressFROMStudentsWHERESAddress<>‘襄樊'數(shù)據(jù)查詢-列名使用AS來命名列SELECTSCode

AS

學員編號,SNameAS學員姓名,SAddressAS

學員地址

FROMStudentsWHERESAddress<>‘襄樊’SELECTSCode

+‘:’

+SNameAS

‘學員信息’

FROMStudents使用=來命名列SELECT‘學員信息’

=

SCode+’:’+SName

FROMStudents數(shù)據(jù)查詢-TOP限制行數(shù)限制固定行數(shù)SELECTTOP5SCode,SName,SAddressFROMStudentsWHERESGrade=‘3’返回百分之多少行SELECTTOP20PERCENT

SCode,SName,SAddressFROMStudentsWHERESGrade=‘3’數(shù)據(jù)查詢-排序升序排列按年級從小到大對學生進行排列:select*fromStudentsorderbySGrade降序排列按年級從大到小對學生進行排列:select*fromStudentsorderbySGradedesc數(shù)據(jù)查詢-排序按多列排序SELECTStudentIDAs學員編號,CourseIDas課程編號,ScoreAs成績

FROMScoreORDERBYCourseID,Score1、將ORDERBY后面的CourseID和Score的位置換一下,查詢結(jié)果顯示的方式相同嗎?2、要按課程號升序、成績降序排列該怎么實現(xiàn)?數(shù)據(jù)查詢-DISTINCTDISTINCT關(guān)鍵字可從SELECT語句的結(jié)果中除去重復的行。如果沒有指定DISTINCT,那么將返回所有行,包括重復的行。查詢學生表中有多少個不同的年級:selectdistinctSGradefromStudents查詢學生來自哪些不同的城市該如何實現(xiàn)?模糊查詢—LIKE查詢時,字段中的內(nèi)容并不一定與查詢內(nèi)容完全匹配,只要字段中含有這些內(nèi)容SELECTSNameAS姓名FROMStudentsWHERESNameLIKE'張%'思考:以下的SQL語句:SELECT*FROM數(shù)據(jù)表WHERE編號LIKE'00[^8]%[A,C]%‘可能會查詢出的編號值為()。A、9890ACDB、007_AFFC、008&DCGD、KK8C模糊查詢—ISNULL把某一字段中內(nèi)容為空的記錄查詢出來select*fromStudentswhereSEmailisnull把Students表中某些行的SEmail字段值刪掉后,使用ISNULL能查詢出來這些數(shù)據(jù)行嗎?模糊查詢—BETWEEN把某一字段中內(nèi)容在特定范圍內(nèi)的記錄查詢出來SELECTStudentID,ScoreFROMSCoreWHEREScoreBETWEEN60AND80上題中如果不使用“BETWEEN”可以實現(xiàn)嗎?模糊查詢—IN把某一字段中內(nèi)容與所列出的查詢內(nèi)容列表匹配的記錄查詢出來SELECTSNameAS學員姓名,SAddressAs地址FROMStudentsWHERESAddressIN('北京','廣州','上海')上題中如果不使用“IN”該如何實現(xiàn)?小結(jié)1.查詢電子郵件中帶有”w”的學生信息2.查詢地址是“武漢”或“上?!钡膶W生信息3.查詢課程號為1的所有成績信息4.查詢成績表中分數(shù)最高的前三個分數(shù)聚合函數(shù)

聚合函數(shù)是SQL中很重要的一部分,聚合函數(shù)不是對某個記錄進行操作,而是對表中或查詢到的所有記錄進行操作。SQL支持的聚合函數(shù)如下表:聚合函數(shù)含義count(*)統(tǒng)計選擇的記錄的個數(shù)count()統(tǒng)計特定列中值的個數(shù)sum()計算總和avg()計算平均值max()求最大值min()求最小值聚合函數(shù)SUMselectsum(Score)as總成績fromScorewhereStudentID=10004AVGselectavg(Score)as平均成績fromScorewhereCourseID=2COUNT(*)selectcount(*)as人數(shù)fromstudents聚合函數(shù)注意:聚合函數(shù)不能直接用在WHERE后面作為查詢條件,如下的語句是錯誤的:selectStudentIDfromStudentswhereScore=max(Score)MAXselectmax(Score)fromScorewhereCourseID=2MINselectmin(Score)fromScorewhereCourseID=2問題如果不是統(tǒng)計所有人所有課程的總成績,而是想求每一門課的平均績或者每個人的所有課的總成績怎么辦?分組匯總第一門課6個成績?nèi)∑骄档诙T課6個成績?nèi)∑骄档谌T課5個成績?nèi)∑骄捣纸M查詢—GROUPBYSELECT

CourseID,AVG(Score)AS課程平均成績FROMScoreGROUPBYCourseID問題:只顯示課程平均成績大于75分的數(shù)據(jù)怎么辦?分組查詢—HAVINGSELECT

CourseID,AVG(Score)AS課程平均成績FROMScoreGROUPBYCourseID

HAVINGAVG(Score)>=75注意:在GROUPBY子句中,必須指定列的名稱,而且必須是出現(xiàn)在select之后除聚合函數(shù)外的所有列。

如下的語句是錯誤的:SELECTStudentID,CourseID,AVG(Score)

AS課程平均成績FROMScore

GROUPBYCourseID分組查詢—對比WHEREGROUPBYHAVINGWHERE子句從數(shù)據(jù)源中去掉不符合其搜索條件的數(shù)據(jù)GR

溫馨提示

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

評論

0/150

提交評論