November 22, 2006

常用的SQL語法

1.查詢SELECT
SELECT fields FROM tablename WHERE condition
完整格式:
SELECT [DISTINCT] 目標表的列名工列運算式序列
FROM 基本表名或視圖名序列
[WHERE 行條件運算式]
[GROUP BY 列名1序列[HAVING 組條件運算式]]
[ORDER BY 列名2[ASC|DESC]序列]
WHERE子句的行條件運算式中可使用的運算符有
算術比較運算符:AND,OR,NOT
集合運算符:UNION(並),INTERSECT(交),EXCEPT(差)
集合成員資格運算符:IN,NOT IN
謂詞:EXISTS(存在量詞),ALL,SOME,UNIQUE
聚合函數:AVG,MIN,MAX,SUM,COUNT
資料分組
GROUP BY 子句和HAVING子句
聚合函數
COUNT(*) 計算元組的個數
COUNT(列名) 對一列中的值計算個數
SUM(列名) 求某一列值的總和(此列的值必須是數值)
AVG(列名) 求某一列值的平均值(此列的值必須是數值)
MAX(列名) 求某一列值的最大值
MIN(列名) 求某一列值的最小值
集合操作
a.並,交,差
當兩個查詢結果的結構完全相同時,我們可以讓這兩個子查詢執行並,交,差操作.
並:
(SELECT 查詢語句1)
UNION [All]
(SELECT 查詢語句2)
//All沒寫的話,會自動消除重複元組
交:
(SELECT 查詢語句1)
INTERSECT [All]
(SELECT 查詢語句2)
差:
(SELECT 查詢語句1)
EXCEPT [All]
(SELECT 查詢語句2)
b.比較操作
(1):集合成員資格比較
元組 IN (集合)
元組 NOT IN (集合)
(2):集合成員的算術比較
元組 & SOME(集合)
元組 & ANY(集合)
(3):空關係的測試
EXISTS (集合)
NOT EXISTS(集合)
(4):重複元組的測試
UNIQUE(集合)
NOT UNIQUE(集合)

2.插入INSERT
a.插入單個元組
INSERT INTO tablename(fields) VALUES(values)
b.插入多個元組
INSERT INTO tablename(fields) VALUES((values),(values))
//另一種形式,插入子查詢的結果
INSERT INTO tablename(fields) SELECT ...
3.修改UPDATE
UPDATE tablename SET fields=values WHERE condition
//如果省略WHERE子句,則表示要修改表中的所有元組

4.刪除DELETE
DELETE FROM tablename WHERE condition
//DELETE語句只能從一個關係中刪除元組,而不能一次從多個關係中刪除元組
要刪除多個元組,就要寫多個DELETE語句

0推薦此文章
Today's Visitors: 0 Total Visitors: 177
Personal Category: 資訊科技 Topic: 未分類
Previous in This Category: DB Design Note   Next in This Category: Avoiding Bad Software Design
歷史上的今天:
[Trackback URL]

Reply
  • 1樓

    1樓搶頭香

    當確定查詢結果集已經沒有重複時,使用UNION ALL子句(可比UNION少消耗約一
    半的資源~)

  • naichia1102 at July 10, 2007 07:58 AM comment | prosecute
  • 2樓

    2樓頸推

    使用SET NOCOUNT ON 提高T-SQL代碼速度的現象使SQL Server開發者和資料
    庫系統管理者驚訝難解。你可能已經注意到成功的查詢返回了關於受影響的行數
    的系統資訊。在很多情況下,你不需要這些資訊。這個SET NOCOUNT ON命令允
    許你禁止所有在你的會話事務中的子查詢的資訊,直到你發出SET NOCOUNT
    OFF。
    這個選項不只在於其輸出的裝飾效果。它減少了從伺服器端到用戶端傳遞
    的信息量。因此,它幫助降低了網路通信量並提高了你的事務整體回應時間。傳
    遞單個信息的時間可以忽略,但考慮到這種情況,一個腳本在一個迴圈裏執行一
    些查詢並且發送好幾千位元組無用的資訊給用戶。

  • naichia1102 at July 10, 2007 08:00 AM comment | prosecute
  • 3樓

    3樓坐沙發

    當確定查詢需要時,請考慮是否只需要其中幾行,如果是,使用TOP子句將節約大
    量時間。

  • naichia1102 at July 10, 2007 08:07 AM comment | prosecute
Post A Comment









Yes No



Please input the magic number:

( Prevent the annoy garbage messages )
( What if you cannot see the numbers? )
Please input the magic number

誰來收藏
Loading ...
unlog_NVPO 0