首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

全面掌握 SQL 語法(一)

     編輯:關於SqlServer

SQL 功能與特性

透過 SQL 命令,開發人員或 DBA 可執行:建立資料表、變更系統環境、授權存取、建立索引、修改表結構、資料新增/刪除/修改/查詢等九大類操作,遠超單純「查詢」功能。

SQL 語法分類

  1. 述詞:指定記錄選取方式,如 ALL、TOP、DISTINCT
  2. 宣告:針對參數名稱與資料類型宣告,如 PARAMETERS
  3. 子句:定義查詢條件縮小搜尋範圍,如 WHERE
  4. 運算子與操作元:組成運算式,如 BETWEEN...AND、INNER JOIN
  5. 函數:常見 SQL 函數,如 AVG()
  6. SQL 陳述式:語法主體,結構為「命令 + 子句」,如 SELECT * FROM TAB WHERE TAB.NAME='A'

SELECT 陳述式詳細語法

SELECT [predicate] {* | table.* | [table.]field1 [, field2 ...]}
[AS alias1 [, alias2 ...]]
FROM tableexpression [,...] [IN externaldatabase]
[WHERE ...] [GROUP BY ...] [HAVING ...] [ORDER BY ...] [WITH OWNERACCESS OPTION]

述詞關鍵字

  • ALL:預設,選取所有欄位
  • DISTINCT:略過重複值,回傳唯一值
  • DISTINCTROW:略過整列重複記錄
  • TOP n [PERCENT]:配合 ORDER BY 取前 N 筆或百分比

TOP 範例: 取畢業成績前 25 名或前 10% 學生:

SELECT TOP 25 學生姓名 FROM 學生表 WHERE 畢業年份=1994 ORDER BY 平均分數 DESC;
SELECT TOP 10 PERCENT 學生姓名 FROM 學生表 WHERE 畢業年份=1994 ORDER BY 平均分數 DESC;

PARAMETERS 參數宣告

PARAMETERS name datatype [, name datatype ...]

範例: 動態輸入姓名查詢:

PARAMETERS "輸入姓名" Text;
SELECT * FROM 員工表 WHERE 姓名 = "輸入姓名";

ORDER BY 排序子句

SELECT fieldlist FROM table WHERE criteria ORDER BY field [ASC|DESC] [, field2 ...]
  • ASC:遞增(預設)
  • DESC:遞減

範例: 依生日排序:SELECT 姓名, 生日 FROM 員工表 ORDER BY 生日

IN 子句 (外部資料庫)

指定外部資料庫表格 (支援 Microsoft Jet 引擎可連接的資料庫如 dBASE、Paradox)。

SELECT * FROM Table IN ""[dBASE IV;DATABASE=C:\DBase\DATA\SALES;];
-- 或 --
SELECT * FROM Table IN "C:\DBASE\DATA\SALES" "DBase IV;"

HAVING 子句

用於 GROUP BY 後的分組條件篩選,可包含彙總函數 (WHERE 不可)。

SELECT fieldlist FROM table WHERE criteria GROUP BY groupfieldlist HAVING groupcriteria

範例: 庫存量超過 100 且產品名稱以「紙」結尾的分類:

SELECT 分類編號, SUM(庫存量) FROM 產品表
GROUP BY 分類編號
HAVING SUM(庫存量) > 100 AND 產品名稱 LIKE '*紙';

GROUP BY 分組子句

依指定欄位將相同值記錄合併,搭配彙總函數產生每組摘要資訊。SELECT 清單僅能包含:常數、分組欄位、彙總運算式。

SELECT 姓名, COUNT(姓名) AS 人數 FROM 員工表
WHERE 部門='業務部' GROUP BY 姓名

FROM 子句

指定包含 SELECT 清單欄位的表格或查詢運算式。

SELECT fieldlist FROM tableexpression [IN externaldatabase]

WHERE 子句

指定查詢條件與限制。

SELECT fieldlist FROM tableexpression WHERE criteria

範例: 查詢姓「李」的員工:SELECT 姓名 FROM 員工表 WHERE 姓氏='李'

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved