版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
西安歐亞學院教案課程名稱數(shù)據(jù)庫技術應用學時總數(shù)64任課教師李淑玲、田西壯、史博文適用專業(yè)數(shù)據(jù)科學與大數(shù)據(jù)技術課次13審批人戴道成章節(jié)題目第四章數(shù)據(jù)查詢4.1SELECT語句4.2單表查詢審批時間2024.1教學目標設計1、掌握select語句的使用;2、能夠獨立完成單表查詢實操練習教學重點使用select語句對數(shù)據(jù)表記錄進行查詢操作教學難點使用select語句完成數(shù)據(jù)記錄查詢操作教學媒體與資源選擇PPT演示,電腦和投影儀課堂教學創(chuàng)新點混合式教學方式,利用智慧樹平臺視頻資源進行理論內(nèi)容講解。課程思政元素體現(xiàn)及切入點(可選)講解數(shù)據(jù)查詢操作,堅持科學的價值觀和道德觀。教學內(nèi)容及過程設計1.內(nèi)容回顧(5分)2.引入(5分)3.select語句(10分)Mysql中使用select語句可以從數(shù)據(jù)庫中快捷方便地檢索、統(tǒng)計或輸出數(shù)據(jù),該語句的執(zhí)行過程是從數(shù)據(jù)庫中選取匹配的特定行和列,并將這些數(shù)據(jù)組成一個結果集,然后以一張臨時表的形式返回。Select語句功能強大,常用格式為;Select[all|distinct|distinctrow]<目標列表達式1>[,<目標列表達式2>,…]from<數(shù)據(jù)源名1>[,<數(shù)據(jù)源名2>,…][where<條件表達式>][groupby<列名1>[having<條件表達式>]][orderby<列名2>][asc|diesc]][limit[m,]n];注意:Select語句中所有可選子句必須依照語法格式所羅列的順序使用。查詢數(shù)據(jù)是指用戶根據(jù)不同的需求、使用不同的查詢方式在數(shù)據(jù)表中獲取自己所需要的數(shù)據(jù),是數(shù)據(jù)庫操作中最重要、也是使用最頻繁的一種操作。查詢數(shù)據(jù)需要使用數(shù)據(jù)查詢語言DQL:其基本結構是使用SELECT子句,F(xiàn)ROM子句和WHERE子句的組合來查詢一條或多條數(shù)據(jù)。Select語句既可以完成簡單的單表查詢,也可以實現(xiàn)復雜的連接查詢和嵌套查詢(多表查詢)單表查詢與操作(60分)一張數(shù)據(jù)表中的數(shù)據(jù)進行查詢操作,即單表查詢操作,僅涉及一個表的查詢。Select語句中,<目標列表達式>用于指定需要查詢的內(nèi)容,包括字段名、算術表達式、字符串常量、函數(shù)和列別名等。若要查詢的字段有多個,需要逗號分割,查詢結果返回順序依照select指定字段的次序輸出。4.2.1選擇字段(1)查詢所有字段select列名1,列名2,…fromtable_name;兩種形式: 1)查詢所有字段時,需要在SELECT語句中指定所有的字段名; 2)使用“*”通配符代替所有字段。操作:(1)查詢?nèi)w學生的詳細信息。Selectstudnetno,studentname,sex,birthday,native,nation,classnofromtb_student;(結果集順序與select指定的列順序一致)Select*fromtb_student;(結果集順序與表中列順序一致)(2)查詢所有班級的詳細信息。Select*fromtb_class;(2)查詢指定字段查詢時僅對感興趣的字段進行輸出,只需指定多個字段名,每個字段名之間用逗號分隔,基本的語法格式是:selectcolumn_name1,column_name2,···fromtable_name;操作:(1)查詢所有班級的班級編號、所屬學院和班級名稱。Selectclassno,department,classnamefromtb_class;(結果集順序與select指定的列順序一致)(2)從班級表中查詢出所有的院系名稱。Selectdepartmentfromtb_class;去掉重復記錄:selectdistinctdepartmentfromtb_class;注意:distinct應用于select子句中的所有目標列,而不是它后面的第一個指定列。(3)查詢經(jīng)過計算的值Select子句的<目標列表達式>不僅可以是表中的字段名,也可以是表達式,還可以是字符串常量、函數(shù)等。使用算術運算符來對查詢的數(shù)據(jù)進行一些簡單的計算。操作:查詢?nèi)w學生的姓名、性別和年齡Selectstudentname,sex,year(now())-year(birthday)fromtb_student;(4)定義字段的別名可以在select子句的目標列表達式之后添加as子句,指定查詢結果集中列的別名。定義別名的格式:字段名[as]字段別名示例:查詢?nèi)w學生的姓名、性別和年齡,要求結果集中列名同前。Selectstudentnameas姓名,sex性別,year(now())-year(birthday)年齡fromtb_student;4.2.2選擇指定記錄(條件查詢)用戶查詢時只需要查詢表中的指定記錄,可以使用where子句對數(shù)據(jù)進行過濾。語法格式是:select目標列表達式1,目標列表達式2,…from表名where查詢條件;(1)查詢課時大于等于48學時的課程名稱及學分。Selectcoursename,credit,coursehourfromtb_scorewherecoursehour>=48;(2)查詢少數(shù)民族學生的姓名、性別、籍貫和民族。Selectstudentname,sex,native,nationfromtb_studentwherenation!=‘漢’;范圍查詢(betweenand):selectcolumn_name1,column_name2,···fromtable_namewherecolumn_name[not]betweenvalue1andvalue2;操作:(1)查詢出生日期在1997-01-01和1997-12-31之間的學生姓名、性別和出生日期Selectstudentname,sex,birthdayfromtb_studentwherebirthdaybetween‘1997-01-01’and‘1997-12-31’;(2)查詢出生日期不在1997-01-01和1997-12-31之間的學生姓名、性別和出生日期Selectstudentname,sex,birthdayfromtb_studentwherebirthdaynotbetween‘1997-01-01’and‘1997-12-31’;集合查詢(in):selectcolumn_name1,column_name2,···fromtable_namewherecolumn_name[not]in(value1,value2,···);(1)查詢籍貫是北京、天津和上海的學生信息Select*fromtb_studentWherenativein(‘北京’,’天津’,’上海’);(2)查詢籍貫不是北京、天津和上海的學生信息Select*fromtb_studentWherenativenotin(‘北京’,’天津’,’上?!?;字符串匹配查詢(like):selectcolumn_name1,column_name2,···fromtable_namewherecolumn_name[not]like‘匹配串’;說明:匹配串可以是一個完整的字符串常量,也可以含有通配符。通配符用于字符串模糊匹配,常用的通配符有兩種“%”和“_”。其中,%代表任意長度的字符串,包括長度為零的字符;_(下劃線)代表任意單個字符。能進行匹配的字段可以是字符型、文本型、日期時間型,運算返回結果是邏輯值TRUE或FALSE。操作:(1)查詢學號為2013110201的學生的詳細情況Select*fromtb_studentwherestudentnolike‘2013110201’;(2)查詢所有姓“王”的學生的學號、姓名和班號Selectstudentno,studentname,classnofromtb_studentWherestudentnamelike‘王%’;(3)查詢所有不姓“王”的學生的學號、姓名和班號Selectstudentno,studentname,classnofromtb_studentWherestudentnamenotlike‘王%’;(4)查詢姓名中包含“林”字的學生學號、姓名和班號Selectstudentno,studentname,classnofromtb_studentwherestudentnolike‘%林%’;(5)查詢姓“王”且姓名長度為三個中文字的學生的學號、姓名和班號Selectstudentno,studentname,classnofromtb_studentWherestudentnamelike‘王__’;(3)查詢課程名稱中含有下劃線“_”的課程信息。Select*fromtb_courseWherecoursenamelike‘%#_%’escape‘#’;Escape‘換碼字符’:對通配符進行轉義,把通配符轉換成普通字符。使用正則表達式的查詢selectcolumn_name1,column_name2,···fromtable_namewherecolumn_name[not][regexp|rlike]‘正則表達式’;說明:運算符rlike是regexp的同義詞,意義相同。正則表達式可以直接在select之后使用,進行字符匹配測試,返回0,表示沒有匹配;返回1,表示匹配成功。使用正則表達式可以匹配任意一個字符或在指定集合范圍內(nèi)查找某個匹配的字符;可以實現(xiàn)待搜索對象的選擇性匹配,即在匹配模式中使用“|”分隔每個供選擇匹配的字符串;也可以使用定位符匹配處于特定位置的文本,還可以對要匹配的字符或字符串的書目進行控制。操作:(1)查詢課程名稱中帶有中文“系統(tǒng)”的課程信息Select*fromtb_coursewherecoursenameregexp‘系統(tǒng)’;(2)查詢課程名稱中含有“管理”“信息”或“系統(tǒng)”中文字符的課程信息Select*fromtb_courseWherecoursenameregexp‘管理|信息|系統(tǒng)’;空值查詢selectcolumn_name1,column_name2,···fromtable_namewherecolumn_nameis[not]null;說明:空值一般表示數(shù)據(jù)未知、不確定或以后再添加??罩挡煌?,也不同于空字符串。當需要查詢某字段內(nèi)容是否為空值時,可以使用關鍵字isnull實現(xiàn)。可以使用isnotnull查找字段值不為空的記錄。操作:(1)查詢所有先行課的課程信息Select*fromtb_coursewherepriorcourseisnotnull;多條件查詢(and或or)selectcolumn_name1,column_name2,···fromtable_namewherecolumn_nameis[not]null;說明:邏輯運算符and和or可用來連接多個查詢條件。And限定只有滿足所有查詢條件的記錄才會被返回,or表示只要滿足其中一個查詢條件的記錄即可被返回。And的優(yōu)先級高于or,也可以使用括號改變優(yōu)先級。操作:(1)查詢學分大于等于3且學時數(shù)大于32的課程名稱、學分和學時數(shù)Selectcoursename,credit,coursehourfromtb_coursewherecredit>=3andcoursehour>32;(2)查詢籍貫是上海或北京的學生的姓名、籍貫和民族Selectstudentname,native,nationFromtb_studentWherenative=‘北京’ornative=‘上?!?(3)查詢籍貫是北京或湖南的少數(shù)民族男生的姓名、籍貫和民族Selectstudentname,native,nationFromtb_studentWhere(native=‘北京’ornative=‘上?!?andnation!=‘漢’對查詢結果排序(orderby子句)selectcolumn_name1,column_name2,···fromtable_nameorderby<column_name_list>[asc|desc];說明:orderby子句將查詢結果集中的記錄按一個或多多個字段值的升序或降序排列。多個字段排序時,字段值之間用逗號分割,按從左至右的次序一次進行排序。空值作為最小值進行排序。Asc表示升序,desc表示降序,默認值為asc。操作:(1)查詢所有學生的姓名、籍貫和民族,并將查詢結果按姓名升序排序Selectstudentname,native,nationfromtb_studentOrderbystudentname;(2)查詢學生選課成績大于85分的學號、課程號和成績信息,查詢結果先按學號升序排列,再按成績降序排列Selectstudentno,courseno,scoreFromtb_scoreWherescore>85Orderbystudentno,scoredesc;(3)查詢籍貫是北京或湖南的少數(shù)民族男生的姓名、籍貫和民族,查詢結果按姓名降序排列Selectstudentname,native,nationFromtb_studentWhere(native=‘北京’ornative=‘上?!?andnation!=‘漢’orderbystudentnamedesc;限制查詢結果的數(shù)量selectcolumn_name1,column_name2,···fromtable_namelimit[位置偏移量,]行數(shù);說明:limit子句來限制select語句返回的行數(shù),位置偏移量是可選項,指示從哪一行開始顯示,第一條記錄的位置偏移量是0,以此類推,不指定,默認為第一條記錄顯示;行數(shù)是非負整數(shù)兩場,指定顯示的行數(shù),若指定行數(shù)大于實際能返回的行數(shù)時,將返回它能返回的數(shù)據(jù)行。如果select語句中即有orderby子句,又又limit子句,則limit子句必須位于orderby子句之后。操作:(1)查詢成績排名第3至第5的學生學號、課程號和成績Selectstudentno,courseno,scorefromtb_scoreOrderbyscoredescLimit2,3;(2)查詢成績排名前三名的學生學號、課程號和成績Selectstudentno,courseno,scorefromtb_scor
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重慶財經(jīng)職業(yè)學院單招職業(yè)技能考試題庫附答案解析
- 2025年錫林郭勒職業(yè)學院單招職業(yè)技能考試題庫帶答案解析
- 2025年長沙航空職業(yè)技術學院單招職業(yè)適應性考試題庫帶答案解析
- 2025年陽東縣招教考試備考題庫帶答案解析(奪冠)
- 2025年青海省海南藏族自治州單招職業(yè)適應性考試題庫附答案解析
- 2025年靜寧縣幼兒園教師招教考試備考題庫含答案解析(必刷)
- 國家司法考試法理學案例分析題及答案2026年
- 安全附件規(guī)范制度
- 安全策略制度規(guī)范
- 公司研發(fā)培訓制度
- 湖北中煙2024年招聘考試真題(含答案解析)
- 2026年常州機電職業(yè)技術學院單招綜合素質考試題庫及答案1套
- 2026年酒店住宿預訂合同
- 2026年江蘇農(nóng)林職業(yè)技術學院單招職業(yè)適應性測試模擬測試卷必考題
- 廣東省廣州市八區(qū)聯(lián)考2024-2025學年高一上學期期末教學質量監(jiān)測數(shù)學試卷(含答案)
- 選舉法知識課件
- 蒸汽管道安裝現(xiàn)場施工方案
- 道路清掃保潔服務方案投標文件(技術方案)
- 發(fā)散性思維與寫作講解課件
- 壓力表檢定記錄
- 數(shù)控多軸銑削實訓課程標準112課時
評論
0/150
提交評論