




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ACCESS 數(shù)據(jù)庫(kù)的SQL語(yǔ)句教學(xué)1、 查詢所有記錄:Select *通常用于快速查看表中的記錄。當(dāng)對(duì)表的結(jié)構(gòu)無(wú)法確切記憶時(shí), 或要快速查看表中的記錄時(shí),使用 Select *是很方便的。use企業(yè)銷(xiāo)售管理系統(tǒng)Select * from 職工2、投影查詢:很多時(shí)候并不需要將所有列的數(shù)據(jù)都顯示出來(lái)。投影查詢就是允許用戶顯示 所需要的列。假設(shè)顯示職工表中職工號(hào)、姓名、工資信息,具體操作方法如下。Select職工號(hào),姓名,工資from 職工在Select查詢中,還可以按照實(shí)際的需要或自己的喜好安排顯示列的順序,如果要把姓名 放到第一列,則代碼如下:Select姓名,職工號(hào),工資from 職工3、
2、條件查詢:顯示wh1或wh2倉(cāng)庫(kù)、性別不為女、工資在 13002100之間的職工信 息。具體操作如下:Select * from 職工號(hào) where(倉(cāng)庫(kù)號(hào)=wh1 or 倉(cāng)庫(kù)號(hào)=wh2)And not 性別=女a(chǎn)nd 工資 =1300 and工資 =1300 And 工資 =1900在SQL語(yǔ)句中,還支持BetweenAnd與Not結(jié)合使用。假設(shè)顯示工資不在 13001900 之間的職工信息,具體代碼如下:Betwee n And 語(yǔ)句Select * from 職工 where 工資 not Between 1300 And 1900大于等于號(hào)、小于等于號(hào)與And運(yùn)算符Select * f
3、rom 職工 where 工資=19008消除重復(fù)字段數(shù)據(jù)Distinct查詢:在SQL投影查詢中,可能會(huì)有許多重復(fù)的數(shù)據(jù),使 用關(guān)鍵字 Distinct 就可以從結(jié)果集中除去重復(fù)的數(shù)據(jù)。 下面以顯示職工的工資信息為例具體講 解一下:顯示有重復(fù)的數(shù)據(jù)Select 工資 from 職工顯示無(wú)重復(fù)的數(shù)據(jù)Select Distinct 工資 from 職工9 、單表嵌套查詢: 就是外層 Select 語(yǔ)句與內(nèi)層 Select 語(yǔ)句都來(lái)源于同一張表。 下面以顯 示倉(cāng)庫(kù)面積大于 wh1 倉(cāng)庫(kù)面積的倉(cāng)庫(kù)信息為例來(lái)講解一下。首先利用 Select 語(yǔ)句求出 wh1 倉(cāng)庫(kù)的倉(cāng)庫(kù)面積,然后再顯示面積大于該值的倉(cāng)
4、庫(kù)信息。Select * from 倉(cāng)庫(kù) where 面積 (select 面積 from 倉(cāng)庫(kù) where 倉(cāng)庫(kù)號(hào) =wh1) 嵌套查詢中也可以帶有邏輯運(yùn)算符、謂詞In、Like、BetweenAnd結(jié)構(gòu)。假設(shè)顯示wh1或wh2倉(cāng)庫(kù)的工資不大于職工zg16工資的職工信息,并要求職工姓名不含有“平”字。首先利用Select語(yǔ)句求出職工zg16的工資,然后再對(duì)姓名進(jìn)行模糊查詢。Select * from 職工 where 工資 1 200 and 倉(cāng)庫(kù)號(hào)in (select 倉(cāng)庫(kù)號(hào)from 倉(cāng)庫(kù) where 城市=北京)and 訂購(gòu)日期 bet ween 2003-09-03 and 2006-
5、01-0111、單級(jí)排序查詢:排序的關(guān)鍵字是Order by,默認(rèn)狀態(tài)下是升序,關(guān)鍵字是 Asc。降 序排列的關(guān)鍵字是Desc。排序字段可以是數(shù)值型,也可以是字符型、日期時(shí)間型。下面以按工 資從高到低顯示職工信息為例來(lái)講解一下。Select * from 職工 Order by 工資 desc在排序查詢中還可以帶有邏輯運(yùn)算符、謂詞In、Like、Between、And結(jié)構(gòu)。假設(shè)顯示wh1或wh2倉(cāng)庫(kù)的,工資不大于職工zg16工資的職工信息,并要求職工姓名不含有平”字,按工資從低到高顯示。首先利用Select語(yǔ)句求出職工zg16的工資,然后再對(duì)姓名進(jìn)行模糊查詢,最后再排序。Select * fr
6、om 職工 where 工資 =any(Select工資 from 職工 where 倉(cāng)庫(kù)號(hào)=wh2)使用統(tǒng)計(jì)函數(shù)實(shí)現(xiàn):Select * from 職工 where 工資 =(Select min(工資)from 職工 where 倉(cāng)庫(kù)號(hào)= wh2)23 、All 量詞查詢: All 量詞查詢,要求子查詢中所有行都使結(jié)果為真時(shí),結(jié)果才為真。下 面就以顯示工資大于等于 wh1 倉(cāng)庫(kù)中所有職工工資的職工信息為例, 講解一下 All 量詞的應(yīng)用。用 Any 量詞實(shí)現(xiàn):Select * from 職工 where 工資 =All(Select 工資 from 職工 where 倉(cāng)庫(kù)號(hào)=w h1)使用統(tǒng)
7、計(jì)函數(shù)實(shí)現(xiàn):Select * from 職工 where 工資 =(Select MAX(工資)from 職工 where 倉(cāng)庫(kù)號(hào)= wh1)前面講解的量詞查詢都可以用統(tǒng)計(jì)函數(shù)代替,但有些查詢是不能用統(tǒng)計(jì)函數(shù)代替的。下面 以顯示工資大于所有不同倉(cāng)庫(kù)的平均工資的職工信息為例為講解一下。Select * from 職工 where 工資 all(Select avg(工資)from 職工 group by 倉(cāng)庫(kù) 號(hào))該題用統(tǒng)計(jì)函數(shù)就無(wú)法解決。24 、顯示部分記錄的 Top 查詢: 在編程中,有時(shí)只需顯示滿足條件的前幾條記錄,這時(shí) 就可以使用 Top 關(guān)鍵字。可以直接使用 Top 數(shù)字,顯示指定條數(shù)
8、記錄;也可以使用 Top 數(shù)字 Percent ,顯示所有滿足條件記錄的前百分之幾條記錄。下面以顯示工資最高的前三條職工信息為例來(lái)講解一下。Select top3 * from 職工 order by 工資 desc25 、保存查詢: 利用 Into 語(yǔ)句可以把查詢的結(jié)果保存成一張新表。下面就以備份 “職工” 表為例講解一下保存查詢。Use 企業(yè)銷(xiāo)售管理系統(tǒng)Select * into 職工備份 from 職工這樣就生成一張新表,表名為 “職工備份 ”。26 、集合的并運(yùn)算: SQL 支持集合的并運(yùn)算( Union ),即可以將兩個(gè) Selec 語(yǔ)句的查詢 結(jié)果通過(guò)并運(yùn)算合并成一個(gè)查詢結(jié)果。為了
9、進(jìn)行并運(yùn)算,要求這樣的兩個(gè)查詢結(jié)果具有相同的 字段個(gè)數(shù),并且對(duì)應(yīng)的字段的值要出自同一個(gè)值域,即具有相同的數(shù)據(jù)類(lèi)型和取值范圍。Select * from 倉(cāng)庫(kù) where 城市 = 北京 UnionSelect * from 倉(cāng)庫(kù) where 城市= 上海27 、集合的交運(yùn)算: SQL 支持集合的交運(yùn)算( Intersect ),即可以將兩個(gè) Selec 語(yǔ)句的 查詢結(jié)果通過(guò)交運(yùn)算合并成一個(gè)查詢結(jié)果。為了進(jìn)行交運(yùn)算,要求這樣的兩個(gè)查詢結(jié)果具有相 同的字段個(gè)數(shù),并且對(duì)應(yīng)的字段的值要出自同一個(gè)值域,即具有相同的數(shù)據(jù)類(lèi)型和取值范圍。Select 倉(cāng)庫(kù)號(hào) from 倉(cāng)庫(kù)IntersectSelect 倉(cāng)
10、庫(kù)號(hào) from 職工 注意它們對(duì)集合的差運(yùn)算不支持。28 、多表連接查詢: 多表連接查詢就是將多個(gè)表中的數(shù)據(jù)結(jié)合到一起的查詢,即連接操作 可以在一個(gè) Select 語(yǔ)句中完成從我個(gè)表中查找和處理數(shù)據(jù)。 使用連接的列必須是可連接的, 即 它們具有相同的數(shù)據(jù)類(lèi)型、相同的意義。使用連接的列,列名可以相同,也可以不同。29 、笛卡兒積: 有的時(shí)候,如果連接條件沒(méi)有設(shè)置好,或者沒(méi)有設(shè)置連接條件,則結(jié)果將 包含太多的行,這就是由笛卡兒積造成的。從原理上來(lái)講,連接首先將形成表的笛卡兒積,即 形成用于連接的表中所有的行的組合。下面以倉(cāng)庫(kù)表與職工表連接為例為講解一下。Select * from 職工 , 倉(cāng)庫(kù)
11、這是從兩張表中顯示所有字段,所以字段有重復(fù),并且產(chǎn)生了 90 條記錄,原因是倉(cāng)庫(kù)表中 有5條記錄,職工表有18條記錄,所以連接的結(jié)果是18X 5=90條記錄。用于連接的表越多, 則笛卡兒積的結(jié)果將越大。30 、多表連接: 在進(jìn)行多表連接時(shí),一定要注意連接條件,下面以倉(cāng)庫(kù)表與職工表連接為 例來(lái)講解一下多表連接。Select * from 職工,倉(cāng)庫(kù) where 職工.倉(cāng)庫(kù)號(hào) = 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) 這時(shí)顯示的記錄就沒(méi)有那么多了, 只顯示 18 條記錄,并且發(fā)現(xiàn)兩張表的倉(cāng)庫(kù)號(hào)是相對(duì)應(yīng)的。 假設(shè)顯示工資大于 1500 ,面積大于 600 的城市與姓名信息。Select 城市,姓名 * from 職工,倉(cāng)庫(kù)
12、 where 職工.倉(cāng)庫(kù)號(hào)= 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) and 工資15 00 and 面積 60031 、超連接查詢: 超連接查詢也是連接查詢,所以必須有兩張或兩張以上的表。超連接查 詢共有 4 種:內(nèi)連接查詢、左連接查詢、右連接查詢、全連接查詢。使用超連接查詢不僅可以 把滿足條件的記錄顯示出來(lái),還可以把一部分不滿足條件的記錄以 NULL 顯示出來(lái)。1 )內(nèi)連接查詢: 只有滿足連接條件的記錄才出現(xiàn)在查詢結(jié)果集中。下面以顯示面積大于 6 00 的倉(cāng)庫(kù)號(hào)、職工號(hào)、城市、面積、工資信息為例為講解一下內(nèi)連接:超連接:Select 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào),職工號(hào),城市,面積,工資 from 倉(cāng)庫(kù) inner join 職工
13、 on 職工.倉(cāng)庫(kù) 號(hào)= 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) and 面積 600普通連接:Select 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào),職工號(hào),城市,面積,工資 from 職工,倉(cāng)庫(kù) where 職工.倉(cāng)庫(kù)號(hào)= 倉(cāng)庫(kù). 倉(cāng)庫(kù)號(hào) and 面積 6002 )左連接查詢: 除滿足連接條件的記錄顯示外,第一張表中不滿足條件的記錄也出現(xiàn)在查 詢結(jié)果集中。下面以顯示面積大于 600 的倉(cāng)庫(kù)號(hào)、職工號(hào)、城市、面積、工資信息為例為講解 一下左連接。Select 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) ,職工號(hào) ,城市,面積,工資 from 倉(cāng)庫(kù) left join 職工 on 職工.倉(cāng)庫(kù)號(hào) = 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) and 面積 6003 )右連接查詢: 除滿足連接條件的記錄顯示
14、外,第二張表中不滿足條件的記錄也出現(xiàn) 在查詢結(jié)果集中。下面以顯示面積大于 600 的倉(cāng)庫(kù)號(hào)、職工號(hào)、城市、面積、工資信息為例為 講解一下右連接。Select 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) ,職工號(hào) ,城市,面積,工資 from 倉(cāng)庫(kù) right join 職工 on 職工.倉(cāng)庫(kù) 號(hào)= 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) and 面積 6004 )全連接查詢: 除滿足連接條件的記錄顯示外,兩張表中不滿足條件的記錄也出現(xiàn) 在查詢結(jié)果集中。下面以顯示面積大于 600 的倉(cāng)庫(kù)號(hào)、職工號(hào)、城市、面積、工資信息為例為 講解一下全連接。Select 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) ,職工號(hào) ,城市,面積,工資 from 倉(cāng)庫(kù) full join 職工 on 職工
15、.倉(cāng)庫(kù)號(hào) = 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) and 面積 6005 )多表超連接查詢: 前面講解了兩個(gè)表的超連接,那么如果是 3 張表或更多張表該如何 實(shí)現(xiàn)超鏈接呢?下面以顯示面積大于 600 的倉(cāng)庫(kù)號(hào)、職工號(hào)、城市、面積、工資、金額信息為 例為講解一下多表超連接。要顯示的字段信息來(lái)源于 3 張表,倉(cāng)庫(kù)表、職工表、訂購(gòu)單表,這 里實(shí)現(xiàn)倉(cāng)庫(kù)表與職工表的左連接,職工表與訂購(gòu)單表的右連接。Select 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) ,職工號(hào) ,城市,面積,工資 ,金額 from 倉(cāng)庫(kù) left join 職工 on 職工. 倉(cāng)庫(kù)號(hào)= 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) right join 訂購(gòu)單 on 職工.職工號(hào)= 訂購(gòu)單.職工號(hào) and 面積60
16、032 、 Insert 插入語(yǔ)句: 向數(shù)據(jù)庫(kù)表中插入數(shù)據(jù)是最常用的功能:1 )指定所有列:Insert into 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),城市,面積,創(chuàng)建時(shí)間 ) values (wh6, 鄭州,800,2005-12- 01)按下鍵盤(pán)上的 F5 鍵,會(huì)顯示 (1 行受影響 ) ,這表示已成功地插入一條記錄。再在數(shù)據(jù)庫(kù)引 擎查詢文檔中輸入 “Select * from 倉(cāng)庫(kù) ”,然后按下鍵盤(pán)上的 F5 鍵,就可以執(zhí)行該 SQL 語(yǔ)句, 這樣就可以在查詢結(jié)果上看到你插入的記錄。 在這里要注意, 倉(cāng)庫(kù) ID 是自動(dòng)編號(hào), 所以不能插 入。其實(shí)上面的代碼還可以省略表后面的字段,這樣也可以成功地插入記錄。In
17、sert into 倉(cāng)庫(kù) values (wh6, 鄭州 ,800,2005-12-01)2 )指定部分列: 下面以向倉(cāng)庫(kù)表中添加一條記錄為例來(lái)講解一下指定部分列。Insert into 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào) ,面積) values (wh7,800)上述代碼也可以這樣來(lái)寫(xiě):Insert into 倉(cāng)庫(kù) values (wh7,null,800,null)或Insert into 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),城市,面積,創(chuàng)建時(shí)間 ) values (wh7,null,800,nul)3 )帶有子查詢的插入語(yǔ)句: 使用帶有子查詢的插入語(yǔ)句,首先要注意兩個(gè)表的結(jié)構(gòu)相同。 下面還是用一個(gè)實(shí)例來(lái)講解一下。首先創(chuàng)建一張與倉(cāng)庫(kù)
18、表結(jié)構(gòu)相同的空表,然后在數(shù)據(jù)庫(kù)引擎查詢文檔中輸入如下代碼:Select * into 倉(cāng)庫(kù) blank from 倉(cāng)庫(kù) where 面積 600按下鍵盤(pán)上的 F5 鍵,會(huì)顯示(6 行受影響) ,這表示已成功地插入 6 行記錄。再在數(shù)據(jù)庫(kù)引 擎查詢文檔中輸入 “Select * from 倉(cāng)庫(kù) blank ”,然后按下鍵盤(pán)上的 F5 鍵,就可以執(zhí)行該 S QL 語(yǔ)句,這樣就可以利用 Insert 語(yǔ)句一次向表中插入多條記錄。33 、 Update 更新語(yǔ)句: 向數(shù)據(jù)庫(kù)表中添加記錄后,可能需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。1 )修改所有記錄:下面以為所有倉(cāng)庫(kù)的面積都增加 100 為例為講解一個(gè)修改所有記錄。Update 倉(cāng)庫(kù) set 面積 = 面積+1002 )指定條件的更新語(yǔ)句:下面以把城市在上海或北京的倉(cāng)庫(kù)的面積增加 100 為例,來(lái)講解一下指定條件的更新語(yǔ)句。Use 企業(yè)銷(xiāo)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB36T-多層平養(yǎng)商品肉雞飼養(yǎng)管理規(guī)程編制說(shuō)明
- DB36T-道路運(yùn)輸液體危險(xiǎn)貨物罐式車(chē)輛常壓罐體定期檢驗(yàn)規(guī)則編制說(shuō)明
- 成功備戰(zhàn)2024年農(nóng)作物種子繁育員考試的策略試題及答案
- 農(nóng)業(yè)植保員資格考試復(fù)習(xí)中的試題及答案要點(diǎn)
- 學(xué)習(xí)計(jì)劃制定2024年體育經(jīng)紀(jì)人試題及答案
- 游泳救生員考試成功之路試題及答案
- 2024年貴州省考公務(wù)員考試結(jié)構(gòu)化面試AB卷試題試卷答案解析
- 2024年農(nóng)業(yè)植保員考試中的職場(chǎng)倫理與職業(yè)道德規(guī)范探討試題及答案
- 智慧風(fēng)力發(fā)電項(xiàng)目可行性研究報(bào)告
- 種子生產(chǎn)與管理試題及答案
- GB/T 30819-2024機(jī)器人用諧波齒輪減速器
- 中國(guó)特種兵課件
- 梁板結(jié)構(gòu):雙向板
- 警營(yíng)開(kāi)放日活動(dòng)方案
- 吊籃高處作業(yè)安全交底
- 彩票物流配送服務(wù)投標(biāo)方案(技術(shù)方案)
- DB3301-T 65.28-2024 反恐怖防范系統(tǒng)管理規(guī)范 第28部分:硬質(zhì)隔離設(shè)施
- 預(yù)付款三方監(jiān)管協(xié)議書(shū)模板
- T∕CFA 0308053-2019 鑄造企業(yè)清潔生產(chǎn)要求 導(dǎo)則
- 合同恢復(fù)工作協(xié)議
- T-CPIA 0056-2024 漂浮式水上光伏發(fā)電錨固系統(tǒng)設(shè)計(jì)規(guī)范
評(píng)論
0/150
提交評(píng)論