Access中的SQL語句

2023-02-04 23:54:07 字數 4721 閱讀 9484

access資料庫的sql語句教學

2009-07-01 20:50:47作者:**:網際網路瀏覽次數:229文字大小:【大】【中】【小】

引子:如何找到access資料庫的sql檢視:

1)單擊下圖左側的 :

2)單擊上圖頂部的,彈出如下圖對話方塊:

5)單擊「關閉」,此時在選單中的檔案選單下面出現乙個sql的下拉框;6)在「sql」下拉框中選擇如下圖所示中的「sql檢視即可」。

1、查詢所有記錄:select *通常用於快速檢視表中的記錄。當對表的結構無法確切記憶時,或要快速檢視表中的記錄時,使用select *是很方便的。

use 企業銷售管理系統

select * from 職工

2、投影查詢:很多時候並不需要將所有列的資料都顯示出來。投影查詢就是允許使用者顯示所需要的列。假設顯示職工表中職工號、姓名、工資資訊,具體操作方法如下。

select 職工號,姓名,工資 from 職工

在select查詢中,還可以按照實際的需要或自己的喜好安排顯示列的順序,如果要把姓名放到第一列,則**如下:

select姓名, 職工號,工資 from 職工

3、條件查詢:顯示wh1或wh2倉庫、性別不為女、工資在1300~2100之間的職工資訊。具體操作如下:

select * from職工號 where(倉庫號=』wh1』 or倉庫號=』wh2』)

and not 性別=』女』 and 工資》=1300 and 工資工資<=2100

在這裡一定要注意,(倉庫號=』wh1』 or倉庫號=』wh2』)一定要加括號,否則就不是原題的意思。

4、謂詞in查詢:在查詢特定條件的資料時,如果條件較多,就需要用到多個or運算子,以查詢滿足其中任一條的記錄。但使用多個or運算子,將使where子句變得過於冗長,這時使用in就非常清楚。

另外,在後面講解的巢狀查詢中,也必須使用in查詢。下面以顯示zg1、zg2、zg11、zg15的訂購單資訊為例具體講解一下。

使用or運算子

select * from訂購單 where 職工號=』zg1』 or職工號=』zg2』』)

or職工號=』zg11』 or職工號=』zg15』

使用謂詞in

use 企業銷售管理系統

select * from訂購單 where 職工號 in(』zg1』, 』zg2』, 』zg11』, 』zg15』)

在select語句中,還支援in與not結合使用。假設顯示職工號不為zg1, zg2, zg11, zg15的訂購單資訊,具體**如下:

使用or運算子

select * from訂購單 where 職工號!=』zg1』 or職工號!=』zg2』』)

or職工號!=』zg11』 or職工號!=』zg15』

使用謂詞in

use 企業銷售管理系統

select * from訂購單 where 職工號 not in(』zg1』, 』zg2』, 』zg11』, 』zg15』)

5、模糊like查詢:有的時候,我們不清楚所要查詢的資訊,如顯示職工資訊,但不能確定該職工的姓名,只知道他姓名中含有「王」字,那該如何查詢呢?sql中提供了like關鍵字,使用like進行了查詢時,還要指定萬用字元。

萬用字元及其含義

在sql語句中,還支援like與not結合使用。假設顯示姓名中不含有「王」字的職工資訊,具體**如下:

select * from職工 where 姓名 not like』王%』

在該例中,如果你知道姓名中含有「王」字,並且姓名只有兩個字,那麼可以進一步縮小查詢範圍,具體**如下:

select * from職工 where 姓名 not like』王_』

這樣就可以查詢到姓名中只有兩個字,並且姓為「王」的職工資訊。

6、空值null查詢:在sql語句中使用is null來進行是否為空的判斷。下面以顯示性別為空的職工資訊為例具體講解一下。

select * from職工 where 性別 is null

假設顯示性別不為空的職工資訊,具體**如下:

select * from職工 where 性別 is not null

7、限制範圍between…and查詢:在資料醫療隊引擎查詢中,限制範圍也是經常使用的乙個條件。當然可以使用大於等於號、小於等於號和and運算子三者來完成範圍的限制,但使用between…and結構,會使sql更清楚。

下面以顯示工資在1300~1900之間的職工資訊為例具體講解一下。

between…and語句

select * from職工 where 工資between 1300 and 1900

大於等於號、小於等於號與and運算子

select * from職工 where 工資》=1300 and 工資<=1900

在sql語句中,還支援between…and與not結合使用。假設顯示工資不在1300~1900之間的職工資訊,具體**如下:

between…and語句

select * from職工 where 工資not between 1300 and 1900

大於等於號、小於等於號與and運算子

select * from職工 where 工資<=1300 and 工資》=1900

8、消除重複字段資料distinct查詢:在sql投影查詢中,可能會有許多重複的資料,使用關鍵字distinct就可以從結果集中除去重複的資料。下面以顯示職工的工資資訊為例具體講解一下:

顯示有重複的資料

select 工資 from職工

顯示無重複的資料

select distinct工資 from職工

9、單錶巢狀查詢:就是外層select語句與內層select語句都**於同一張表。下面以顯示倉庫面積大於wh1倉庫面積的倉庫資訊為例來講解一下。

首先利用select語句求出wh1倉庫的倉庫面積,然後再顯示面積大於該值的倉庫資訊。

select * from倉庫 where 面積》(select 面積 from 倉庫 where 倉庫號=』wh1』)

巢狀查詢中也可以帶有邏輯運算子、謂詞in、like、between…and結構。假設顯示wh1或wh2倉庫的工資不大於職工zg16工資的職工資訊,並要求職工姓名不含有「平」字。

首先利用select語句求出職工zg16的工資,然後再對姓名進行模糊查詢。

select * from職工 where 工資<=(select 工資 from 職工 where 職工號=』zg16』) and 姓名 not like 『%平%』 and 倉庫號 in(『wh1』, 『wh2』)

10、多表巢狀查詢:多表巢狀查詢就是外層select語句與內層select語句**於不同的表,但表之間要存在關係。這也是sql語句中最重要的查詢。

下面以顯示北京地區的職工資訊為例來講解一下。

首先利用select語句求出北京地區的倉庫號,然後利用倉庫號再顯示職工資訊。

use 企業銷售管理系統

select * from 職工 where 倉庫號 in(select 倉庫號 from where 城市=』北京』)

不僅可以實現兩個表的巢狀,還可以實現多個表的巢狀,假設顯示北京地區的職工的訂購單資訊。

首先利用select語句得到北京地區的倉庫號,然後利用得到的倉庫號得到該倉庫中的職工號,再利用得到的職工號得到職工的訂購單資訊。

select * from 訂購單 where 職工號 in(select 職工號 from 職工 where 倉庫號 in (select 倉庫號 from 倉庫where 城市=』北京』))

多表巢狀查詢中也可以帶有邏輯運算子、謂詞in、like、between、and結構。假設顯示北京地區的職工的訂購單資訊,並且職工的工資大於1200,訂購日期為2023年9月3日~2023年1月1日。

select * from 訂購單 where 職工號 in(select 職工號 from 職工 where 工資》1200 and倉庫號 in(select 倉庫號 from 倉庫where 城市=』北京』))and 訂購日期 between 『2003-09-03』 and 『2006-01-01』

11、單級排序查詢:排序的關鍵字是order by,預設狀態下是公升序,關鍵字是asc。降序排列的關鍵字是desc。

排序字段可以是數值型,也可以是字元型、日期時間型。下面以按工資從高到低顯示職工資訊為例來講解一下。

select * from 職工order by 工資 desc

在排序查詢中還可以帶有邏輯運算子、謂詞in、like、between、and結構。假設顯示wh1或wh2倉庫的,工資不大於職工zg16工資的職工資訊,並要求職工姓名不含有「平」字,按工資從低到高顯示。

首先利用select語句求出職工zg16的工資,然後再對姓名進行模糊查詢,最後再排序。

select * from 職工 where 工資<=(select 工資 from 職工 where 職工號=』zg16』) and 姓名 not like 『%平%』 and倉庫號 in (『wh1』,』wh2』) order by工資

12、多級排序查詢:按照一列進行排序後,如果該列有重複的記錄值,則重覆記錄值這部分就沒有進行有效的排序,這就需要再附加乙個字段,作為第二次排序的標準,對沒有排開的記錄進行再排列。下面以按工資從高到低顯示職工資訊為例來講解一下。

單級排序,按工資降序。

select * from 職工order by 工資 desc

多級排序,先按工資降序,再按職工id公升序。

select * from 職工order by 工資 desc,職工 id asc

13、與別名一起使用的統計函式:在實際程式設計中,有時候需要知道所有記錄某項值的總和、平均值、最大值等,這時就要用到統計函式查詢。常用的統計函式共有6個。

SQL中Case語句用法

case具有兩種格式。簡單case函式和case搜尋函式。簡單case函式case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 casewhen 1 then 男 when 2 then 女 else 其他 end 這兩種方式,可以實現相同的功能...

sql語句大全

建立資料庫 建立之前判斷該資料庫是否存在 if exists select from sysdatabases where name databasename drop database databasename gocreate database databasename 刪除資料庫 drop d...

SQL語句常用

1 新建資料庫aa createdatabaseaa 2 開啟資料庫aa opendatabaseaa 3 選擇aa為當前資料庫 setdatabasetoaa 4 修改資料庫aa modifydatabaseaa 5 刪除資料庫aa deletedatabaseaa 6 新建專案aa create...