MM:SS
TIMESTAMP - 格式: 唯一的数字
例子代码:
使用 DISTINCT 关键词:
SELECT DISTINCT Company FROM Orders
AND 和 OR 运算符:
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'
ORDER BY 语句用于对结果集进行排序:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
PERCENT,TOP 子句用于规定要返回的记录的数目:
SELECT TOP 2 * FROM Persons
SELECT TOP 50 PERCENT * FROM Persons
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式:
SELECT * FROM Persons
WHERE City LIKE '%lon%'
SELECT * FROM Persons
WHERE City NOT LIKE '%lon%'
IN 操作符允许我们在 WHERE 子句中规定多个值:
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')
BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围:
SELECT * FROM Persons
WHERE LastName
BETWEEN 'Adams' AND 'Carter'
SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Adams' AND 'Carter'
AS可以为列名称和表名称指定别名(Alias):
使用表名称别名:
SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons, Product_Orders
WHERE Persons.LastName='Adams' AND Persons.FirstName='John'
使用一个列名别名:
SELECT LastName AS Family, FirstName AS Name
FROM Persons
Key(如下:Id_P)引用两个表:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,就不会列出这些行:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
UNION 操作符用于合并两个或多个 SELECT 语句的结果集:
SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA
注释:这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。
UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值:
SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中:
SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'
下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组:
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
也可以对一个以上的列应用 GROUP BY 语句,就像这样:
SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate
HAVING 子句,在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数(SUM())一起使用:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
内连接、外连接、交叉连接:
什么是连接查询呢?
概念:根据两个表或多个表的列之间的关系,从这些表中查询数据。 目的:实现多个表查