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...