update top MYSQL常用命令——【转】(11)

电脑杂谈  发布时间:2017-12-26 04:17:31  来源:网络整理

INTO 新表[IN 外部]

WHERE 准则

例:为定单制作一个存档备份

SELECT *

INTO OrdersArchive

FROM Orders

八. 联合查询

UNION运算可以把多个查询的结果合并到一个结果集里显示.

UNION运算的一般语法:

[表]查询1 UNION [ALL]查询2 UNION …

例:返回巴西所有供给商和客户的名字和城市

SELECT CompanyName,City

FROM Suppliers

WHERE Country = ‘Brazil’

UNION

SELECT CompanyName,City

FROM Customers

WHERE Country = ‘Brazil’

注:

缺省的情况下,UNION子句不返回重复的记录.如果想显示所有记录,可以加ALL选项

UNION运算要求查询具有相同数目的字段.但是,字段数据类型不必相同.

每一个查询参数中可以使用GROUP BY 子句 或 HAVING 子句进行分组.要想以指定的顺序来显示返回的数据,可以在最后一个查询的尾部使用OREER BY子句.

九. 交叉查询

交叉查询可以对数据进行总和,平均,计数或其他总和计算法的计算,这些数据通过两种信息进行分组:一个显示在表的左部,另一个显示在表的顶部.

Microsoft Jet SQL 用TRANSFROM语句创建交叉表查询语法:

TRANSFORM aggfunction

SELECT 语句

GROUP BY 子句

PIVOT pivotfield[IN(value1 [,value2[,…]]) ]

Aggfounction指SQL聚积函数,

SELECT语句选择作为标题的的字段,

GROUP BY 分组

说明:

Pivotfield 在查询结果集中创建列标题时用的字段或表达式,用可选的IN子句限制它的取值.

value代表创建列标题的固定值.

例:显示在1996年里每一季度每一位员工所接的定单的数目:

TRANSFORM Count(OrderID)

SELECT FirstName&’’&LastName AS FullName

FROM Employees INNER JOIN Orders

ON Employees.EmployeeID = Orders.EmployeeID

WHERE DatePart(“yyyy”,OrderDate)= ‘1996’

GROUP BY FirstName&’’&LastName

ORDER BY FirstName&’’&LastName

POVOT DatePart(“q”,OrderDate)&’季度’

十 .子查询

子查询可以理解为 套查询.子查询是一个SELECT语句.

1 表达式的值与子查询返回的单一值做比较

语法:

表达式 comparision [ANY|ALL|SOME](子查询)

说明:

ANY 和SOME谓词是同义词,与比较运算符(=,<,>,<>,<=,>=)一起使用.返回一个布尔值True或 False.ANY的意思是,表达式与子查询返回的一系列的值逐一比较,只要其中的一次比较产生True结果,ANY测试的返回 True值(既WHERE子句的结果),对应于该表达式的当前记录将进入主查询的结果中.ALL测试则要求表达式与子查询返回的一系列的值的比较都产生 True结果,才回返回True值.

例:主查询返回单价比任何一个折扣大于等于25%的产品的单价要高的所有产品

SELECT * FROM Products

WHERE UnitPrice>ANY

(SELECT UnitPrice FROM[Order Details] WHERE Discount>0.25)

2 检查表达式的值是否匹配子查询返回的一组值的某个值

语法:

[NOT]IN(子查询)

例:返回库存价值大于等于1000的产品.

SELECT ProductName FROM Products

WHERE ProductID IN

(SELECT PrdoctID FROM [Order DEtails]

WHERE UnitPrice*Quantity>= 1000)

3检测子查询是否返回任何记录

语法:

[NOT]EXISTS (子查询)

例:用EXISTS检索英国的客户

SELECT ComPanyName,ContactName

FROM Orders

WHERE EXISTS

(SELECT *

FROM Customers

WHERE Country = ‘UK’ AND

Customers.CustomerID= Orders.CustomerID)


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-55937-11.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 李祁
      李祁

      这其实就是一场政治秀

    热点图片
    拼命载入中...