您的位置:首页 > 数据库

SQL语言基础练习---数据库server 2008(五) 进阶训练

2014-05-29 20:18 387 查看
--SQL进阶

--概念及关键字

--SQL UNION

--SQL UNION ALL

--SQL INTERSECT

--SQl MINUS

--SQL SUBQUERY

--SQL EXISTS

--SQL CASE

UNION的目的是将两个SQL语句的结果合并起来.从这个角度看,UNION 跟JOIN有些类似,

因为两个指令都可以由两个表都可以由多个表格中撷取资料,UNION 的一个限制是两个SQL

语句所产生的栏位是需要同样的资料种类.另外,当我们用UNION 这个指令时,我们只会看到不同

的资料值(类似于select DIStinct).

SELECT DATE FROM STORE_Information

UNION

SELECT DATE FROM STORE_Sales

--UNION ALL和UNION相比不去重

SELECT DATE FROM Store_Information

UNION

SELECt DATE FROM internet Sales

--InTERSECT

和UNION指令类似,INTERSECT也对两个SQL语句所产生的结果做处理.不同的地方是,UNION基本上是一个OR,

而INTERsect是一个AND,UNION是联集,而INTERSECT是交集

SELECT DATE FROM store_Information

INTERSECT

SELECT DATE FROM Internet_Sales

--MINUS

指令是运用在两个SQL语句上的.它先找出第一个SQL语句所产生的结果,然后看这些结果有没有在第二个SQL

语句的结果中.如果有的话,那么这一笔资料就被去除,而不会在最后的结果中出现.如果第二个SQl语句所产

生的结果中并没有存在于第一个SQl语句所产生的结果内,那这笔资料就会被抛弃.

SELECT Date FROM store_Information

MINUS

Select Date FROM Internet_Sales

结果是:

"Jan-05-1999","jan-07-1999","jan-09-1999"

是store_Information 产生的结果而"jan-07-1999"也是

Internet_Sales产生的结果

--子查询

select "栏位1"

FROM "表格"

where "栏位2"[比较运算素]

(select "栏位1"

FROM "表格"

WHERE[条件])

--不相关查询

select SUM(Sales)

FROM store_Information

where store_name IN

(select store_name

FROM Geography

WHERE region_name='West')

--相关查询

select SUM(a1.Sales)

FROM store_Information a1

where a1.store_name IN

(

select store_name

FROM Geography a2

where a2.store_name=a1.store_name

)

--EXIST

语法:

select "栏位1"

FROM "表格1"

WHERE EXIST

(

select *

FROM "表格2"

where [条件]

)

--排名

select a1.name,a1.Sales ,count(a2.sales) Sales_Rank

FROM Total_Sales a1,Total_Sales a2

WHERE a1.Sales<=a2.Sales or (a1.Sales=a2.Sales and a1.Name<=a2.Name)

Group by a1.Name,a1.Sales

ORDER by a1.Sales DESC,a1.Name DESC

--
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐