Sql 语法整理
Q****uery | ||||
---|---|---|---|---|
1 | SELECT 和 SELECT * 语句 | SELECT LastName,FirstName FROM Persons | ||
2 | SELECT DISTINCT 语句 | SELECT DISTINCT Company FROM Orders | 关键词 DISTINCT 用于返回唯一不同的值 | |
3 | WHERE | SELECT * FROM Persons WHERE FirstName='Bush' SELECT * FROM Persons WHERE Year>1965 文本带引号 数值不带 |
操作符 描述 = 等于 <> 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于 BETWEEN 在某个范围内 LIKE 搜索某种模式 |
|
4 | WHERE :AND & OR | SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter' | AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 | |
5 | ORDER BY(****DESC ) | SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC | 先按Company 降序排列,当Company 一致时,再按Orders升序排列 | |
Insert/Update/Delete | ||||
6 | INSERT INTO | INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing') INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees') |
1 插入新行, 2 插入新行的指定字段的值 |
|
7 | Update WHERE | UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson' | ||
8 | DELETE WHERE | DELETE FROM Person WHERE LastName = 'Wilson' DELETE * FROM table_name |
1 删除一行 2 删除所有行 |
|
A****dvance | ||||
9 | SELECT TOP(PERCENT) | SELECT TOP 2 * FROM Persons SELECT TOP 50 PERCENT * FROM Persons |
1 从 "Persons" 表中选取头两条记录。 2 从 "Persons" 表中选取 50% 的记录。 |
|
10 | LIKE | SELECT * FROM Persons WHERE City LIKE 'N%' SELECT * FROM Persons WHERE City LIKE '%g' SELECT * FROM Persons WHERE City LIKE '%lon%' SELECT * FROM Persons WHERE City NOT LIKE '%lon%' |
1 我们希望从上面的 "Persons" 表中选取居住在以 "N" 开始的城市里的人: 2 我们希望从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人: 3 我们希望从 "Persons" 表中选取居住在包含 "lon" 的城市里的人: 4 我们可以从 "Persons" 表中选取居住在不包含 "lon" 的城市里的人: |
|
11 | LIKE 通配符 | 通配符 描述 % 替代一个或多个字符 _ 仅替代一个字符 [charlist] 字符列中的任何单一字符 [^charlist] 或者 [!charlist] 不在字符列中的任何单一字符 |
||
12 | WHERE IN | SELECT * FROM Persons WHERE LastName IN ('Adams','Carter') | 我们希望从上表中选取姓氏为 Adams 和 Carter 的人: | |
13 | WHERE BETWEEN ... AND WHERE NOT BETWEEN ... AND | SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter' | 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。 选取LastName字段中,值为Adams的行和值为Carter的行中间的行,至于左右包不包括看数据库。 | |
14 | JOIN | 1 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P 2 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName |
连接两个表 INNER JOIN:****只连接匹配的行,两个表的交集 JOIN: 只连接匹配的行,两个表的交集 LEFT JOIN: LEFT JOIN返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN: FULL JOIN 会从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替 |
|
15 | Select… Union(ALL****) Select… | SELECT E_Name FROM Employees_China UNION SELECT E_Name FROM Employees_USA | UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 | |
16 |