MS SQL语句的语法,完整的形式为如下的内容:
一、完整的原始的SQL语法
SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}
FROM tableexpression[,…][IN externaldatabase]
[WHERE…]
[GROUP BY…]
[HAVING…]
[ORDER BY…]
[WITH OWNERACCESS OPTION]
注意,如上的完整的查询语句,用中括号 [ ] 括起来的部分表示是可选的,用大括号 { } 括起来的部分是表示必须从中选择其中的一个。
二、SQL语法关键字介绍
①FROM子句
FROM子句指定了SELECT语句中字段的来源;也就是说FROM必须指明数据表的名称。
例子:从MyUsers表中查询数据:
SELECT ID,Name,Email FROM MyUsers
②WHERE 子句指定查询条件
WHERE子句后面可使用的比较运算符如下:
= 等于;> 大于;< 小于;>= 大于等于;<= 小于等于;<> 不等于;!> 不大于;!< 不小于
例子:查询MyUsers表中ID号大于169的数据:
SELECT ID,Name,Email FROM MyUsers where ID>169
③ ALL、DISTINCT、DISTINCTROW、TOP关键词的使用
(1) ALL 返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL。
例:SELECT ID,Name,Email FROM MyUsers
(2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。
(3) DISTINCTROW 如果有重复的记录,只返回一个
(4) TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用 TOP N PERCENT子句(其中N 表示百分比)
例:返回5%定货额最大的定单
SELECT TOP 5 PERCENT* FROM [ Order Details] ORDER BY UnitPrice*Quantity*(1-Discount) DESC
④用 AS 子句为字段取别名
如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。
例:返回Name字段取别名为YouName
SELECT Name AS YouName FROM MyUsers
⑤范围(BETWEEN 和 NOT BETWEEN)
BETWEEN …AND…运算符指定了要搜索的一个闭区间。
例:返回ID号从196到696的记录。
SELECT ID,Name FROM MyUsers WHERE ID Between 196 And 696
⑥ 列表(IN ,NOT IN)
IN 运算符用来匹配列表中的任何一个值。IN子句可以代替用OR子句连接的一连串的条件。
例:要查询 ID号为 1,100,999,19968的记录;
SELECT ID,Name FROM MyUsers WHERE ID In(1,100,999,19968)