技术开发 频道

Transact--SQL高级查询

   Transact--SQL高级查询(四)

  在嵌套中使用exists关键字[存在]

  例:

  1:用嵌套work表和嵌套部门表,在嵌套work表中检索出姓名和职工号都在嵌套部门存在的职工资料 

select * from 嵌套 work a where exists (select * from 嵌套部门 b where a.姓名=b.姓名 and a.职工号=b.职工号)

  2:在work表检索出在部门表没有的职工

select * from work where not exists (select * from 部门 where 部门.部门编号=work.部门编号)

  能否改成:

select * from work where exists (select * from 部门 where 部门.部门编号<>work.部门编号)

  在列清单中使用select

  例:

  1:在work1表和部门表中检索出所有部门的部门名称和基本工资总和

select 部门名称,(select sum(基本工资) from work1 b where a.部门编号=b.部门编号) from 部门 a

  2:检索各部门的职工人数

select 部门编号,部门名称,(select count(职工号) from work1 a where a.部门编号=b.部门编号) as 人数 from 部门 b

  3:在商品表和销售表中查询每一职工的姓名,所属部门,销售总量   

select 姓名,所属部门,(select sum(销售量) from 商品销售 a where a.职工号=b.职工号) as 销售总量 from 嵌套部门 b

      分布式查询

  我们以前的查询都只是基于一个服务器中的一个数据库的查询,如果一个查询是要跨越一个服务器,像这样的查询就是分布式查询,那么我们以看到分布查询就是数据源自于两个服务器.要进行分布式查询必须先创建一个“链接服务器”,以便让本地的用户能够映射到过程服务器.

  “链接服务器”的创立

  A:在“链接服务器”里面输入以后为了方便访问该链接服务器的名称[任意]

  B:在“提供程序名称”里面选择“Microsoft OLE DB Provider for SQL Server”

  C:在“数据源”里面输入服务器的网络名

  D:本地登录,远程用户和远程密码里面分别输入一个本地登录用户,远程登录和远程密码以便让本地SQL Server登录映射为链接服务器上的用户

  E:访问方法:格式:链接服务器的名称.数据库名.dbo.表名

  链接服务器有两个特点:

  1:通过链接服务器不能删除链接源服务器的任何对像.

  2:能过链接服务器可以对链接源服务器的表进行insert,updae,delete操作.

0
相关文章