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
--
--概念及关键字
--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
--
相关文章推荐
- SQL语言基础练习---数据库server 2008(四)
- SQL语言基础练习---数据库server 2008(一)
- SQL语言基础练习---数据库server 2008(三)
- SQL语言基础练习---数据库server 2008(二)
- sql server 2008 之利用SQL Server Management Studio创建数据库(最基础)
- sql server 2008 之利用SQL Server Management Studio创建数据库(最基础)
- sql server 2008 之利用SQL Server Management Studio创建数据库(最基础)
- 学习《Microsoft SQL Server 2008 技术内幕:T-SQL 语言基础 》之一:学习资料、数据库、数据库脚本准备
- Microsoft SQL Server 2008技术内幕:T-SQL语言基础 第二章课后练习答案
- VS 2008 Server Explorer 添加数据库连接出错
- VS 2008 Server Explorer 添加数据库连接出错
- Visual Studio 2008不能创建数据库连接出现:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral,PublicKeyToke
- 《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记十七:管理分区及数据库处理(下)
- 《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记十七:管理分区及数据库处理(下)
- 《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记十六:管理分区及数据库处理(上)
- 使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916
- 使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916
- 使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916
- 《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记十九:监视和管理工具进阶(本书完)
- windows 2008 server 安装VS2010 后无法无法访问数据库,提示“ORA-06413: 连接未打开”