版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、ACCESS 數(shù)據(jù)庫的SQL語句教學(xué)1、 查詢所有記錄:Select *通常用于快速查看表中的記錄。當(dāng)對表的結(jié)構(gòu)無法確切記憶時, 或要快速查看表中的記錄時,使用 Select *是很方便的。use企業(yè)銷售管理系統(tǒng)Select * from 職工2、投影查詢:很多時候并不需要將所有列的數(shù)據(jù)都顯示出來。投影查詢就是允許用戶顯示 所需要的列。假設(shè)顯示職工表中職工號、姓名、工資信息,具體操作方法如下。Select職工號,姓名,工資from 職工在Select查詢中,還可以按照實際的需要或自己的喜好安排顯示列的順序,如果要把姓名 放到第一列,則代碼如下:Select姓名,職工號,工資from 職工3、
2、條件查詢:顯示wh1或wh2倉庫、性別不為女、工資在 13002100之間的職工信 息。具體操作如下:Select * from 職工號 where(倉庫號=wh1 or 倉庫號=wh2)And not 性別=女a(chǎn)nd 工資 =1300 and工資 =1300 And 工資 =1900在SQL語句中,還支持BetweenAnd與Not結(jié)合使用。假設(shè)顯示工資不在 13001900 之間的職工信息,具體代碼如下:Betwee n And 語句Select * from 職工 where 工資 not Between 1300 And 1900大于等于號、小于等于號與And運算符Select * f
3、rom 職工 where 工資=19008消除重復(fù)字段數(shù)據(jù)Distinct查詢:在SQL投影查詢中,可能會有許多重復(fù)的數(shù)據(jù),使 用關(guān)鍵字 Distinct 就可以從結(jié)果集中除去重復(fù)的數(shù)據(jù)。 下面以顯示職工的工資信息為例具體講 解一下:顯示有重復(fù)的數(shù)據(jù)Select 工資 from 職工顯示無重復(fù)的數(shù)據(jù)Select Distinct 工資 from 職工9 、單表嵌套查詢: 就是外層 Select 語句與內(nèi)層 Select 語句都來源于同一張表。 下面以顯 示倉庫面積大于 wh1 倉庫面積的倉庫信息為例來講解一下。首先利用 Select 語句求出 wh1 倉庫的倉庫面積,然后再顯示面積大于該值的倉
4、庫信息。Select * from 倉庫 where 面積 (select 面積 from 倉庫 where 倉庫號 =wh1) 嵌套查詢中也可以帶有邏輯運算符、謂詞In、Like、BetweenAnd結(jié)構(gòu)。假設(shè)顯示wh1或wh2倉庫的工資不大于職工zg16工資的職工信息,并要求職工姓名不含有“平”字。首先利用Select語句求出職工zg16的工資,然后再對姓名進行模糊查詢。Select * from 職工 where 工資 1 200 and 倉庫號in (select 倉庫號from 倉庫 where 城市=北京)and 訂購日期 bet ween 2003-09-03 and 2006-
5、01-0111、單級排序查詢:排序的關(guān)鍵字是Order by,默認(rèn)狀態(tài)下是升序,關(guān)鍵字是 Asc。降 序排列的關(guān)鍵字是Desc。排序字段可以是數(shù)值型,也可以是字符型、日期時間型。下面以按工 資從高到低顯示職工信息為例來講解一下。Select * from 職工 Order by 工資 desc在排序查詢中還可以帶有邏輯運算符、謂詞In、Like、Between、And結(jié)構(gòu)。假設(shè)顯示wh1或wh2倉庫的,工資不大于職工zg16工資的職工信息,并要求職工姓名不含有平”字,按工資從低到高顯示。首先利用Select語句求出職工zg16的工資,然后再對姓名進行模糊查詢,最后再排序。Select * fr
6、om 職工 where 工資 =any(Select工資 from 職工 where 倉庫號=wh2)使用統(tǒng)計函數(shù)實現(xiàn):Select * from 職工 where 工資 =(Select min(工資)from 職工 where 倉庫號= wh2)23 、All 量詞查詢: All 量詞查詢,要求子查詢中所有行都使結(jié)果為真時,結(jié)果才為真。下 面就以顯示工資大于等于 wh1 倉庫中所有職工工資的職工信息為例, 講解一下 All 量詞的應(yīng)用。用 Any 量詞實現(xiàn):Select * from 職工 where 工資 =All(Select 工資 from 職工 where 倉庫號=w h1)使用統(tǒng)
7、計函數(shù)實現(xiàn):Select * from 職工 where 工資 =(Select MAX(工資)from 職工 where 倉庫號= wh1)前面講解的量詞查詢都可以用統(tǒng)計函數(shù)代替,但有些查詢是不能用統(tǒng)計函數(shù)代替的。下面 以顯示工資大于所有不同倉庫的平均工資的職工信息為例為講解一下。Select * from 職工 where 工資 all(Select avg(工資)from 職工 group by 倉庫 號)該題用統(tǒng)計函數(shù)就無法解決。24 、顯示部分記錄的 Top 查詢: 在編程中,有時只需顯示滿足條件的前幾條記錄,這時 就可以使用 Top 關(guān)鍵字。可以直接使用 Top 數(shù)字,顯示指定條數(shù)
8、記錄;也可以使用 Top 數(shù)字 Percent ,顯示所有滿足條件記錄的前百分之幾條記錄。下面以顯示工資最高的前三條職工信息為例來講解一下。Select top3 * from 職工 order by 工資 desc25 、保存查詢: 利用 Into 語句可以把查詢的結(jié)果保存成一張新表。下面就以備份 “職工” 表為例講解一下保存查詢。Use 企業(yè)銷售管理系統(tǒng)Select * into 職工備份 from 職工這樣就生成一張新表,表名為 “職工備份 ”。26 、集合的并運算: SQL 支持集合的并運算( Union ),即可以將兩個 Selec 語句的查詢 結(jié)果通過并運算合并成一個查詢結(jié)果。為了
9、進行并運算,要求這樣的兩個查詢結(jié)果具有相同的 字段個數(shù),并且對應(yīng)的字段的值要出自同一個值域,即具有相同的數(shù)據(jù)類型和取值范圍。Select * from 倉庫 where 城市 = 北京 UnionSelect * from 倉庫 where 城市= 上海27 、集合的交運算: SQL 支持集合的交運算( Intersect ),即可以將兩個 Selec 語句的 查詢結(jié)果通過交運算合并成一個查詢結(jié)果。為了進行交運算,要求這樣的兩個查詢結(jié)果具有相 同的字段個數(shù),并且對應(yīng)的字段的值要出自同一個值域,即具有相同的數(shù)據(jù)類型和取值范圍。Select 倉庫號 from 倉庫IntersectSelect 倉
10、庫號 from 職工 注意它們對集合的差運算不支持。28 、多表連接查詢: 多表連接查詢就是將多個表中的數(shù)據(jù)結(jié)合到一起的查詢,即連接操作 可以在一個 Select 語句中完成從我個表中查找和處理數(shù)據(jù)。 使用連接的列必須是可連接的, 即 它們具有相同的數(shù)據(jù)類型、相同的意義。使用連接的列,列名可以相同,也可以不同。29 、笛卡兒積: 有的時候,如果連接條件沒有設(shè)置好,或者沒有設(shè)置連接條件,則結(jié)果將 包含太多的行,這就是由笛卡兒積造成的。從原理上來講,連接首先將形成表的笛卡兒積,即 形成用于連接的表中所有的行的組合。下面以倉庫表與職工表連接為例為講解一下。Select * from 職工 , 倉庫
11、這是從兩張表中顯示所有字段,所以字段有重復(fù),并且產(chǎn)生了 90 條記錄,原因是倉庫表中 有5條記錄,職工表有18條記錄,所以連接的結(jié)果是18X 5=90條記錄。用于連接的表越多, 則笛卡兒積的結(jié)果將越大。30 、多表連接: 在進行多表連接時,一定要注意連接條件,下面以倉庫表與職工表連接為 例來講解一下多表連接。Select * from 職工,倉庫 where 職工.倉庫號 = 倉庫.倉庫號 這時顯示的記錄就沒有那么多了, 只顯示 18 條記錄,并且發(fā)現(xiàn)兩張表的倉庫號是相對應(yīng)的。 假設(shè)顯示工資大于 1500 ,面積大于 600 的城市與姓名信息。Select 城市,姓名 * from 職工,倉庫
12、 where 職工.倉庫號= 倉庫.倉庫號 and 工資15 00 and 面積 60031 、超連接查詢: 超連接查詢也是連接查詢,所以必須有兩張或兩張以上的表。超連接查 詢共有 4 種:內(nèi)連接查詢、左連接查詢、右連接查詢、全連接查詢。使用超連接查詢不僅可以 把滿足條件的記錄顯示出來,還可以把一部分不滿足條件的記錄以 NULL 顯示出來。1 )內(nèi)連接查詢: 只有滿足連接條件的記錄才出現(xiàn)在查詢結(jié)果集中。下面以顯示面積大于 6 00 的倉庫號、職工號、城市、面積、工資信息為例為講解一下內(nèi)連接:超連接:Select 倉庫.倉庫號,職工號,城市,面積,工資 from 倉庫 inner join 職工
13、 on 職工.倉庫 號= 倉庫.倉庫號 and 面積 600普通連接:Select 倉庫.倉庫號,職工號,城市,面積,工資 from 職工,倉庫 where 職工.倉庫號= 倉庫. 倉庫號 and 面積 6002 )左連接查詢: 除滿足連接條件的記錄顯示外,第一張表中不滿足條件的記錄也出現(xiàn)在查 詢結(jié)果集中。下面以顯示面積大于 600 的倉庫號、職工號、城市、面積、工資信息為例為講解 一下左連接。Select 倉庫.倉庫號 ,職工號 ,城市,面積,工資 from 倉庫 left join 職工 on 職工.倉庫號 = 倉庫.倉庫號 and 面積 6003 )右連接查詢: 除滿足連接條件的記錄顯示
14、外,第二張表中不滿足條件的記錄也出現(xiàn) 在查詢結(jié)果集中。下面以顯示面積大于 600 的倉庫號、職工號、城市、面積、工資信息為例為 講解一下右連接。Select 倉庫.倉庫號 ,職工號 ,城市,面積,工資 from 倉庫 right join 職工 on 職工.倉庫 號= 倉庫.倉庫號 and 面積 6004 )全連接查詢: 除滿足連接條件的記錄顯示外,兩張表中不滿足條件的記錄也出現(xiàn) 在查詢結(jié)果集中。下面以顯示面積大于 600 的倉庫號、職工號、城市、面積、工資信息為例為 講解一下全連接。Select 倉庫.倉庫號 ,職工號 ,城市,面積,工資 from 倉庫 full join 職工 on 職工
15、.倉庫號 = 倉庫.倉庫號 and 面積 6005 )多表超連接查詢: 前面講解了兩個表的超連接,那么如果是 3 張表或更多張表該如何 實現(xiàn)超鏈接呢?下面以顯示面積大于 600 的倉庫號、職工號、城市、面積、工資、金額信息為 例為講解一下多表超連接。要顯示的字段信息來源于 3 張表,倉庫表、職工表、訂購單表,這 里實現(xiàn)倉庫表與職工表的左連接,職工表與訂購單表的右連接。Select 倉庫.倉庫號 ,職工號 ,城市,面積,工資 ,金額 from 倉庫 left join 職工 on 職工. 倉庫號= 倉庫.倉庫號 right join 訂購單 on 職工.職工號= 訂購單.職工號 and 面積60
16、032 、 Insert 插入語句: 向數(shù)據(jù)庫表中插入數(shù)據(jù)是最常用的功能:1 )指定所有列:Insert into 倉庫(倉庫號,城市,面積,創(chuàng)建時間 ) values (wh6, 鄭州,800,2005-12- 01)按下鍵盤上的 F5 鍵,會顯示 (1 行受影響 ) ,這表示已成功地插入一條記錄。再在數(shù)據(jù)庫引 擎查詢文檔中輸入 “Select * from 倉庫 ”,然后按下鍵盤上的 F5 鍵,就可以執(zhí)行該 SQL 語句, 這樣就可以在查詢結(jié)果上看到你插入的記錄。 在這里要注意, 倉庫 ID 是自動編號, 所以不能插 入。其實上面的代碼還可以省略表后面的字段,這樣也可以成功地插入記錄。In
17、sert into 倉庫 values (wh6, 鄭州 ,800,2005-12-01)2 )指定部分列: 下面以向倉庫表中添加一條記錄為例來講解一下指定部分列。Insert into 倉庫(倉庫號 ,面積) values (wh7,800)上述代碼也可以這樣來寫:Insert into 倉庫 values (wh7,null,800,null)或Insert into 倉庫(倉庫號,城市,面積,創(chuàng)建時間 ) values (wh7,null,800,nul)3 )帶有子查詢的插入語句: 使用帶有子查詢的插入語句,首先要注意兩個表的結(jié)構(gòu)相同。 下面還是用一個實例來講解一下。首先創(chuàng)建一張與倉庫
18、表結(jié)構(gòu)相同的空表,然后在數(shù)據(jù)庫引擎查詢文檔中輸入如下代碼:Select * into 倉庫 blank from 倉庫 where 面積 600按下鍵盤上的 F5 鍵,會顯示(6 行受影響) ,這表示已成功地插入 6 行記錄。再在數(shù)據(jù)庫引 擎查詢文檔中輸入 “Select * from 倉庫 blank ”,然后按下鍵盤上的 F5 鍵,就可以執(zhí)行該 S QL 語句,這樣就可以利用 Insert 語句一次向表中插入多條記錄。33 、 Update 更新語句: 向數(shù)據(jù)庫表中添加記錄后,可能需要對數(shù)據(jù)庫進行修改。1 )修改所有記錄:下面以為所有倉庫的面積都增加 100 為例為講解一個修改所有記錄。Update 倉庫 set 面積 = 面積+1002 )指定條件的更新語句:下面以把城市在上?;虮本┑膫}庫的面積增加 100 為例,來講解一下指定條件的更新語句。Use 企業(yè)銷
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省泰安市肥城市2024-2025學(xué)年七年級上學(xué)期末考試道德與法治試題(無答案)
- 博雅生物深度報告:深耕血制品領(lǐng)域收購綠十字?jǐn)U大行業(yè)版圖
- 中國玻璃微珠行業(yè)市場全景調(diào)研及投資規(guī)劃建議報告
- 綠色建材行業(yè)發(fā)展趨勢-產(chǎn)業(yè)報告
- 課件學(xué)前教育畫水果
- 2025年中國電子紙包裝行業(yè)發(fā)展趨勢預(yù)測及投資戰(zhàn)略咨詢報告
- 2024年湖南省長沙市單招職業(yè)傾向性測試題庫標(biāo)準(zhǔn)卷
- 乳腺炎的原因及護理
- 2024年四川電力職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及解析答案
- 2024至2030年中國靜電膜玻璃貼數(shù)據(jù)監(jiān)測研究報告
- 廣東省汕尾市2023-2024學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測化學(xué)試卷(含答案解析)
- 《熱電阻溫度傳感器》課件
- 抖音酒店直播可行性方案
- 信訪業(yè)務(wù)培訓(xùn)班課件
- 物資清運方案及
- 熱穩(wěn)定校驗計算書
- 北京市房山區(qū)2023-2024學(xué)年三年級上學(xué)期期末數(shù)學(xué)試卷
- 婦產(chǎn)科課件-子宮內(nèi)膜息肉臨床診療路徑(2022版)解讀
- 人教版六年級數(shù)學(xué)上冊典型例題系列之第三單元分?jǐn)?shù)除法應(yīng)用題部分拓展篇(原卷版)
- 課本含注音的注釋匯總 統(tǒng)編版語文八年級上冊
- 蜘蛛人的應(yīng)急預(yù)案
評論
0/150
提交評論