SELECT 语句不详解

 

INSERT INTO ...  SELECT 语句, 将查询的结果插入到一张新表中(可为临时表)

DECLARE @MyTable Table
(
    SalesOrderID int,
    CustomerId char(5)
)

INSERT INTO @MyTable
SELECT SalesOrderID,CustomerID
FROM AdventureWorks.Sales.SalesOrderHeader
WHERE SalesOrderID BETWEEN 44000 AND 44010

SELECT * FROM @MyTable

 

 


 

 

联合查询:

假设有两张表如下:

Person表   和 Student表:

                        

 

注意对比ID的值。 Person表为: 12347,    Student表为 12356

 

inner join查询(inner通常可以省略):

select p.Id, p.Name,s.ID,s.StuName
from Person p inner join Student s on p.Id = s.ID

结果:返回的是两张表共有的数据

 

left outer jion查询,左外连接查询 (outer通常可以省略):

select p.Id, p.Name,s.ID,s.StuName
from Person p left join Student s on p.Id = s.ID

结果: 返回的是 左边表的所有数据,右边表没有匹配项的用 NULL 表示

 

right outer join查询, 右外连接查询(outer通常可以省略)

select p.Id, p.Name,s.ID,s.StuName
from Person p right join Student s on p.Id = s.ID

结果:返回的是 右边表的所有数据,左边表没有匹配项的数据用 NULL 表示

 

full outer join ,全连接查询 ,(outer通常可以省略)

select p.Id, p.Name,s.ID,s.StuName
from Person p full outer join Student s on p.Id = s.ID

 

结果:返回两张表中的所有的数据,若没有匹配的使用NULL 表示

 


 

对XML 数据的处理

设计一张表如图:

插入数据:

insert into XMLtest(S_ID,S_Data)
VALUES(1,'<学生信息><姓名>刘德华</姓名><性别>男</性别><班级>网络工程</班级><职位>班长</职位></学生信息>')

 

查询可知:

select * from XMLtest

结果:

双击后可查看:

 

选择特定的列,返回特定的行进行查询:

declare @data xml
set @data = (select S_Data from XMLtest where S_ID = 1)
SELECT @data.query('学生信息/姓名') 姓名, @data.query('学生信息/性别') AS 性别

结果:

 

  

 

转载于:https://www.cnblogs.com/TangPro/p/3250791.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值