SQL 標(biāo)準(zhǔn)培訓(xùn)教程課件_第1頁
SQL 標(biāo)準(zhǔn)培訓(xùn)教程課件_第2頁
SQL 標(biāo)準(zhǔn)培訓(xùn)教程課件_第3頁
SQL 標(biāo)準(zhǔn)培訓(xùn)教程課件_第4頁
SQL 標(biāo)準(zhǔn)培訓(xùn)教程課件_第5頁
已閱讀5頁,還剩147頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

功能強(qiáng)大的SQL語句利用SQL語句,可以查詢、插入、更新、刪除數(shù)據(jù)庫中的數(shù)據(jù)。內(nèi)蒙古利豐汽車孫建新功能強(qiáng)大的SQL語句利用SQL語句,可以查詢、插入、更新、刪3.1select語句解析與簡單SQL語句(P63)從某種意義上說,select語句是數(shù)據(jù)庫結(jié)構(gòu)化查詢語言SQL的真正核心。使用select語句可以以多種不同的方式查找數(shù)據(jù)庫中的數(shù)據(jù),并且可以顯示通過現(xiàn)有數(shù)據(jù)推導(dǎo)、計(jì)算出的數(shù)據(jù)信息。內(nèi)蒙古利豐汽車孫建新3.1select語句解析與簡單SQL語句(P63)從3.1.1select語句解析(P64)在數(shù)據(jù)庫引擎查詢文檔中輸入64頁的代碼

use企業(yè)銷售管理系統(tǒng)

select倉庫號,城市,面積,創(chuàng)建時(shí)間from倉庫where面積>800執(zhí)行該SQL語句,就可以從數(shù)據(jù)庫表“倉庫”中挑選出面積大于800的倉庫號、城市、面積、創(chuàng)建時(shí)間信息。內(nèi)蒙古利豐汽車孫建新3.1.1select語句解析(P64)在數(shù)據(jù)庫引擎查Select語言句的基本格式Select語言句的基本格式是:

select[alldistinct]select_listfromtable_list/view_list[whereconditions][groupbygroup_list][havingconditions][orderbyorder_list]Select語言句的基本格式Select語言句的基本格式是:3.1.2選擇所有的列(P65)Select語句的第一個(gè)子句,即select關(guān)鍵字開頭的子句,用于選擇進(jìn)行顯示的列,并且可以指定是否顯示重復(fù)的記錄。在數(shù)據(jù)庫引擎輸入如下代碼:

use企業(yè)銷售管理系統(tǒng)

select職工ID,職工號,倉庫號,姓名,性別,工資from職工內(nèi)蒙古利豐汽車孫建新3.1.2選擇所有的列(P65)Select語句的第一3.1.3投影查詢(P66)有時(shí)并不需要將所有的列都顯示出來,投影查詢就是允許用戶顯示所需要的列。如:

use企業(yè)銷售管理系統(tǒng)

select職工號,姓名,工資from職工內(nèi)蒙古利豐汽車孫建新3.1.3投影查詢(P66)有時(shí)并不需要將所有的列都顯示3.1.4條件查詢(P66)Where子句是在使用select語句進(jìn)行查詢時(shí)最重要的子句,在where子句中指出了檢索的條件,系統(tǒng)進(jìn)行檢索時(shí)將按照這些指定的條件對記錄進(jìn)行檢索,找出符合條件的記錄。在SQL中提供了各種運(yùn)算符和關(guān)鍵字來實(shí)現(xiàn)搜索條件,其中運(yùn)算符分為比較運(yùn)算符與邏輯運(yùn)算符,關(guān)鍵字有in、like、between…and、isnull、isnotnull等。內(nèi)蒙古利豐汽車孫建新3.1.4條件查詢(P66)Where子句是在使用sel3.1.4.1比較運(yùn)算符(P67)比較運(yùn)算符在where字句中使用非常普遍,幾乎所有的條件查詢都要用到比較運(yùn)算符。如67頁表3-1所列出的比較運(yùn)算符。內(nèi)蒙古利豐汽車孫建新3.1.4.1比較運(yùn)算符(P67)比較運(yùn)算符在where數(shù)字的比較顯示訂單金額大于10000元的訂單信息,執(zhí)行下面的代碼:

use企業(yè)銷售管理系統(tǒng)

select*from訂購單where金額>10000數(shù)字的比較顯示訂單金額大于10000元的訂單信息,執(zhí)行下面的字符串比較純英文字符串的比較按照字典順序進(jìn)行,先比較第一個(gè)字母在字典順序中的位置,位置在前的字符小于位置在后面的字符,若第一個(gè)字符相同則繼續(xù)比較第二個(gè)字符,直到得出比較結(jié)果。執(zhí)行下面的代碼:use企業(yè)銷售管理系統(tǒng)select*from訂購單where訂購單號>'or3'字符串比較純英文字符串的比較按照字典順序進(jìn)行,先比較第一個(gè)字日期時(shí)間的比較比較方法按照年、月、日、小時(shí)、分鐘、秒進(jìn)行比較。執(zhí)行下面的代碼:use企業(yè)銷售管理系統(tǒng)select*from訂購單where訂購日期>'2004-09-01'日期時(shí)間的比較比較方法按照年、月、日、小時(shí)、分鐘、秒進(jìn)行比較3.1.4.2邏輯運(yùn)算符(P69)SQL中的邏輯運(yùn)算符共有3種:and(與)or(或)not(非)內(nèi)蒙古利豐汽車孫建新3.1.4.2邏輯運(yùn)算符(P69)SQL中的邏輯運(yùn)算符共有and(與)and運(yùn)算符可以連接兩個(gè)或兩個(gè)以上的條件,只有當(dāng)and連接的條件都為真時(shí),and的結(jié)果才為真。執(zhí)行代碼如下:

use企業(yè)銷售管理系統(tǒng)

select*from職工where工資>1510and倉庫號!='wh2'and(與)and運(yùn)算符可以連接兩個(gè)或兩個(gè)以上的條件,只有當(dāng)or(或)當(dāng)or連接的條件中有一個(gè)為真,or的結(jié)果就為真。執(zhí)行代碼如下:

use企業(yè)銷售管理系統(tǒng)

select*from職工where工資>2000or倉庫號='wh1'or(或)當(dāng)or連接的條件中有一個(gè)為真,or的結(jié)果就為真。not(非)表示將原條件取反,如果原條件為真,則加上not后就是假。執(zhí)行代碼如下:

use企業(yè)銷售管理系統(tǒng)

select*from職工wherenot工資>1500not(非)表示將原條件取反,如果原條件為真,則加上not后3.1.4.3運(yùn)算符的優(yōu)先級(P70)SQL語句各運(yùn)算符的優(yōu)先級如71頁圖31-2所示執(zhí)行代碼如下:

use企業(yè)銷售管理系統(tǒng)

select*from職工where(倉庫號='wh1'or倉庫號='wh2')andnot性別='女'and工資>1300and工資<2100

內(nèi)蒙古利豐汽車孫建新3.1.4.3運(yùn)算符的優(yōu)先級(P70)SQL語句各運(yùn)算符3.1.5謂詞in查詢(P71)

使用多個(gè)or運(yùn)算符將使where子句過長,這時(shí)使用in就非常方便。使用or運(yùn)算

select*from訂購單

where職工號='zg1'or職工號='zg11'or職工號='zg15'

使用謂詞inselect*from訂購單where職工號in('zg1','zg11','zg15')內(nèi)蒙古利豐汽車孫建新3.1.5謂詞in查詢(P71)使用多個(gè)or運(yùn)算符將使w3.1.6模糊like查詢(P72)有時(shí)我們不清楚所要查詢的確切信息,如不能確定職工的姓名,只知道姓’王’,該如何查找。SQL提供了like關(guān)鍵字。執(zhí)行以下代碼:use企業(yè)銷售管理系統(tǒng)select*from職工where姓名like'王%'select*from職工where姓名notlike'王%'select*from職工where姓名notlike'王_'內(nèi)蒙古利豐汽車孫建新3.1.6模糊like查詢(P72)有時(shí)我們不清楚所要查詢3.1.7空值null查詢(P74)很多情況下表中記錄某一列的值是空值。空值null不能使用比較運(yùn)算符,null代表的是未知,null不代表任何值。執(zhí)行以下代碼:use企業(yè)銷售管理系統(tǒng)select*from職工where性別isnullselect*from職工where性別isnotnull內(nèi)蒙古利豐汽車孫建新3.1.7空值null查詢(P74)很多情況下表中記錄某一3.1.8限制范圍between…and查詢(P75)限制范圍可以使用大于等于號、小于等于號和and運(yùn)算符三者來完成范圍的限制,但使用between…and結(jié)構(gòu)會使SQL更清楚。use企業(yè)銷售管理系統(tǒng)select*from職工where工資>=1300and工資<=1900使用限制范圍select*from職工

where工資

between1300and1900內(nèi)蒙古利豐汽車孫建新3.1.8限制范圍between…and查詢(P75)限制3.1.9消除重復(fù)字段數(shù)據(jù)distinct查詢(P75)使用關(guān)鍵字distinct可以從結(jié)果中除去重復(fù)的行use企業(yè)銷售管理系統(tǒng)select工資from職工selectdistinct工資from職工內(nèi)蒙古利豐汽車孫建新3.1.9消除重復(fù)字段數(shù)據(jù)distinct查詢(P75)3.1.10實(shí)例剖析----企業(yè)銷售管理系統(tǒng)(P76)use企業(yè)銷售管理系統(tǒng)

select*from供應(yīng)商where供應(yīng)商名like'%廠%'select*from訂購單where供應(yīng)商號in('s1','s2','s5')and金額between8000and1600and訂購日期>='2004-09-02‘select倉庫號,城市from倉庫where城市isnotnulland面積!=900內(nèi)蒙古利豐汽車孫建新3.1.10實(shí)例剖析----企業(yè)銷售管理系統(tǒng)(P76)us3.2嵌套查詢(P77)嵌套查詢就是在一個(gè)select查詢語句中嵌套了另一個(gè)select子查詢語句,即一個(gè)select查詢結(jié)果作為另一個(gè)查詢的一部分。內(nèi)蒙古利豐汽車孫建新3.2嵌套查詢(P77)嵌套查詢就是在一個(gè)select查3.2.1單表嵌套查詢(P77)單表嵌套查詢就是在一個(gè)select查詢語句中嵌套了另一個(gè)select子查詢語句首先利用select語句求出wh1倉庫的面積,然后再顯示面積大于該值的倉庫信息。use企業(yè)銷售管理系統(tǒng)select*from倉庫where面積>(select面積from倉庫where倉庫號='wh1')嵌套查詢中也可以帶有邏輯運(yùn)算符、謂詞in、like、between…and等。內(nèi)蒙古利豐汽車孫建新3.2.1單表嵌套查詢(P77)單表嵌套查詢就是在一個(gè)s3.2.2多表嵌套查詢(P78)多表查詢語句就是外層select語句與內(nèi)層select語句來源于不同的表use企業(yè)銷售管理系統(tǒng)select*from職工where倉庫號in(select倉庫號from倉庫where城市='北京')select*from訂購單where職工號in(select職工號from職工where倉庫號in(select倉庫號from倉庫where城市='北京'))內(nèi)蒙古利豐汽車孫建新3.2.2多表嵌套查詢(P78)多表查詢語句就是外層sel3.2.3實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例4(P79)沒有職工的倉庫信息,就是該倉庫中沒有職工,哪個(gè)倉庫號沒有在職工表中出現(xiàn)。use企業(yè)銷售管理系統(tǒng)select*from倉庫where倉庫號notin(select倉庫號from職工)內(nèi)蒙古利豐汽車孫建新3.2.3實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例4(P7實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例5(P80)顯示供應(yīng)商名中含有“青島”兩個(gè)字的供應(yīng)商的訂購單信息,并且不顯示zg15和zg9職工的訂單信息。use企業(yè)銷售管理系統(tǒng)select*from訂購單where供應(yīng)商號in(select供應(yīng)商號from供應(yīng)商where供應(yīng)商名like'%青島%')and職工號notin('zg15','zg9')實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例5(P80)顯示供應(yīng)實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例6(P80)顯示至少經(jīng)手一次訂單的職工信息use企業(yè)銷售管理系統(tǒng)select*from職工where職工號in(select職工號from訂購單)實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例6(P80)顯示至少實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例7(P80)顯示城市不為空,工資在1200到2100之間,銷售金額不在8000到1200之間的職工信息use企業(yè)銷售管理系統(tǒng)select*from職工where倉庫號in(select倉庫號from倉庫where城市isnotnull)and工資between1300and2100and職工號in(select職工號from訂購單where金額notbetween8000and12000)實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例7(P80)顯示城市實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例8(P81)顯示工資在職工zg1到zg15工資之間的,職工所在城市為“北京”的職工信息use企業(yè)銷售管理系統(tǒng)select*from職工where工資between(select工資from職工where職工號='zg1')and(select工資from職工where職工號='zg15')and倉庫號in(select倉庫號from倉庫where城市='北京')實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例8(P81)顯示工資3.3排順查詢(P81)查詢顯示結(jié)果一般按照數(shù)據(jù)被添加到表時(shí)的順序顯示,可是在實(shí)際運(yùn)用中往往要求按指定的字段進(jìn)行排序顯示。內(nèi)蒙古利豐汽車孫建新3.3排順查詢(P81)查詢顯示結(jié)果一般按照數(shù)據(jù)被添加到表3.3.1單級排序(P82)排序的關(guān)鍵字是orderby,默認(rèn)升序,升序關(guān)鍵字asc,降序排列關(guān)鍵字desc。use企業(yè)銷售管理系統(tǒng)select*from職工orderby工資desc內(nèi)蒙古利豐汽車孫建新3.3.1單級排序(P82)排序的關(guān)鍵字是orderby3.3.2多級排序(P82)先按工資降序,再按職工ID升序:use企業(yè)銷售管理系統(tǒng)select*from職工orderby工資desc,職工IDasc內(nèi)蒙古利豐汽車孫建新3.3.2多級排序(P82)先按工資降序,再按職工ID升序3.4統(tǒng)計(jì)函數(shù)與別名查詢(P83)實(shí)際應(yīng)用中經(jīng)常需要得到某項(xiàng)值的總和、平均值、最大值等,常用的函數(shù)有5個(gè):count()……統(tǒng)計(jì)個(gè)數(shù)sum()……計(jì)算總和avg()……計(jì)算平均值max()……確定最大值min()……確定最小值內(nèi)蒙古利豐汽車孫建新3.4統(tǒng)計(jì)函數(shù)與別名查詢(P83)實(shí)際應(yīng)用中經(jīng)常需要得到某3.4.1與列名一起使用的統(tǒng)計(jì)函數(shù)(P84)use企業(yè)銷售管理系統(tǒng)selectmax(工資),min(工資),sum(工資),avg(工資),count(*)from職工以上查詢結(jié)果中統(tǒng)計(jì)值沒有列名,用下面的代碼可顯示列名:selectmax(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工內(nèi)蒙古利豐汽車孫建新3.4.1與列名一起使用的統(tǒng)計(jì)函數(shù)(P84)use企業(yè)銷3.4.2帶有統(tǒng)計(jì)函數(shù)的嵌套查詢(P85)use企業(yè)銷售管理系統(tǒng)select*from職工where工資>(selectavg(工資)from職工)select*from職工where工資>(selectavg(工資)from職工where倉庫號='wh1'or倉庫號='wh2')and姓名notlike'%亮%'內(nèi)蒙古利豐汽車孫建新3.4.2帶有統(tǒng)計(jì)函數(shù)的嵌套查詢(P85)use企業(yè)銷售3.4.3統(tǒng)計(jì)函數(shù)字段中添加運(yùn)算字段(P86)use企業(yè)銷售管理系統(tǒng)select*,(selectavg(工資)from職工)as平均工資from職工select職工.*,(selectavg(工資)from職工)as平均工資from職工select職工.*,(selectavg(工資)from職工)as平均工資,工資-(selectavg(工資)from職工)as與平均工資的差from職工內(nèi)蒙古利豐汽車孫建新3.4.3統(tǒng)計(jì)函數(shù)字段中添加運(yùn)算字段(P86)use企業(yè)3.5分組查詢(P86)分組查詢的關(guān)鍵字是groupby在分組查詢中要注意條件的運(yùn)用,分組之前的條件要用where,分組之后的條件要用having內(nèi)蒙古利豐汽車孫建新3.5分組查詢(P86)分組查詢的關(guān)鍵字是groupby3.5.1groupby分組查詢(P86)use企業(yè)銷售管理系統(tǒng)selectmax(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工groupby倉庫號內(nèi)蒙古利豐汽車孫建新3.5.1groupby分組查詢(P86)use企業(yè)銷分組查詢中帶有邏輯運(yùn)算符分組查詢中帶有邏輯運(yùn)算符、謂詞in、like、between…end等首先用select求出職工zg1的工資,然后再分組顯示統(tǒng)計(jì)信息。use企業(yè)銷售管理系統(tǒng)selectmax(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工where工資>(select工資from職工where職工號='zg1')groupby倉庫號分組查詢中帶有邏輯運(yùn)算符分組查詢中帶有邏輯運(yùn)算符、謂詞in、3.5.2帶有having的分組查詢(P87)分組之前的條件要用where關(guān)鍵字,而分組之后的條件要用having關(guān)鍵字use企業(yè)銷售管理系統(tǒng)selectmax(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工groupby倉庫號

havingavg(工資)>1760內(nèi)蒙古利豐汽車孫建新3.5.2帶有having的分組查詢(P87)分組之前在分組查詢的having條件中帶有邏輯運(yùn)算符在分組查詢的having條件中帶有邏輯運(yùn)算符、謂詞in、like、between…anduse企業(yè)銷售管理系統(tǒng)select倉庫號,max(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工groupby倉庫號havingavg(工資)>1760andmax(工資)-min(工資)between380and800在分組查詢的having條件中帶有邏輯運(yùn)算符在分組查詢的ha3.5.3帶有分組的嵌套查詢

(P88)use企業(yè)銷售管理系統(tǒng)select*from倉庫where倉庫號in(select倉庫號from職工groupby倉庫號havingmax(工資)-min(工資)between380and800)內(nèi)蒙古利豐汽車孫建新3.5.3帶有分組的嵌套查詢

(P88)use企業(yè)銷售管3.5.4內(nèi)外層嵌套實(shí)現(xiàn)分組功能(P88)顯示不同職工經(jīng)手訂單金額最大的訂單信息use企業(yè)銷售管理系統(tǒng)selecta.*from訂購單

awhere金額=(selectmax(金額)from訂購單where職工號=a.職工號)內(nèi)蒙古利豐汽車孫建新3.5.4內(nèi)外層嵌套實(shí)現(xiàn)分組功能(P88)顯示不同職工經(jīng)手3.5.5在分組查詢字段中添加運(yùn)算字段(P89)在職工表中添加職工所在倉庫的平均工資值字段,就可以利用平均字段進(jìn)行運(yùn)算,大大提高編程速度。use企業(yè)銷售管理系統(tǒng)selecta.*,(selectavg(工資)from職工where倉庫號=a.倉庫號)as所在倉庫的平均工資

from職工

a內(nèi)蒙古利豐汽車孫建新3.5.5在分組查詢字段中添加運(yùn)算字段(P89)在職工表中在分組查詢字段中添加運(yùn)算字段在select查詢中,還可以計(jì)算出每名職工的工資與職工所在倉庫的平均工資之差use企業(yè)銷售管理系統(tǒng)selecta.*,(selectavg(工資)from職工where倉庫號=a.倉庫號)as所在倉庫的平均工資,工資-(selectavg(工資)from職工where倉庫號=a.倉庫號)as與所在倉庫平均工資之差from職工a在分組查詢字段中添加運(yùn)算字段在select查詢中,還可以計(jì)3.6謂詞與量詞查詢(P90)謂詞in與notin,exists與notexists這兩個(gè)謂詞實(shí)現(xiàn)的功能相同,只是寫法不同。常用量詞有any、all、some,any和some是同義詞內(nèi)蒙古利豐汽車孫建新3.6謂詞與量詞查詢(P90)謂詞in與notin,e3.6.1exits謂詞查詢(P90)用exists謂詞實(shí)現(xiàn)use企業(yè)銷售管理系統(tǒng)select*from倉庫wherenotexists(select*from職工where倉庫號=倉庫.倉庫號)用in謂詞實(shí)現(xiàn)select*from倉庫where倉庫號notin(select倉庫號from職工)查詢結(jié)果相同內(nèi)蒙古利豐汽車孫建新3.6.1exits謂詞查詢(P90)用exists謂詞3.6.2any量詞查詢(P91)用any量詞實(shí)現(xiàn)use企業(yè)銷售管理系統(tǒng)select*from職工where工資>=any(select工資from職工where倉庫號='wh2')用統(tǒng)計(jì)函數(shù)實(shí)現(xiàn)select*from職工where工資>=(selectmin(工資)from職工where倉庫號=‘wh2’)查詢結(jié)果相同內(nèi)蒙古利豐汽車孫建新3.6.2any量詞查詢(P91)用any量詞實(shí)現(xiàn)內(nèi)蒙古3.6.3all量詞查詢(P92)all量詞查詢要求查詢中所有行都使結(jié)果為真時(shí)結(jié)果才為真用all量詞實(shí)現(xiàn)use企業(yè)銷售管理系統(tǒng)select*from職工where工資>=all(select工資from職工where倉庫號='wh1')用統(tǒng)計(jì)函數(shù)實(shí)現(xiàn)select*from職工where工資>=(selectMAX(工資)from職工where倉庫號='wh1')結(jié)果相同內(nèi)蒙古利豐汽車孫建新3.6.3all量詞查詢(P92)all量詞查詢要求查詢3.7顯示部分記錄的top查詢(P94)在編程中,有時(shí)只需要顯示滿足條件的幾條記錄,這時(shí)可以使用top關(guān)鍵字??梢灾苯邮褂胻op數(shù)字顯示指定條數(shù)記錄,也可以使用top數(shù)字percent顯示滿足條件記錄的前百分之幾條記錄。use企業(yè)銷售管理系統(tǒng)selecttop3*from職工

orderby工資

desc內(nèi)蒙古利豐汽車孫建新3.7顯示部分記錄的top查詢(P94)在編程中,有時(shí)只需要實(shí)例10顯示訂單金額最低的前40%條訂單信息use企業(yè)銷售管理系統(tǒng)selecttop40percent*from訂購單

orderby金額

asc實(shí)例10顯示訂單金額最低的前40%條訂單信息3.8保存查詢(P95)利用into語句可以把查詢結(jié)果保存成一張新表。use企業(yè)銷售管理系統(tǒng)select*into職工備份

from職工生成一張新表,表名是“職工備份”。內(nèi)蒙古利豐汽車孫建新3.8保存查詢(P95)利用into語句可以把查詢結(jié)果保3.9集合的并運(yùn)算(P95)SQL支持集合的并運(yùn)算(union),即可以將兩個(gè)select語句的查詢結(jié)果通過并運(yùn)算合并成一個(gè)查詢結(jié)果。為了進(jìn)行并運(yùn)算,要求這樣的兩個(gè)查詢具有相同的字段個(gè)數(shù),對應(yīng)的字段值要出自同一個(gè)值域,即具有相同的數(shù)據(jù)類型和取值范圍。use企業(yè)銷售管理系統(tǒng)select*from倉庫where城市='北京'unionselect*from倉庫where城市='上海'內(nèi)蒙古利豐汽車孫建新3.9集合的并運(yùn)算(P95)SQL支持集合的并運(yùn)算(uni3.10集合的交運(yùn)算(P96)SQL支持集合的交運(yùn)算(intersect),可以將兩個(gè)select語句的查詢結(jié)果通過交運(yùn)算合并成一個(gè)查詢結(jié)果。為了進(jìn)行并運(yùn)算,要求這樣的兩個(gè)查詢具有相同的字段個(gè)數(shù),對應(yīng)的字段值要出自同一個(gè)值域,即具有相同的數(shù)據(jù)類型和取值范圍。use企業(yè)銷售管理系統(tǒng)select倉庫號from倉庫intersect倉庫號from職工內(nèi)蒙古利豐汽車孫建新3.10集合的交運(yùn)算(P96)SQL支持集合的交運(yùn)算(in3.11連接查詢(P96)連接就是將多個(gè)表中的數(shù)據(jù)結(jié)合到一起的查詢,即可以在一個(gè)select語句中完成從多個(gè)表中查找和處理的數(shù)據(jù)。使用連接的列必須具有相同的數(shù)據(jù)類型和相同的意義內(nèi)蒙古利豐汽車孫建新3.11連接查詢(P96)連接就是將多個(gè)表中的數(shù)據(jù)結(jié)合到一3.11.1笛卡爾積(P97)從原理上說,連接首先形成表的笛卡兒集,即形成用于連接的表中所有行的組合。use企業(yè)銷售管理系統(tǒng)select*from職工,倉庫內(nèi)蒙古利豐汽車孫建新3.11.1笛卡爾積(P97)從原理上說,連接首先形成表的3.11.2多表連接(P97)在進(jìn)行多表連接時(shí),一定要注意連接條件。use企業(yè)銷售管理系統(tǒng)select*from職工,倉庫where職工.倉庫號=倉庫.倉庫號內(nèi)蒙古利豐汽車孫建新3.11.2多表連接(P97)在進(jìn)行多表連接時(shí),一定要注意3.12超連接查詢(P98)超連接查詢必須有兩張或兩張以上的表。超連接查詢包括4種:內(nèi)連接查詢、左連接查詢、右連接查詢、全連接查詢??梢园巡粷M足條件的記錄以null來顯示。內(nèi)蒙古利豐汽車孫建新3.12超連接查詢(P98)超連接查詢必須有兩張或兩張以上3.12.1內(nèi)連接(P98)只有滿足連接條件的記錄才出現(xiàn)在查詢結(jié)果中超連接select倉庫.倉庫號,職工號,城市,面積,工資from倉庫innerjoin職工on職工.倉庫號=倉庫.倉庫號and面積>600普通連接select倉庫.倉庫號,職工號,城市,面積,工資from職工,倉庫where職工.倉庫號=倉庫.倉庫號and面積>600內(nèi)蒙古利豐汽車孫建新3.12.1內(nèi)連接(P98)只有滿足連接條件的記錄才出現(xiàn)在3.12.2左連接(P99)除滿足連接條件的記錄外,第一張表中不滿足條件的記錄也出現(xiàn)在查詢結(jié)果集中。use企業(yè)銷售管理系統(tǒng)select倉庫.倉庫號,職工號,城市,面積,工資from倉庫leftjoin職工on職工.倉庫號=倉庫.倉庫號and面積>600內(nèi)蒙古利豐汽車孫建新3.12.2左連接(P99)除滿足連接條件的記錄外,第一張3.12.3右連接(P100)除滿足連接條件的記錄外,第二張表中不滿足條件的記錄也出現(xiàn)在查詢結(jié)果集中。use企業(yè)銷售管理系統(tǒng)select倉庫.倉庫號,職工號,城市,面積,工資from倉庫rightjoin職工on職工.倉庫號=倉庫.倉庫號and面積>600內(nèi)蒙古利豐汽車孫建新3.12.3右連接(P100)除滿足連接條件的記錄外,第二3.12.4全連接(P100)除滿足連接條件的記錄外,兩張表中不滿足連接條件的記錄也出現(xiàn)在查詢結(jié)果集中。use企業(yè)銷售管理系統(tǒng)select倉庫.倉庫號,職工號,城市,面積,工資from倉庫fulljoin職工on職工.倉庫號=倉庫.倉庫號and面積>600內(nèi)蒙古利豐汽車孫建新3.12.4全連接(P100)除滿足連接條件的記錄外,兩張3.12.5多表超連接(P101)要顯示的字段來源于三張表,倉庫表、職工表、訂購單use企業(yè)銷售管理系統(tǒng)select倉庫.倉庫號,職工.職工號,城市,面積,工資,金額from倉庫leftjoin職工on職工.倉庫號=倉庫.倉庫號rightjoin訂購單on職工.職工號=訂購單.職工號and面積>600內(nèi)蒙古利豐汽車孫建新3.12.5多表超連接(P101)要顯示的字段來源于三張表3.1.3SQL操作功能(P101)SQL操作功能主要包括對數(shù)據(jù)的插入、刪除、更新三個(gè)方面的內(nèi)容。內(nèi)蒙古利豐汽車孫建新3.1.3SQL操作功能(P101)SQL操作功能主要包括3.13.1插入語句(P102)向數(shù)據(jù)表中插入數(shù)據(jù),語法格式如下:insertintoTablename[(column1,column2….)]values(value1,value2…)方括號為可選,指表的列名(字段名)。若列出了表的列名,在values中列出的添加的數(shù)據(jù),其順序必須與列出的列名的排列位置相對應(yīng)。若沒有列出表的列名,在values中列出的添加數(shù)據(jù)的順序必須與表中列的順序相對應(yīng),尤其要注意數(shù)據(jù)類型的一致。內(nèi)蒙古利豐汽車孫建新3.13.1插入語句(P102)向數(shù)據(jù)表中插入數(shù)據(jù),語法格3.13.1.1指定所有列(P102)列出字段名

use企業(yè)銷售管理系統(tǒng)

insertinto倉庫(倉庫號,城市,面積,創(chuàng)建時(shí)間)values('wh6','鄭州',800,'2005-12-01')不列出字段名

insertinto倉庫values('wh7','鄭州',800,'2005-12-01')內(nèi)蒙古利豐汽車孫建新3.13.1.1指定所有列(P102)列出字段名內(nèi)蒙古利豐3.13.1.2指定部分列(P103)use企業(yè)銷售管理系統(tǒng)insertinto倉庫(倉庫號,面積)values('wh8',800)內(nèi)蒙古利豐汽車孫建新3.13.1.2指定部分列(P103)use企業(yè)銷售管理3.13.1.3帶有子查詢的插入語句(P104)創(chuàng)建一張與倉庫結(jié)構(gòu)相同的空表use企業(yè)銷售管理系統(tǒng)select*into倉庫blankfrom倉庫where面積<0insertinto倉庫blank(倉庫號,城市,面積,創(chuàng)建時(shí)間)select倉庫號,城市,面積,創(chuàng)建時(shí)間from倉庫where面積>600顯示(7行受影響),表示有7行已經(jīng)插入到倉庫blank中內(nèi)蒙古利豐汽車孫建新3.13.1.3帶有子查詢的插入語句(P104)創(chuàng)建一張與3.13.2更新語句(P105)更新數(shù)據(jù)的語法:UpdateTablenamesetcolumnname1=value1[,columnname2=value2…][wherecondition]關(guān)鍵字set之后是列和列的新值。關(guān)鍵字where可以有也可沒有,如果不加條件,則修改了整個(gè)表的所有記錄。內(nèi)蒙古利豐汽車孫建新3.13.2更新語句(P105)更新數(shù)據(jù)的語法:內(nèi)蒙古利豐3.13.2.1修改所有記錄(P105)use企業(yè)銷售管理系統(tǒng)update倉庫set面積=面積+100(8行受影響)成功修改了表中的所有記錄內(nèi)蒙古利豐汽車孫建新3.13.2.1修改所有記錄(P105)use企業(yè)銷售管3.13.2.2指定條件的更新語句(P106)use企業(yè)銷售管理系統(tǒng)update倉庫set面積=面積+100where城市='上海'or城市='北京'內(nèi)蒙古利豐汽車孫建新3.13.2.2指定條件的更新語句(P106)use企業(yè)3.13.3刪除語句(P106)刪除數(shù)據(jù)的語法格式如下:deletefromTablename[wherecondition]delete語句不會刪除表。delete語句不能刪除單個(gè)列的值,而是刪除整條記錄。如果不加條件,則刪除整張表中的所有記錄。內(nèi)蒙古利豐汽車孫建新3.13.3刪除語句(P106)刪除數(shù)據(jù)的語法格式如下:內(nèi)3.13.3.1指定條件的刪除語句use企業(yè)銷售管理系統(tǒng)deletefrom倉庫blankwhere面積>900內(nèi)蒙古利豐汽車孫建新3.13.3.1指定條件的刪除語句use企業(yè)銷售管理系統(tǒng)3.13.3.2刪除表中所有記錄用delete刪除use企業(yè)銷售管理系統(tǒng)deletefrom倉庫blank用truncate刪除use企業(yè)銷售管理系統(tǒng)truncatetable倉庫blank內(nèi)蒙古利豐汽車孫建新3.13.3.2刪除表中所有記錄用delete刪除內(nèi)蒙古利演講完畢,謝謝觀看!演講完畢,謝謝觀看!功能強(qiáng)大的SQL語句利用SQL語句,可以查詢、插入、更新、刪除數(shù)據(jù)庫中的數(shù)據(jù)。內(nèi)蒙古利豐汽車孫建新功能強(qiáng)大的SQL語句利用SQL語句,可以查詢、插入、更新、刪3.1select語句解析與簡單SQL語句(P63)從某種意義上說,select語句是數(shù)據(jù)庫結(jié)構(gòu)化查詢語言SQL的真正核心。使用select語句可以以多種不同的方式查找數(shù)據(jù)庫中的數(shù)據(jù),并且可以顯示通過現(xiàn)有數(shù)據(jù)推導(dǎo)、計(jì)算出的數(shù)據(jù)信息。內(nèi)蒙古利豐汽車孫建新3.1select語句解析與簡單SQL語句(P63)從3.1.1select語句解析(P64)在數(shù)據(jù)庫引擎查詢文檔中輸入64頁的代碼

use企業(yè)銷售管理系統(tǒng)

select倉庫號,城市,面積,創(chuàng)建時(shí)間from倉庫where面積>800執(zhí)行該SQL語句,就可以從數(shù)據(jù)庫表“倉庫”中挑選出面積大于800的倉庫號、城市、面積、創(chuàng)建時(shí)間信息。內(nèi)蒙古利豐汽車孫建新3.1.1select語句解析(P64)在數(shù)據(jù)庫引擎查Select語言句的基本格式Select語言句的基本格式是:

select[alldistinct]select_listfromtable_list/view_list[whereconditions][groupbygroup_list][havingconditions][orderbyorder_list]Select語言句的基本格式Select語言句的基本格式是:3.1.2選擇所有的列(P65)Select語句的第一個(gè)子句,即select關(guān)鍵字開頭的子句,用于選擇進(jìn)行顯示的列,并且可以指定是否顯示重復(fù)的記錄。在數(shù)據(jù)庫引擎輸入如下代碼:

use企業(yè)銷售管理系統(tǒng)

select職工ID,職工號,倉庫號,姓名,性別,工資from職工內(nèi)蒙古利豐汽車孫建新3.1.2選擇所有的列(P65)Select語句的第一3.1.3投影查詢(P66)有時(shí)并不需要將所有的列都顯示出來,投影查詢就是允許用戶顯示所需要的列。如:

use企業(yè)銷售管理系統(tǒng)

select職工號,姓名,工資from職工內(nèi)蒙古利豐汽車孫建新3.1.3投影查詢(P66)有時(shí)并不需要將所有的列都顯示3.1.4條件查詢(P66)Where子句是在使用select語句進(jìn)行查詢時(shí)最重要的子句,在where子句中指出了檢索的條件,系統(tǒng)進(jìn)行檢索時(shí)將按照這些指定的條件對記錄進(jìn)行檢索,找出符合條件的記錄。在SQL中提供了各種運(yùn)算符和關(guān)鍵字來實(shí)現(xiàn)搜索條件,其中運(yùn)算符分為比較運(yùn)算符與邏輯運(yùn)算符,關(guān)鍵字有in、like、between…and、isnull、isnotnull等。內(nèi)蒙古利豐汽車孫建新3.1.4條件查詢(P66)Where子句是在使用sel3.1.4.1比較運(yùn)算符(P67)比較運(yùn)算符在where字句中使用非常普遍,幾乎所有的條件查詢都要用到比較運(yùn)算符。如67頁表3-1所列出的比較運(yùn)算符。內(nèi)蒙古利豐汽車孫建新3.1.4.1比較運(yùn)算符(P67)比較運(yùn)算符在where數(shù)字的比較顯示訂單金額大于10000元的訂單信息,執(zhí)行下面的代碼:

use企業(yè)銷售管理系統(tǒng)

select*from訂購單where金額>10000數(shù)字的比較顯示訂單金額大于10000元的訂單信息,執(zhí)行下面的字符串比較純英文字符串的比較按照字典順序進(jìn)行,先比較第一個(gè)字母在字典順序中的位置,位置在前的字符小于位置在后面的字符,若第一個(gè)字符相同則繼續(xù)比較第二個(gè)字符,直到得出比較結(jié)果。執(zhí)行下面的代碼:use企業(yè)銷售管理系統(tǒng)select*from訂購單where訂購單號>'or3'字符串比較純英文字符串的比較按照字典順序進(jìn)行,先比較第一個(gè)字日期時(shí)間的比較比較方法按照年、月、日、小時(shí)、分鐘、秒進(jìn)行比較。執(zhí)行下面的代碼:use企業(yè)銷售管理系統(tǒng)select*from訂購單where訂購日期>'2004-09-01'日期時(shí)間的比較比較方法按照年、月、日、小時(shí)、分鐘、秒進(jìn)行比較3.1.4.2邏輯運(yùn)算符(P69)SQL中的邏輯運(yùn)算符共有3種:and(與)or(或)not(非)內(nèi)蒙古利豐汽車孫建新3.1.4.2邏輯運(yùn)算符(P69)SQL中的邏輯運(yùn)算符共有and(與)and運(yùn)算符可以連接兩個(gè)或兩個(gè)以上的條件,只有當(dāng)and連接的條件都為真時(shí),and的結(jié)果才為真。執(zhí)行代碼如下:

use企業(yè)銷售管理系統(tǒng)

select*from職工where工資>1510and倉庫號!='wh2'and(與)and運(yùn)算符可以連接兩個(gè)或兩個(gè)以上的條件,只有當(dāng)or(或)當(dāng)or連接的條件中有一個(gè)為真,or的結(jié)果就為真。執(zhí)行代碼如下:

use企業(yè)銷售管理系統(tǒng)

select*from職工where工資>2000or倉庫號='wh1'or(或)當(dāng)or連接的條件中有一個(gè)為真,or的結(jié)果就為真。not(非)表示將原條件取反,如果原條件為真,則加上not后就是假。執(zhí)行代碼如下:

use企業(yè)銷售管理系統(tǒng)

select*from職工wherenot工資>1500not(非)表示將原條件取反,如果原條件為真,則加上not后3.1.4.3運(yùn)算符的優(yōu)先級(P70)SQL語句各運(yùn)算符的優(yōu)先級如71頁圖31-2所示執(zhí)行代碼如下:

use企業(yè)銷售管理系統(tǒng)

select*from職工where(倉庫號='wh1'or倉庫號='wh2')andnot性別='女'and工資>1300and工資<2100

內(nèi)蒙古利豐汽車孫建新3.1.4.3運(yùn)算符的優(yōu)先級(P70)SQL語句各運(yùn)算符3.1.5謂詞in查詢(P71)

使用多個(gè)or運(yùn)算符將使where子句過長,這時(shí)使用in就非常方便。使用or運(yùn)算

select*from訂購單

where職工號='zg1'or職工號='zg11'or職工號='zg15'

使用謂詞inselect*from訂購單where職工號in('zg1','zg11','zg15')內(nèi)蒙古利豐汽車孫建新3.1.5謂詞in查詢(P71)使用多個(gè)or運(yùn)算符將使w3.1.6模糊like查詢(P72)有時(shí)我們不清楚所要查詢的確切信息,如不能確定職工的姓名,只知道姓’王’,該如何查找。SQL提供了like關(guān)鍵字。執(zhí)行以下代碼:use企業(yè)銷售管理系統(tǒng)select*from職工where姓名like'王%'select*from職工where姓名notlike'王%'select*from職工where姓名notlike'王_'內(nèi)蒙古利豐汽車孫建新3.1.6模糊like查詢(P72)有時(shí)我們不清楚所要查詢3.1.7空值null查詢(P74)很多情況下表中記錄某一列的值是空值??罩祅ull不能使用比較運(yùn)算符,null代表的是未知,null不代表任何值。執(zhí)行以下代碼:use企業(yè)銷售管理系統(tǒng)select*from職工where性別isnullselect*from職工where性別isnotnull內(nèi)蒙古利豐汽車孫建新3.1.7空值null查詢(P74)很多情況下表中記錄某一3.1.8限制范圍between…and查詢(P75)限制范圍可以使用大于等于號、小于等于號和and運(yùn)算符三者來完成范圍的限制,但使用between…and結(jié)構(gòu)會使SQL更清楚。use企業(yè)銷售管理系統(tǒng)select*from職工where工資>=1300and工資<=1900使用限制范圍select*from職工

where工資

between1300and1900內(nèi)蒙古利豐汽車孫建新3.1.8限制范圍between…and查詢(P75)限制3.1.9消除重復(fù)字段數(shù)據(jù)distinct查詢(P75)使用關(guān)鍵字distinct可以從結(jié)果中除去重復(fù)的行use企業(yè)銷售管理系統(tǒng)select工資from職工selectdistinct工資from職工內(nèi)蒙古利豐汽車孫建新3.1.9消除重復(fù)字段數(shù)據(jù)distinct查詢(P75)3.1.10實(shí)例剖析----企業(yè)銷售管理系統(tǒng)(P76)use企業(yè)銷售管理系統(tǒng)

select*from供應(yīng)商where供應(yīng)商名like'%廠%'select*from訂購單where供應(yīng)商號in('s1','s2','s5')and金額between8000and1600and訂購日期>='2004-09-02‘select倉庫號,城市from倉庫where城市isnotnulland面積!=900內(nèi)蒙古利豐汽車孫建新3.1.10實(shí)例剖析----企業(yè)銷售管理系統(tǒng)(P76)us3.2嵌套查詢(P77)嵌套查詢就是在一個(gè)select查詢語句中嵌套了另一個(gè)select子查詢語句,即一個(gè)select查詢結(jié)果作為另一個(gè)查詢的一部分。內(nèi)蒙古利豐汽車孫建新3.2嵌套查詢(P77)嵌套查詢就是在一個(gè)select查3.2.1單表嵌套查詢(P77)單表嵌套查詢就是在一個(gè)select查詢語句中嵌套了另一個(gè)select子查詢語句首先利用select語句求出wh1倉庫的面積,然后再顯示面積大于該值的倉庫信息。use企業(yè)銷售管理系統(tǒng)select*from倉庫where面積>(select面積from倉庫where倉庫號='wh1')嵌套查詢中也可以帶有邏輯運(yùn)算符、謂詞in、like、between…and等。內(nèi)蒙古利豐汽車孫建新3.2.1單表嵌套查詢(P77)單表嵌套查詢就是在一個(gè)s3.2.2多表嵌套查詢(P78)多表查詢語句就是外層select語句與內(nèi)層select語句來源于不同的表use企業(yè)銷售管理系統(tǒng)select*from職工where倉庫號in(select倉庫號from倉庫where城市='北京')select*from訂購單where職工號in(select職工號from職工where倉庫號in(select倉庫號from倉庫where城市='北京'))內(nèi)蒙古利豐汽車孫建新3.2.2多表嵌套查詢(P78)多表查詢語句就是外層sel3.2.3實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例4(P79)沒有職工的倉庫信息,就是該倉庫中沒有職工,哪個(gè)倉庫號沒有在職工表中出現(xiàn)。use企業(yè)銷售管理系統(tǒng)select*from倉庫where倉庫號notin(select倉庫號from職工)內(nèi)蒙古利豐汽車孫建新3.2.3實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例4(P7實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例5(P80)顯示供應(yīng)商名中含有“青島”兩個(gè)字的供應(yīng)商的訂購單信息,并且不顯示zg15和zg9職工的訂單信息。use企業(yè)銷售管理系統(tǒng)select*from訂購單where供應(yīng)商號in(select供應(yīng)商號from供應(yīng)商where供應(yīng)商名like'%青島%')and職工號notin('zg15','zg9')實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例5(P80)顯示供應(yīng)實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例6(P80)顯示至少經(jīng)手一次訂單的職工信息use企業(yè)銷售管理系統(tǒng)select*from職工where職工號in(select職工號from訂購單)實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例6(P80)顯示至少實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例7(P80)顯示城市不為空,工資在1200到2100之間,銷售金額不在8000到1200之間的職工信息use企業(yè)銷售管理系統(tǒng)select*from職工where倉庫號in(select倉庫號from倉庫where城市isnotnull)and工資between1300and2100and職工號in(select職工號from訂購單where金額notbetween8000and12000)實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例7(P80)顯示城市實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例8(P81)顯示工資在職工zg1到zg15工資之間的,職工所在城市為“北京”的職工信息use企業(yè)銷售管理系統(tǒng)select*from職工where工資between(select工資from職工where職工號='zg1')and(select工資from職工where職工號='zg15')and倉庫號in(select倉庫號from倉庫where城市='北京')實(shí)例剖析----企業(yè)銷售管理系統(tǒng)….實(shí)例8(P81)顯示工資3.3排順查詢(P81)查詢顯示結(jié)果一般按照數(shù)據(jù)被添加到表時(shí)的順序顯示,可是在實(shí)際運(yùn)用中往往要求按指定的字段進(jìn)行排序顯示。內(nèi)蒙古利豐汽車孫建新3.3排順查詢(P81)查詢顯示結(jié)果一般按照數(shù)據(jù)被添加到表3.3.1單級排序(P82)排序的關(guān)鍵字是orderby,默認(rèn)升序,升序關(guān)鍵字asc,降序排列關(guān)鍵字desc。use企業(yè)銷售管理系統(tǒng)select*from職工orderby工資desc內(nèi)蒙古利豐汽車孫建新3.3.1單級排序(P82)排序的關(guān)鍵字是orderby3.3.2多級排序(P82)先按工資降序,再按職工ID升序:use企業(yè)銷售管理系統(tǒng)select*from職工orderby工資desc,職工IDasc內(nèi)蒙古利豐汽車孫建新3.3.2多級排序(P82)先按工資降序,再按職工ID升序3.4統(tǒng)計(jì)函數(shù)與別名查詢(P83)實(shí)際應(yīng)用中經(jīng)常需要得到某項(xiàng)值的總和、平均值、最大值等,常用的函數(shù)有5個(gè):count()……統(tǒng)計(jì)個(gè)數(shù)sum()……計(jì)算總和avg()……計(jì)算平均值max()……確定最大值min()……確定最小值內(nèi)蒙古利豐汽車孫建新3.4統(tǒng)計(jì)函數(shù)與別名查詢(P83)實(shí)際應(yīng)用中經(jīng)常需要得到某3.4.1與列名一起使用的統(tǒng)計(jì)函數(shù)(P84)use企業(yè)銷售管理系統(tǒng)selectmax(工資),min(工資),sum(工資),avg(工資),count(*)from職工以上查詢結(jié)果中統(tǒng)計(jì)值沒有列名,用下面的代碼可顯示列名:selectmax(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工內(nèi)蒙古利豐汽車孫建新3.4.1與列名一起使用的統(tǒng)計(jì)函數(shù)(P84)use企業(yè)銷3.4.2帶有統(tǒng)計(jì)函數(shù)的嵌套查詢(P85)use企業(yè)銷售管理系統(tǒng)select*from職工where工資>(selectavg(工資)from職工)select*from職工where工資>(selectavg(工資)from職工where倉庫號='wh1'or倉庫號='wh2')and姓名notlike'%亮%'內(nèi)蒙古利豐汽車孫建新3.4.2帶有統(tǒng)計(jì)函數(shù)的嵌套查詢(P85)use企業(yè)銷售3.4.3統(tǒng)計(jì)函數(shù)字段中添加運(yùn)算字段(P86)use企業(yè)銷售管理系統(tǒng)select*,(selectavg(工資)from職工)as平均工資from職工select職工.*,(selectavg(工資)from職工)as平均工資from職工select職工.*,(selectavg(工資)from職工)as平均工資,工資-(selectavg(工資)from職工)as與平均工資的差from職工內(nèi)蒙古利豐汽車孫建新3.4.3統(tǒng)計(jì)函數(shù)字段中添加運(yùn)算字段(P86)use企業(yè)3.5分組查詢(P86)分組查詢的關(guān)鍵字是groupby在分組查詢中要注意條件的運(yùn)用,分組之前的條件要用where,分組之后的條件要用having內(nèi)蒙古利豐汽車孫建新3.5分組查詢(P86)分組查詢的關(guān)鍵字是groupby3.5.1groupby分組查詢(P86)use企業(yè)銷售管理系統(tǒng)selectmax(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工groupby倉庫號內(nèi)蒙古利豐汽車孫建新3.5.1groupby分組查詢(P86)use企業(yè)銷分組查詢中帶有邏輯運(yùn)算符分組查詢中帶有邏輯運(yùn)算符、謂詞in、like、between…end等首先用select求出職工zg1的工資,然后再分組顯示統(tǒng)計(jì)信息。use企業(yè)銷售管理系統(tǒng)selectmax(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工where工資>(select工資from職工where職工號='zg1')groupby倉庫號分組查詢中帶有邏輯運(yùn)算符分組查詢中帶有邏輯運(yùn)算符、謂詞in、3.5.2帶有having的分組查詢(P87)分組之前的條件要用where關(guān)鍵字,而分組之后的條件要用having關(guān)鍵字use企業(yè)銷售管理系統(tǒng)selectmax(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工groupby倉庫號

havingavg(工資)>1760內(nèi)蒙古利豐汽車孫建新3.5.2帶有having的分組查詢(P87)分組之前在分組查詢的having條件中帶有邏輯運(yùn)算符在分組查詢的having條件中帶有邏輯運(yùn)算符、謂詞in、like、between…anduse企業(yè)銷售管理系統(tǒng)select倉庫號,max(工資)as最大工資,min(工資)as最小工資,sum(工資)as工資總和,avg(工資)as平均工資,count(*)as職工人數(shù)from職工groupby倉庫號havingavg(工資)>1760andmax(工資)-min(工資)between380and800在分組查詢的having條件中帶有邏輯運(yùn)算符在分組查詢的ha3.5.3帶有分組的嵌套查詢

(P88)use企業(yè)銷售管理系統(tǒng)select*from倉庫where倉庫號in(select倉庫號from職工groupby倉庫號havingmax(工資)-min(工資)between380and800)內(nèi)蒙古利豐汽車孫建新3.5.3帶有分組的嵌套查詢

(P88)use企業(yè)銷售管3.5.4內(nèi)外層嵌套實(shí)現(xiàn)分組功能(P88)顯示不同職工經(jīng)手訂單金額最大的訂單信息use企業(yè)銷售管理系統(tǒng)selecta.*from訂購單

awhere金額=(selectmax(金額)from訂購單where職工號=a.職工號)內(nèi)蒙古利豐汽車孫建新3.5.4內(nèi)外層嵌套實(shí)現(xiàn)分組功能(P88)顯示不同職工經(jīng)手3.5.5在分組查詢字段中添加運(yùn)算字段(P89)在職工表中添加職工所在倉庫的平均工資值字段,就可以利用平均字段進(jìn)行運(yùn)算,大大提高編程速度。use企業(yè)銷售管理系統(tǒng)selecta.*,(selectavg(工資)from職工where倉庫號=a.倉庫號)as所在倉庫的平均工資

from職工

a內(nèi)蒙古利豐汽車孫建新3.5.5在分組查詢字段中添加運(yùn)算字段(P89)在職工表中在分組查詢字段中添加運(yùn)算字段在select查詢中,還可以計(jì)算出每名職工的工資與職工所在倉庫的平均工資之差use企業(yè)銷售管理系統(tǒng)selecta.*,(selectavg(工資)from職工where倉庫號=a.倉庫號)as所在倉庫的平均工資,工資-(selectavg(工資)from職工where倉庫號=a.倉庫號)as與所在倉庫平均工資之差from職工a在分組查詢字段中添加運(yùn)算字段在select查詢中,還可以計(jì)3.6謂詞與量詞查詢(P90)謂詞in與notin,exists與notexists這兩個(gè)謂詞實(shí)現(xiàn)的功能相同,只是寫法不同。常用量詞有any、all、some,any和some是同義詞內(nèi)蒙古利豐汽車孫建新3.6謂詞與量詞查詢(P90)謂詞in與notin,e3.6.1exits謂詞查詢(P90)用exists謂詞實(shí)現(xiàn)use企業(yè)銷售管理系統(tǒng)select*from倉庫wherenotexists(select*from職工where倉庫號=倉庫.倉庫號)用in謂詞實(shí)現(xiàn)select*from倉庫where倉庫號notin(select倉庫號from職工)查詢結(jié)果相同內(nèi)蒙古利豐汽車孫建新3.6.1exits謂詞查詢(P90)用exists謂詞3.6.2any量詞查詢(P91)用any量詞實(shí)現(xiàn)use企業(yè)銷售管理系統(tǒng)select*from職工where工資>=any(select工資from職工where倉庫號='wh2')用統(tǒng)計(jì)函數(shù)實(shí)現(xiàn)select*from職工where工資>=(selectmin(工資)from職工where倉庫號=‘wh2’)查詢結(jié)果相同內(nèi)蒙古利豐汽車孫建新3.6.2any量詞查詢(P91)用any量詞實(shí)現(xiàn)內(nèi)蒙古3.6.3all量詞查詢(P92)all量詞查詢要求查詢中所有行都使結(jié)果為真時(shí)結(jié)果才為真用all量詞實(shí)現(xiàn)use企業(yè)銷售管理系統(tǒng)select*from職工where工資>=all(select工資from職工where倉庫號='wh1')用統(tǒng)計(jì)函數(shù)實(shí)現(xiàn)select*from職工where工資>=(selectMAX(工資)from職工where倉庫號='wh1')結(jié)果相同內(nèi)蒙古利豐汽車孫建新3.6.3all量詞查詢(P92)all量詞查詢要求查詢3.7顯示部分記錄的top查詢(P94)在編程中,有時(shí)只需要顯示滿足條件的幾條記錄,這時(shí)可以使用top關(guān)鍵字。可以直接使用top數(shù)字顯示指定條數(shù)記錄,也可以使用top數(shù)字percent顯示滿足條件記錄的前百分之幾條記錄。use企業(yè)銷售管理系統(tǒng)selecttop3*from職工

orderby工資

desc內(nèi)蒙古利豐汽車孫建新3.7顯示部分記錄的top查詢(P94)在編程中,有時(shí)只需要實(shí)例10顯示訂單金額最低的前40%條訂單信息use企業(yè)銷售管理系統(tǒng)selecttop40percent*from訂購單

orderby金額

asc實(shí)例10顯示訂單金額最低的前40%條訂單信息3.8保存查詢(P95)利用into語句可以把查詢結(jié)果保存成一張新表。use企業(yè)銷售管理系統(tǒng)select*into職工備份

from職工生成一張新表,表名是“職工備份”。內(nèi)蒙古利豐汽車孫建新3.8保存查詢(P95)利用into語句可以把查詢結(jié)果保3.9集合的并運(yùn)算(P95)SQL支持集合的并運(yùn)算(union),即可以將兩個(gè)select語句的查詢結(jié)果通過并運(yùn)算合并成一個(gè)查詢結(jié)果。為了進(jìn)行并運(yùn)算,要求這樣的兩個(gè)查詢具有相同的字段個(gè)數(shù),對應(yīng)的字段值要出自同一個(gè)值域,即具有相同的數(shù)據(jù)類型和取值范圍。use企業(yè)銷售管理系統(tǒng)select*from倉庫where城市='北京'unionselect*from倉庫where城市='上海'內(nèi)蒙古利豐汽車孫建新3.9集合的并運(yùn)算(P95)SQL支持集合的并運(yùn)算(uni3.10集合的交運(yùn)算(P96)SQL支持集合的交運(yùn)算(intersect),可以將兩個(gè)select語句的查詢結(jié)果通過交運(yùn)算合并成一個(gè)查詢結(jié)果。為了進(jìn)行并運(yùn)算,要求這樣的兩個(gè)查

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論