程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL語句示例

編輯:更多數據庫知識

SQL的意思是結構化查詢語言,其主要功能是同各種數據庫建立聯系,進行溝通.查詢指的是對存儲於SQL的數據的請求。查詢要完成的任務是:將 Select 語句的結果集提供給用戶。Select 語句從 SQL 中檢索出數據,然後以一個或多個結果集的形式將其返回給用戶。 
==========================================================
Select 基本語法結構 
==========================================================
Select[predicate]{*|table.*|[table.]]field [,[table.]field2[,...]} 
[AS alias1 [,alias2[,...]]] 
[INTO new_table_name] 
FROM tableexpression [, ...] 
[Where...] 
[GROUP BY...] 
[ORDER BY...][ASC | DESC] ] 

predicate-->指定返回記錄(行)的數量,可選:ALL,TOP 
* --------->指定表中所有字段(列). 
table ----->指定表的名稱. 
field ----->指定表中字段(列)的名稱 
[AS alias] -替代表中實際字段(列)名稱的化名. 
[INTO new_table_name]-->創建新表及名稱. 
tableexpression---->表的名稱. 
[GROUP BY...]表示以該字段的值分組 
[ORDER BY...]表示按升序排列,降序選 DESC; 
------------------------------------------------------------ 
1 選擇列 
------------------------------------------------------------ 
sql語句在access中的輸入方法 
(1)選擇"查詢"-->新建-->默認設計視圖-->點擊確定 
(2)關閉"顯示表對話框" 
(3)在菜單攔選擇"視圖"--->SQL視圖 ,就可以輸入SQL語句了 


示例1_1_選擇所有字段 
Select * 
FROM useres; 
示例1_2_選擇部分字段 
Select user_name,real_name,submit_date 
FROM useres; 
示例1_3查詢兩個表中的字段 
Select 圖書信息表.圖書條碼, 借書信息表.圖書條碼 
FROM 圖書信息表, 借書信息表; 

示例解讀: 
通過上面簡單示例我們體會到 
(1) Select 子句選擇列表,它指出查詢結果集所包含的字段(列)及其屬性,選擇所有列時用通配府*,選擇部分列時要用逗號隔開 
(2) FROM 子句指出查詢的表名,要指定多個表時中間用逗號隔開 
------------------------------------------------------------ 
2 TOP指定返回記錄數量 
------------------------------------------------------------ 
示例1_4_返回記錄數量 
Select TOP 3 * 
FROM useres; 
------------------------------------------------------------- 
3 AS派生新字段 
------------------------------------------------------------- 
示例1_5_派生新字段 
Select user_name,(submit_date+30) AS new_date 
FROM useres; 
------------------------------------------------------------ 
4 Where指定條件進行篩選 
------------------------------------------------------------ 
示例1_6等號查找指定記錄 
Select * 
FROM useres 
Where useres.real_name="紅紅"; 
示例1_7年齡大於30的人 
Select * 
FROM useres 
Where age>30 
從上面可以看出,在根據條件進行篩選時,要用到運算符,常見的運算符如下所示: 
1 比較運算符 
= 等於 
<> 不等於 
> 大於 
< 小於 
<= 小於等於 
>= 大於等於 
2 邏輯運算符 
ALL 所有條件都為true則返回true 
AND 兩個條件都為true則返回true 
OR 有一個條件為true則返回true 
NOT 對值取反 
ANY 所有條件中只要有一個為true則返回true 
BETWEEN 只要操作數在指定的范圍內,則返回true 
IN 只要操作數等於表達式中的一個,則返回true 
LIKE 如果操作數與模式相匹配,則返回true 
SOME 在一系列的比較中,有些為true則返回true 
示例1_8_某日以前注冊用戶 
Select * 
FROM useres 
Where submit_date<#2004-12-30# 
示例1_9_某時間段注冊用戶 
Select * 
FROM useres 
Where submit_date BETWEEN #2004-1-1# AND #2005-5-1# 
示例1_10_按關鍵字查找 
Select * 
FROM useres 
Where useres.real_name LIKE "*李*" 
------------------ 
IN與OR的區別 
----------------- 
示例_IN篩選字段中的記錄 
Select real_name,submit_date 
FROM useres 
Where real_name In("小李","小張") 
示例_OR篩選字段中的記錄 
Select real_name,submit_date 
FROM useres 
Where real_name="小李" or real_name="小張" 
------------------------------------------------------------ 
5 GROUP BY分組結果集 
------------------------------------------------------------ 
示例1_12_GROUPBY分組結果集 
Select sex, SUM(age) AS age之SUM 
FROM useres 
GROUP BY useres.sex 
ORDER BY SUM(age) DESC; 
示例解讀: 
按字段"sex"下的記錄對新"字段"age之SUM"進行分組. 
ORDER BY...DESC用來指定按降序排列 
本例中的sum為SQL中的聚合函數(對一組值進行操作,返回單一的匯總值),下面是常用的幾個聚合函數: 
1 SUM 求總和函數 
格式: 
SUM([ALL|DISTINCT] expression) 
參數: 
ALL 對所有值求總和,默認為ALL 
DISTINCT 求總和時排除重復項 
expression 值或表達式,可以是變量,字段,函數等 
2 AVG 求平均值函數 
格式: 
AVG([ALL|DISTINCT] expression) 
參數: 
ALL 對所有值求平均,默認為ALL 
DISTINCT 求平均時排除重復項 
expression 值或表達式,可以是變量,字段,函數等 
3 MIN和MAX函數分別為求最小值和最大值,格式和上面類似. 
4 COUNT 行計數函數 
格式: 
COUNT({[ALL|DISTINCT] expression|*}) 
ALL 表示計算除了NULL以外的其他項,為默認選項 
DISTINCT 表示COUNT返回唯一非空值的數量 
expression 為表達式,不能是txte,image,ntxt和uniqueidentifier類型的數據. 
示例1_13_AVG求平均值函數 
Select sex, AVG(age) AS age之AVG 
FROM useres 
GROUP BY useres.sex 
ORDER BY AVG(age) DESC; 
示例1_14_COUNT返回記錄數量 
Select COUNT(*) 
FROM useres 
示例1_15_按性別分組記錄數量 
Select sex, COUNT(*) 
FROM useres 
GROUP BY sex; 
------------------------------------------------------------ 
6 DISTINCT從尾部除去重復記錄 
------------------------------------------------------------ 
Select DISTINCT real_name 
FROM useres 
------------------------------------------------------------ 
7 組合查詢 
------------------------------------------------------------ 
當需要從多個表中查詢時,可以使用組合查詢 
Select useres.real_name, logtime.log_time 
FROM useres, logtime 
Where (((useres.real_name)=[logtime].[real_name])); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved