1.TOP
TOP 子句用于规定要返回的记录的数目。
对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
语法:
SELECT TOP number|percent column_name(s) FROM table_name
例:
SELECT TOP 1
* FROM Persons
SELECT TOP 25 PERCENT
* FROM Persons
2.LIKE
通配符:
% | 替代一个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] 或者 [!charlist] | 不在字符列中的任何单一字符 |
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
语法:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
上面的 “Persons” 表中选取居住在以 “N” 开始的城市里的人:
SELECT * FROM Persons
WHERE City LIKE 'N%'
从 “Persons” 表中选取居住在以 “g” 结尾的城市里的人:
SELECT * FROM Persons
WHERE City LIKE '%g'
从 “Persons” 表中选取居住在包含 “on” 的城市里的人:
SELECT * FROM Persons
WHERE City LIKE '%on%'
从 “Persons” 表中选取居住在不包含 “on” 的城市里的人:
SELECT * FROM Persons
WHERE City NOT LIKE '%on%'
从 “Persons” 表中选取名字的第一个字符之后是 “eorge” 的人:
SELECT * FROM Persons
WHERE FirstName LIKE '_eorge'
从”Persons” 表中选取居住的城市以 “A” 或 “L” 或 “N” 开头的人:
SELECT * FROM Persons
WHERE City LIKE '[ALN]%'
从”Persons” 表中选取居住的城市不以“A” 或 “L” 或 “N” 开头的人:
SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'
3.IN
IN 操作符允许我们在 WHERE 子句中规定多个值。
语法:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
从Persons表中选取姓氏为 Adams 和 Carter 的人:
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')
4.BETWEEN
操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
语法:
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
以字母顺序显示介于 “Adams”(包括)和 “Carter”(不包括)之间的人:
SELECT * FROM Persons WHERE LastNameBETWEEN
'Adams'AND
'Carter'
以字母顺序显示不介于 “Adams”(包括)和 “Carter”(不包括)之间的人:
SELECT * FROM Persons WHERE LastNameNOT BETWEEN
'Adams'AND
'Carter'
例:日期:
SELECT * FROM Users
WHERE AddTime
BETWEEN ‘2010-3-29 11:26:00.000’ AND ‘2010-3-31 10:09:24.999’
5.Alias
通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
语法:
SELECT column_name(s) FROM table_name AS alias_name
将LastName设置其别名为Family,FirstName为Name:
SELECT LastName AS Family
, FirstName AS Name
FROM Persons
6.join
join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
JOIN(INNER JOIN): 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
JOIN(INNER JOIN)语法:
INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 “Persons” 中的行在 “Orders” 中没有匹配,
就不会列出这些行。
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
LEFT JOIN 语法:
LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
RIGHT JOIN 语法:
RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
FULL JOIN 语法:
FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 “Persons” 中的行在表
“Orders” 中没有匹配,或者如果 “Orders” 中的行在表 “Persons” 中没有匹配,这些行同样会列出。
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name