版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)更新與查詢課前預(yù)習(xí)將手機(jī)調(diào)到靜音認(rèn)真做筆記及時完成作業(yè)上課要求本節(jié)內(nèi)容插入數(shù)據(jù)(重點)修改數(shù)據(jù)(重點)刪除數(shù)據(jù)查詢語句簡單查詢(重點)多表查詢(難點)嵌套查詢使用T-SQL語句插入記錄使用INSERTINTO語句也可以向表中插入數(shù)據(jù)。INSERTINTO語句的語法格式如下:INSERT[INTO]表名
[(列名[,...n])]VALUES(表達(dá)式[,...n])向Students表中插入一行數(shù)據(jù)。sno:2009207104sname:李吉sex:男birthday:1981-5-31professional:信息管理telephonemail:liji@126.cominsert
intostudents(sno,sname,sex,birthday,professional,telephone,email)values('2009207104','李吉','男','1981-5-31','信息管理',,'liji@126.com')在insertinto插入數(shù)據(jù)時,可以省略列名列表,在這種情況下,values后數(shù)值的順序一定要與表中定義列的順序相同。否則,要么插入數(shù)據(jù)不成功,要么插入數(shù)據(jù)成功但不正確。
使用insertinto語句一次只能插入一行數(shù)據(jù)。使用T-SQL語句修改記錄
使用UPDATE語句修改表中已經(jīng)存在的數(shù)據(jù),該語句既可以一次更新一行數(shù)據(jù),也可以一次更新表中的全部數(shù)據(jù)行。
使用UPDATE要求修改前后的數(shù)據(jù)類型和數(shù)據(jù)個數(shù)相同。UPDATE語句語法格式如下:UPDATE表名SET{列名=表達(dá)式}[,...n][WHERE邏輯表達(dá)式]當(dāng)省略where子句時,表示對所有行的指定列進(jìn)行修改,否則只對滿足邏輯表達(dá)式的數(shù)據(jù)行的指定列進(jìn)行修改。修改的列值由表達(dá)式給定。將Students表中學(xué)號為“2009207104”的電話update
studentssettelephone=wheresno='2009207104'使用T-SQL語句刪除記錄對表中數(shù)據(jù)的刪除可以使用DELETE語句實現(xiàn)。該語句可以從一個表中刪除一行或多行數(shù)據(jù)。DELETE語句基本語法格式如下:DELETE[FROM]表名[WHERE邏輯表達(dá)式]在delete語句中,如果使用了where子句,表示從指定的表中刪除滿足where子句條件的數(shù)據(jù)行。如果沒有where子句,表示刪除指定表中的全部數(shù)據(jù),使用時應(yīng)小心謹(jǐn)慎。刪除students表中學(xué)號為“2009207104”的數(shù)據(jù)記錄。deletefromstudentswheresno='2009207104'練習(xí)12023/2/11、192例6-18----6-22數(shù)據(jù)查詢
查詢是對已經(jīng)存在于數(shù)據(jù)庫中的數(shù)據(jù)按特定的組合、條件或次序進(jìn)行檢索。
把所有的被選擇的行組織在一起,形成另外一個類似于表的結(jié)構(gòu),這便是查詢的結(jié)果,通常叫做記錄集。記錄集的結(jié)構(gòu)與表的結(jié)構(gòu)是相同的,都是由多行組成的,在記錄集上依然可以進(jìn)行再次查詢。SELECT語句
T-SQL語言中用于數(shù)據(jù)查詢的語句是SELECT語句。SELECT語句是功能最強(qiáng)也是最復(fù)雜的SQL語句,既可以實現(xiàn)對單表的數(shù)據(jù)查詢,也可以完成復(fù)雜的多表、視圖連接查詢和嵌套查詢等。SELECT語句的基本語法格式如下:SELECT[ALL|DISTINCT][TOPn]表達(dá)式列表[AS別名]FROM表名或視圖名[WHERE條件表達(dá)式][GROUPBY列名][HAVING搜索表達(dá)式][ORDERBY列名[ASC|DESC]]其中:SELECT子句用于指定輸出的內(nèi)容。FROM子句用于指定要檢索的數(shù)據(jù)的來源表或來源視圖。WHERE子句用于指定對記錄的過濾條件。GROUPBY子句用于指定對檢索到的記錄進(jìn)行分組的條件。HAVING子句用于在分組的基礎(chǔ)上指定選取某些組的條件,必須與GROUPBY一起使用。ORDERBY子句用于對檢索到的記錄進(jìn)行排序。注意:在SELECT語句中可以省略可選語句(“[]”括起來的子句),但這些子句的順序非常重要。各子句在使用時必須按照語法格式中的順序出現(xiàn),否則會出錯。查詢Readersys表中的所有讀者的姓名,專業(yè)和借書數(shù)量。selectrname,professional,borrownumberfromReadersys查詢Borrowsys表中的讀者編號,圖書編號。selectrno,bnofromBorrowsys查詢Booksys表的所有記錄。select*fromBooksys條件查詢大部分查詢都是從整個表中選出符合條件的部分信息,這時就需要對結(jié)果集中的記錄進(jìn)行過濾。
在SELECT語句中,可以使用WHERE子句來指定查詢條件,將不符合條件的記錄排除在結(jié)果集之外。查詢Readersys表中借書數(shù)量2本及以上的讀者信息。select*fromReadersyswhereborrownumber>=2消除重復(fù)數(shù)據(jù)行
指定ALL關(guān)鍵字(默認(rèn))將保留查詢結(jié)果集中的全部數(shù)據(jù)行,因此,在查詢結(jié)果集中可能會出現(xiàn)重復(fù)的數(shù)據(jù)行。使用DISTINCT關(guān)鍵字可消除查詢結(jié)果集中重復(fù)的數(shù)據(jù)行。selectdistinctprofessionalfromReadersyswhereborrownumber>=2selectprofessionalfromReadersyswhereborrownumber>=2自定義列標(biāo)題默認(rèn)情況下,在結(jié)果集中顯示的列名為表中的列名,可以使用AS關(guān)鍵字指定一個更加容易理解的別名取代原來的列名。
例如:sno:學(xué)號sname:姓名professional:專業(yè)
查詢Readersys表中讀者的編號和姓名。selectrnoas'讀者編號',rnameas'讀者姓名'fromReadersys注意:指定的列標(biāo)題是一個字符串,可以用單引號括起來,也可以不用,關(guān)鍵字as也可以省略。
使用聚集函數(shù)聚集函數(shù)的主要功能是對表在指定列名表達(dá)式的值上進(jìn)行縱向統(tǒng)計和計算,也稱為聚合函數(shù)。
在SELECT查詢語句中,常用的聚集函數(shù)如下:COUNT:統(tǒng)計列中選取的項目個數(shù)或查詢輸出的行數(shù)。SUM:計算指定的數(shù)值型列名表達(dá)式的總和。AVG:計算指定的數(shù)值型列名表達(dá)式的平均值。MAX:求出指定的數(shù)值、字符或日期型列名表達(dá)式的最大值。MIN:求出指定的數(shù)值、字符或日期型列名表達(dá)式的最小值。統(tǒng)計Readersy數(shù)據(jù)表中讀者的數(shù)量。selectcount(*)as讀者數(shù)fromReadersys查詢Booksys表中price最高的和最低的圖書。selectmax(price)as價格最高,min(price)as價格最低fromBooksys范圍查詢
WHERE子句中可用關(guān)鍵字BETWEEN和AND判定某個表達(dá)式值是否在某個區(qū)間范圍之內(nèi)。要實現(xiàn)這種查詢,必須知道查找的初值(最小值)和終值(最大值),初值和終值之間用AND分開。查詢借書日期在2010-5-1日至2010-8-1日之間的讀者編號、圖書編號和借書日期。selectrno,bno,borrowdatefromBorrowsyswhereborrowdatebetween'2010-5-1'and'2010-8-1'模糊查詢通常在查詢字符類型的數(shù)據(jù)時,提供的查詢條件并不是十分精確,如查詢條件僅僅是包含或類似某種樣式的字符,這種查詢稱為模糊查詢。在WHERE子句中,可以使用LIKE關(guān)鍵字實現(xiàn)模糊查詢。LIKE關(guān)鍵字的語法形式如下:<字符串表達(dá)式>[NOT]LIKE<模式表達(dá)式>模式表達(dá)式可以是一個完整的字符串,也可以包含有通配符%、_、[]或[^],這4種通配符的含義如表所示。通配符含義%代表0個或多個字符_代表1個字符[]代表指定范圍或集合中的1個字符[^]代表不在指定范圍或集合中的1個字符查詢Booksys表中與“數(shù)據(jù)庫”相關(guān)的圖書的圖書編號、圖書名稱及出版社。selectbno,bname,pressfromBooksyswherebnamelike'數(shù)據(jù)庫%'查詢Booksys表中出版社名包含“教育”的圖書名稱、圖書類別和出版社。selectbname,category,pressfromBooksyswherepresslike'%教育%'查詢Booksys表中作者名為_志明的圖書名稱和出版日期。selectbname,publicationdatefromBooksyswhereauthorlike'_志明'查詢Booksys表中出版社名包含人民的圖書名稱、圖書類別和出版社。selectbname,category,pressfromBooksyswherepresslike'[人、民]%'查詢Booksys表中出版社名不包含人民的圖書名稱、圖書類別和出版社。selectbname,category,pressfromBooksyswherepresslike'[^人、民]%'排序查詢使用ORDERBY子句可以按一個或多個屬性列對數(shù)據(jù)進(jìn)行排序,排序方式有升序(ASC)和降序(DESC)2種,默認(rèn)的排序方式為升序。查詢Booksys表中的圖書編號、圖書名稱和圖書價格,圖書價格按照升序排列。selectbno,bname,pricefromBooksysorderbyprice練習(xí)22023/2/11、189例6-7—6-12
連接(多表)查詢
在設(shè)計表時,經(jīng)常把相關(guān)的數(shù)據(jù)分散在不同的表中。但在實際使用時,往往需要同時從兩個或兩個以上的表中檢索數(shù)據(jù),并且每一個表中的數(shù)據(jù)仍以單獨的列出現(xiàn)在結(jié)果集中。
連接查詢:實現(xiàn)從兩個或兩個以上表中檢索數(shù)據(jù)且結(jié)果集中出現(xiàn)的列來自于多個表的檢索操作。內(nèi)連接內(nèi)連接是指多個數(shù)據(jù)源通過相關(guān)列的值滿足連接條件進(jìn)行的匹配連接,并從這些表中提取數(shù)據(jù)組合成新的行輸出。
內(nèi)連接用INNERJOIN關(guān)鍵字來指定,其語法格式如下:FROM表1{[INNER]JOIN表2ON條件表達(dá)式}[…n]外連接內(nèi)連接返回的結(jié)果集是符合連接條件和查詢條件的數(shù)據(jù)行,外連接是其中一個表的全集和另一個表與其匹配的數(shù)據(jù)。外連接與內(nèi)連接最大的不同是外連接返回from子句中指定的至少一個表的所有行。全外連接全外連接將左表所有數(shù)據(jù)分別于右表每一條數(shù)據(jù)進(jìn)行連接,返回的結(jié)果集中除了滿足連接條件的數(shù)據(jù)行外,還有左、右表中不滿足連接條件的數(shù)據(jù)行,分別在左、右表的相應(yīng)列上填上NULL值。全外連接的語法如下:From左表fullouterjoin右表on連接條件交叉連接交叉連接也叫非限制連接,它將兩個表不加任何限制的組合起來。
沒有WHERE子句的交叉連接返回的結(jié)果集的行數(shù)等于兩個表的數(shù)據(jù)行數(shù)的乘積,因此可能產(chǎn)生龐大的結(jié)果集。
交叉連接的語法如下:FROM表名1CROSSJOIN表名2自連接表可以通過自連接實現(xiàn)自身的連接運(yùn)算。自連接可以看作是一張表的兩個副本之間進(jìn)行的連接。
在自連接中,必須為表指定兩個不同的別名,使之邏輯上成為兩張表。練習(xí)32023/2/11、190例6-13—6-15子查詢
SELECT語句可以嵌套在其他語句中,這些語句包括SELECT、INSERT、UPDATE、DELETE等,這些嵌套的SELECT語句被稱為子查詢。
外層的SELECT語句被稱為外部查詢,內(nèi)層的SELECT語句被稱為內(nèi)部查詢(或子查詢)。當(dāng)一個查詢依賴于另外一個查詢結(jié)果時,則可以使用子查詢。子查詢分為IN子查詢、EXISTS子查詢和比較子查詢。IN子查詢
IN子查詢通過使用IN關(guān)鍵字可以把原表中目標(biāo)列的值和子查詢的返回結(jié)果進(jìn)行比較。
如果列值與子查詢的結(jié)果一致或存在與之匹配的數(shù)據(jù)行,則查詢結(jié)果集中就包含該數(shù)據(jù)行。查詢“C語言程序設(shè)計”或“面向?qū)ο蟪绦蛟O(shè)計”課程的課程號。selectcnofromCourseWherecnamein('C語言程序設(shè)計','面向?qū)ο蟪绦蛟O(shè)計')查詢選修了“C語言程序設(shè)計”或“面向?qū)ο蟪绦?/p>
設(shè)計”課程的學(xué)生學(xué)號。selectsnofromElectivewherecnoin(selectcnofromCoursewherecnamein('C語言程序設(shè)計','面向?qū)ο蟪绦蛟O(shè)計')
)EXISTS子查詢
EXISTS關(guān)鍵字的作用是在WHERE子句中測試子查詢的結(jié)果是否為空,若子查詢的結(jié)果不為空,則EXISTS返回TRUE,否則返回FALSE。使用EXISTS關(guān)鍵字的子查詢實際上不返回任何數(shù)據(jù)。查詢至少選修了一門課程的學(xué)生學(xué)號和姓名。selectStudents.sno,snamefromStudentswhere
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 肛周瘙癢癥的臨床護(hù)理
- 八年級英語EnviromentWriting課件
- JJF(陜) 051-2021 機(jī)動車 GNSS 區(qū)間測速監(jiān)測系統(tǒng)標(biāo)準(zhǔn)裝置校準(zhǔn)規(guī)范
- JJF(陜) 004-2019 水泥膠砂流動度測定儀校準(zhǔn)規(guī)范
- 人事風(fēng)險管理的應(yīng)對策略計劃
- 校園文化與美術(shù)教育互動探討計劃
- 適應(yīng)變化的職場策略計劃
- 零倉儲模式下的保安管理與風(fēng)險防控計劃
- 生物學(xué)科英語融合教學(xué)方案計劃
- 藝術(shù)與科技融合課程的前景分析計劃
- 增值稅銷售貨物或者提供應(yīng)稅勞務(wù)清單(模板)
- 混合式教學(xué)模式
- 2023年《思想道德與法治》期末考試復(fù)習(xí)題庫(帶答案)
- 跳纖施工方案
- 籃球交叉步持球突破教學(xué)設(shè)計-高二下學(xué)期體育與健康人教版
- 八年級上冊生物天津生物期末試卷測試卷(含答案解析)
- 財務(wù)會計試卷及答案
- 契訶夫《苦惱》課件
- 污水處理廠升級改造項目監(jiān)理工作方法及措施
- 服從崗位調(diào)配申請書
- 公路施工路基、橋梁施工臺賬模板
評論
0/150
提交評論