设为首页 加入收藏

TOP

SQL语法(二)
2014-11-24 02:57:17 来源: 作者: 【 】 浏览:10
Tags:SQL 语法
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

内连接、外连接、交叉连接:

什么是连接查询呢?

概念:根据两个表或多个表的列之间的关系,从这些表中查询数据。 目的:实现多个表查

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQLServer基础语法实例应用(三) 下一篇SQLServerAlwaysOn中的几个误区

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)
·如何较为深入的理解c (2025-12-24 17:19:38)
·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)