




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
結(jié)構(gòu)化查詢語言第一頁,共六十六頁,編輯于2023年,星期一為什么要數(shù)據(jù)查詢?
查詢實際上是向數(shù)據(jù)庫發(fā)出的檢索信息的請求,通過一定的條件篩選數(shù)據(jù)庫中的記錄。建立數(shù)據(jù)庫和存儲大量數(shù)據(jù)的目的之一在于供用戶查詢其中的數(shù)據(jù)記錄,因此查詢是數(shù)據(jù)庫中最常用到的操作。第二頁,共六十六頁,編輯于2023年,星期一SQL語言SQL是結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)的縮寫,其主要功能包括數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制4個部分。SQL語言語法簡潔、使用方便、功能齊全,是目前關(guān)系數(shù)據(jù)庫的標準語言。當前流行的各種關(guān)系數(shù)據(jù)庫管理系統(tǒng)基本上都支持SQL語言,例如,Sybase、Informix、SQLServer、Oracle、DB2、FoxPro、Access等,并且得到了廣泛的應(yīng)用。第三頁,共六十六頁,編輯于2023年,星期一SQL語言數(shù)據(jù)查詢Select語句數(shù)據(jù)操縱Createtable(表的建立P97)Altertable(表的修改P106)Droptable(表的刪除)(補充)數(shù)據(jù)定義Insertinto…values(記錄的插入P114)Update…set(更新)(補充)Deletefrom<表名>(邏輯刪除)(補充)數(shù)據(jù)控制GRANT(授權(quán)),REVOTE(回收權(quán)限)(本書中不作介紹)第四頁,共六十六頁,編輯于2023年,星期一知識點補充數(shù)據(jù)操縱表的刪除格式:DropTable<表名>功能:從數(shù)據(jù)庫中刪除一個表例如:從學生信息管理數(shù)據(jù)庫中刪除院系表。
modidata學生信息管理
droptable院系
第五頁,共六十六頁,編輯于2023年,星期一知識點補充數(shù)據(jù)定義①記錄的更新格式:UPDATE[<數(shù)據(jù)庫名!>]<表名>SET<列名1>=<表達式1>[,<列名2>=<表達式2>,
…][WHERE<過濾條件>]功能:用新的值更新表中的記錄
第六頁,共六十六頁,編輯于2023年,星期一記錄的更新將課程表中課程號為“407102“的課程的學分改為3。SQL語句如下:
Update
學生信息管理!課程;Set
學分=3where課程號=“407102”第七頁,共六十六頁,編輯于2023年,星期一知識點補充數(shù)據(jù)定義②記錄的邏輯刪除格式:DELETEFROM[<數(shù)據(jù)庫名!>]<表名>[WHERE<過濾條件>]功能:給要刪除的記錄作標記
第八頁,共六十六頁,編輯于2023年,星期一記錄的邏輯刪除
將學生表中學號為“200601010001”的數(shù)據(jù)做刪除標記。SQL語句如下:
delete
from
學生信息管理!學生;
where
學號=“200601010001”
第九頁,共六十六頁,編輯于2023年,星期一一、SQL語句創(chuàng)建查詢1、SQL查詢語句的結(jié)構(gòu)1)查什么:SELECT子句——投影操作2)到哪兒查:FROM子句3)查詢條件:WHERE子句——選擇操作4)查詢連接:Join子句——連接操作5)結(jié)果形式:ORDER、GROUP子句6)查詢?nèi)ハ颍篒NTO、TO子句7)其它第十頁,共六十六頁,編輯于2023年,星期一一、SQL語句創(chuàng)建查詢2、查詢語句格式(見課本P183)SELECT查詢語句的應(yīng)用單表查詢:僅涉及一個表的查詢多表查詢:涉及兩個或兩個以上表的查詢第十一頁,共六十六頁,編輯于2023年,星期一二、單表查詢---Select查詢語句格式:
Select[All|Distinct]<字段名表>|<函數(shù)>[As<列名>]From[<數(shù)據(jù)庫名>!]<表>[Where<條件表達式>][OrderBy<排序選項>[Asc][Desc]][GroupBy<分組字段名>][HAVING<分組條件>][INTO<查詢結(jié)果>|TO<查詢結(jié)果>]第十二頁,共六十六頁,編輯于2023年,星期一單表查詢應(yīng)用選擇表中部分或全部的列(Select…From…)
(查詢的基本語句,不可缺省)選擇表中滿足條件的記錄(Where子句)對查詢結(jié)果排序(OrderBy子句)對查詢結(jié)果分組(GroupBy子句)第十三頁,共六十六頁,編輯于2023年,星期一1、選擇表中的若干列1)查詢指定列例題1:查詢?nèi)w學生的學號,姓名和所屬院系。Select學號,姓名,所屬院系;From學生信息管理!學生第十四頁,共六十六頁,編輯于2023年,星期一1、選擇表中的若干列2)查詢?nèi)苛欣}2:查詢?nèi)w學生的全部信息。SelectAll*From學生信息管理!學生第十五頁,共六十六頁,編輯于2023年,星期一1、選擇表中的若干列例題1的查詢結(jié)果例題2的查詢結(jié)果第十六頁,共六十六頁,編輯于2023年,星期一1、選擇表中的若干列3)查詢經(jīng)過計算的值例題3:查詢?nèi)w學生的學號,姓名,年齡。Select學號,姓名,year(date())-year(出生日期);As年齡From學生信息管理!學生第十七頁,共六十六頁,編輯于2023年,星期一例題3的查詢結(jié)果第十八頁,共六十六頁,編輯于2023年,星期一2、選擇表中滿足條件的記錄1)消除取值重復的記錄例題4:在成績表中查詢哪些編號的課程被選擇。Selectdistinct課程號;From學生信息管理!成績第十九頁,共六十六頁,編輯于2023年,星期一例題4的查詢結(jié)果第二十頁,共六十六頁,編輯于2023年,星期一2、選擇表中滿足條件的記錄2)查詢滿足條件的記錄查詢滿足條件的記錄,實際上是關(guān)系數(shù)據(jù)庫中對表的選擇運算.可以通過Where子句實現(xiàn)。第二十一頁,共六十六頁,編輯于2023年,星期一Where子句中的運算符運算符=、>、<、>=、<=、<>NOT、AND、OR<字段名>[NOT]LIKE<字段名>[NOT]BETWEEN<起始值>AND<終止值><字段名>[NOT]IN<集合>[NOT]EXISTS第二十二頁,共六十六頁,編輯于2023年,星期一(1)比較大小-用關(guān)系運算符例題5:在學生表中查詢所有男同學的學號和姓名。例題6:在成績表中查詢成績大于85的記錄。Select學號,姓名From學生信息管理!學生;Where性別=“男”SelectAll*From學生信息管理!成績;Where成績>85第二十三頁,共六十六頁,編輯于2023年,星期一(2)確定范圍-用BETWEEN…AND運算符例題7:在學生表中查詢學號在200601010001-200601010003之間學生的學號和姓名。Select學號,姓名From學生信息管理!學生;Where學號between
“200601010001”
and;“200601010003”第二十四頁,共六十六頁,編輯于2023年,星期一(2)確定范圍-用BETWEEN…AND運算符例題8:在學生表中查詢不是1978年出生的學生記錄。Select*From學生信息管理!學生;Where出生日期notbetween{^1978-01-01};and{^1978-12-31}第二十五頁,共六十六頁,編輯于2023年,星期一(3)確定集合-用IN(集合)子句例題9:在學生表中查詢所屬院系為0401和0402學生的學號、姓名和所屬院系。Select學號,姓名,所屬院系;From學生信息管理!學生;Where所屬院系in(“0401”,“0402”)第二十六頁,共六十六頁,編輯于2023年,星期一(4)字符匹配-用LIKE子句謂詞Like可以用來進行字符串的匹配.語法格式:
[not]Like”<匹配串>’
注意:通配符的使用:%和_(下劃線)%:代表任意長度的字符串_:代表任意單個字符
第二十七頁,共六十六頁,編輯于2023年,星期一(4)字符匹配-用LIKE子句注意:①在VFP中_可以取代一個英文字母或一個漢字②LIKE后的字符串若不含通配符,則可用“=“代替LIKE子句,用!=、#、<>取代NOTLIKE③將ESCAPE操作符放在“_”或”%”之前,則失去通配意義,成為一個普通字符。第二十八頁,共六十六頁,編輯于2023年,星期一(4)字符匹配例題10:在學生表中查詢姓”許”的學生記錄。SelectAll*;From學生信息管理!學生;Where姓名like“許%”第二十九頁,共六十六頁,編輯于2023年,星期一(5)多條件查詢例題11:在學生表中查詢所有是黨員的女同學。SelectAll*;From學生信息管理!學生;Where性別=“女”
.and.黨員=.t.第三十頁,共六十六頁,編輯于2023年,星期一2、選擇表中滿足條件的記錄3)輸出項中函數(shù)的應(yīng)用函數(shù)名功能AVG(輸出項)計算列中數(shù)值的平均值COUNT(輸出項)計算列中選定項的數(shù)目,計算查詢輸出的行數(shù)MIN(輸出項)確定列中輸出項的最小值MAX(輸出項)確定列中輸出項的最大值SUM(輸出項)計算列中數(shù)值的和輸出項可以是一個字段或包含字段的表達式第三十一頁,共六十六頁,編輯于2023年,星期一2、選擇表中滿足條件的記錄例題12:在成績表中查詢課程號是401106的學生人數(shù)和平均成績。Selectcount(學號)as人數(shù),avg(成績);As平均成績From學生信息管理!成績;Where課程號=“401106”第三十二頁,共六十六頁,編輯于2023年,星期一3、對查詢結(jié)果的排序和分組1)對查詢結(jié)果排序?qū)崿F(xiàn)子句:ORDERBY<排序選項>[ASC][DESC]排序輸出可使用的輸出選項:
Top<n>[percent]第三十三頁,共六十六頁,編輯于2023年,星期一3、對查詢結(jié)果的排序和分組例題13:查詢學生表中是黨員的學生,以性別升序排列;若性別相同時再按姓名降序排列。Select*From學生信息管理!學生;Where黨員OrderBy性別asc,姓名desc第三十四頁,共六十六頁,編輯于2023年,星期一3、對查詢結(jié)果的排序和分組2)對查詢結(jié)果分組實現(xiàn)子句:GROUPBY<分組字段名>[HAVING<表達式>]例題14:查詢成績表中每個學生的學號和平均成績。Select學號,avg(成績)as平均成績;From學生信息管理!成績;GroupBy學號第三十五頁,共六十六頁,編輯于2023年,星期一對查詢結(jié)果分組例題15:查詢有4門以上課程成績的學號。Select學號From學生信息管理!成績;GroupBy學號HavingCount(課程號)>4第三十六頁,共六十六頁,編輯于2023年,星期一4、保存查詢結(jié)果1)INTO子句格式:INTO<查詢結(jié)果>查詢結(jié)果子句的格式①ARRAY<數(shù)組名>②CURSOR<臨時表>③TABLE|DBF<表名>④DATABASE<數(shù)據(jù)庫名>第三十七頁,共六十六頁,編輯于2023年,星期一保存查詢結(jié)果舉例例題16:在成績表中查詢成績大于85的記錄,將查詢結(jié)果存入數(shù)組s1中。Select*From學生信息管理!成績;Where成績>85intoarrays1第三十八頁,共六十六頁,編輯于2023年,星期一保存查詢結(jié)果舉例例題17:在學生表中查詢所有男同學的學號和姓名,將結(jié)果存入臨時表s2中。Select學號,姓名From學生信息管理!學生;Where性別=“男”
IntoCursors2第三十九頁,共六十六頁,編輯于2023年,星期一保存查詢結(jié)果舉例例題18:查詢學生表中是黨員的學生,以性別升序排列;若性別相同時再按姓名降序排列,存入表“xs.dbf”中
。Select*From學生信息管理!學生;Where黨員OrderBy性別asc,姓名desc;Intotablexsbrowse第四十頁,共六十六頁,編輯于2023年,星期一4、保存查詢結(jié)果2)TO子句格式:TO<查詢結(jié)果>查詢結(jié)果子句的格式①FILE<文件名>②PRINTER[PROMPT]③SCREEN第四十一頁,共六十六頁,編輯于2023年,星期一TO子句舉例例題19:在學生表中查詢所有是黨員的女同學,并將結(jié)果存入s3.txt文件中。Select*From學生信息管理!學生;Where性別=“女”.and.黨員=.t.;ToFiles3第四十二頁,共六十六頁,編輯于2023年,星期一5、嵌套查詢概念:將一個查詢塊嵌套在另一個查詢塊的Where或Having短語中1)帶有IN運算符的子查詢語句嵌套查詢的過程:先里后外里查詢的結(jié)果通常是一個集合集合用IN子句測試第四十三頁,共六十六頁,編輯于2023年,星期一帶有IN運算符的子查詢語句例題20:查詢課程號為401101的學生姓名。Select姓名From學生信息管理!學生;Where學號in(Select學號from成績;where課程號=“401101”)第四十四頁,共六十六頁,編輯于2023年,星期一5、嵌套查詢2)帶有比較運算符的子查詢例題21:查詢學生“蘇亮”課程成績的信息。Select*From學生信息管理!成績;Where學號=(Select學號from學生;where姓名=“蘇亮”)第四十五頁,共六十六頁,編輯于2023年,星期一5、嵌套查詢3)帶有ANY(SOME)和ALL的查詢ANY和SOME:功能相同,都表示某個值A(chǔ)LL:所有值(任何值)一般前面是比較運算符,后面是子查詢模塊第四十六頁,共六十六頁,編輯于2023年,星期一帶有ANY(SOME)和ALL的查詢例題22:在學生表中計算機系(所屬院系:0408)比中文系(所屬院系:0401)年齡最大的同學還大的同學。Select*From學生whereyear(date())-;year(出生日期)>=All(selectyear(date())-;year(出生日期)as年齡from學生where;所屬院系=“0401”).and.所屬院系=“0408”第四十七頁,共六十六頁,編輯于2023年,星期一5、嵌套查詢4)帶有EXISTS短語的查詢EXISTS的返回值:.T..F.作用:當篩選條件包括EXISTS時,只要子查詢不為空集,篩選的條件就為真。第四十八頁,共六十六頁,編輯于2023年,星期一帶有EXISTS短語的查詢例題23:查詢沒有選401106號課程的學生。Select*From學生信息管理!學生;Wherenotexists(Select*from成績;where學號=學生.學號.and.課程號=“401106”)第四十九頁,共六十六頁,編輯于2023年,星期一5、嵌套查詢5)查詢集合的并格式
SELECT命令UNION[ALL]SELECT命令功能把一個SELECT語句的最后查詢結(jié)果同另一個SELECT語句的最后查詢結(jié)果連接起來。第五十頁,共六十六頁,編輯于2023年,星期一查詢集合的并說明:①默認情況下(無ALL),結(jié)果并,排除重復行②有ALL:結(jié)果并保留重復行③UNION不用于子查詢④兩個查詢結(jié)果列數(shù)應(yīng)相同⑤查詢結(jié)果中的對應(yīng)列應(yīng)類型相同、寬度相等。第五十一頁,共六十六頁,編輯于2023年,星期一查詢集合的并例題24:查詢選修了401101或401102號課程的學生學號。Select學號From學生信息管理!成績;Where課程號=“401101”Union;Select學號From學生信息管理!成績;Where課程號=“401102”第五十二頁,共六十六頁,編輯于2023年,星期一三、多表連接查詢連接查詢:同時涉及到兩個或兩個以上表的查詢。等值連接查詢自身連接查詢外連接查詢第五十三頁,共六十六頁,編輯于2023年,星期一三、連接查詢---Select查詢語句Select<字段名表>
From<表>[[Left][Right][Full]Join<表>
On<條件表達式>][Where<條件表達式>][OrderBy<排序選項>[Asc][Desc]][GroupBy<分組字段名>][HAVING<分組條件>][INTO<查詢結(jié)果>|TO<查詢結(jié)果>]
第五十四頁,共六十六頁,編輯于2023年,星期一連接條件用來連接兩個表的條件稱為連接條件或連接謂詞,其一般格式為:[<表名1>.]<列名1><比較運算符>[<表名2>.]<列名2>
其中比較運算符主要有:=、>、<、>=、<=、!=<=、!=
當連接運算符為=時,稱為等值連接。使用其它運算符稱為非等值連接。第五十五頁,共六十六頁,編輯于2023年,星期一1、等值連接查詢
例題25:查詢每個學生及其課程成績的情況。Select學生.*,成績.*From學生join;成績on學生.學號=成績.學號學生表和成績表之間的聯(lián)系是通過兩個表都具有的屬性學號實現(xiàn)的。第五十六頁,共六十六頁,編輯于2023年,星期一2、自身連接查詢例題26:在course表中查詢每門課的先修課。Selectkc1.課程號,kc1.課程名,kc2.課;程名as先修課程Fromcourseaskc1;join
courseaskc2onkc1.先修課號=;kc2.課程號自身連接:表自己的連接。第五十七頁,共六十六頁,編輯于2023年,星期一自身連接查詢-實例第五十八頁,共六十六頁,編輯于2023年,星期一2、外連接查詢外連接查詢的分類:①左連接:LEFT[OUTER]JOIN②右連接:RIGHT[OUTER]JOIN③全連接:FULL[OUTER]JOIN其中的OUTER關(guān)鍵字可被省
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京農(nóng)業(yè)大學《思想政治教育研究方法》2023-2024學年第二學期期末試卷
- 西安城市建設(shè)職業(yè)學院《動畫素描》2023-2024學年第二學期期末試卷
- 四川西南航空職業(yè)學院《設(shè)計基礎(chǔ)形態(tài)構(gòu)成》2023-2024學年第二學期期末試卷
- 浙江音樂學院《園林法規(guī)》2023-2024學年第二學期期末試卷
- 甘肅民族師范學院《電力拖動自動控制系統(tǒng)》2023-2024學年第二學期期末試卷
- 黑龍江護理高等??茖W校《中醫(yī)經(jīng)典選讀一》2023-2024學年第二學期期末試卷
- 成都大學《資賦優(yōu)異教育概論》2023-2024學年第二學期期末試卷
- 揚州工業(yè)職業(yè)技術(shù)學院《食品生物技術(shù)實驗指導》2023-2024學年第二學期期末試卷
- 廣西城市職業(yè)大學《教師實踐》2023-2024學年第二學期期末試卷
- 湘中幼兒師范高等??茖W校《普通化學I》2023-2024學年第二學期期末試卷
- 產(chǎn)品試產(chǎn)流程
- 舞臺機械基礎(chǔ)知識培訓
- 人教版數(shù)學八年級下冊 第16章 二次根式 單元測試(含答案)
- 中學班主任培訓內(nèi)容
- DB51T 1511-2022建設(shè)項目對自然保護區(qū)自然資源、自然生態(tài)
- 2024年湘教版初中地理一輪復習專題三 天氣與氣候
- 四級人工智能訓練師(中級)職業(yè)技能等級認定考試題及答案
- 運用HFMEA品管工具優(yōu)化臨床安全輸血流程醫(yī)院品質(zhì)管理獲獎案例(護理部聯(lián)合臨床輸血科信息處)
- 《商務(wù)溝通-策略、方法與案例》課件 第八章 求職溝通
- 法律思維及案例培訓
- Meta分析高分文獻匯報課件模板
評論
0/150
提交評論