您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页SQL Server实用教程(第三版)实验10 SQL Server与xml

SQL Server实用教程(第三版)实验10 SQL Server与xml

来源:华拓科技网
实验10 SQL Server 与XML

1.目的与要求

(1)掌握SQL Server中使用XML类型列或变量的方法; (2)掌握XQuery的基本方法; (3)掌握FOR XML子句的用法。 2.实验准备

(1)了解XML的基本语法; (2)了解XML数据类型; (3)了解插入XML数据的方法; (4)了解XQuery查询的基本方法; (5)了解FOR XML子句的用法。 3.实验内容

(1)编写一段XML代码,并保存为Employ.xml文件,文件中存储员工的信息。 新建一个文本文档,在其中输入以下语句。

<员工信息> <员工>

<姓名 编号=\"000001\">王林 <学历>大专

<出生日期>1966-01-23 <员工>

<姓名 编号=\"010008\">伍容华 <学历>本科 <学历>本科

<出生日期>1976-03-28

保存文件,文件名为Employ,xml。

【思考与练习】 编写一段有关学生信息的XML代码。

(2)使用xml数据类型定义一个表tableA,并向表中插入一行数据。 创建使用如下语句

use YGGL GO

create table tableA (

num int not null primary key, info xml not null, )

【思考与练习】 使用行集函数OPENROWSET将Employ。Xml文件中的xml数据插入到表tableA中。

(3)使用xml数据类型方法查询xml实例中的xml数据,并掌握XQuery语言的基本用法。

①声明一个xml变量并将有关员工信息的xml数据分配给它,再使用query()方法对文档指定XQUERY来查询<姓名>子元素。

eclare @xmldoc xml set @xmldoc='<公司> <员工信息> <员工>

<姓名 编号=\"000001\">王林 <性别>男 <年龄>43 <员工>

<姓名 编号=\"000002\">陈燕 <性别>女 <年龄>25

'

select @xmldoc.query('/公司/员工信息/员工/姓名') AS 员工姓名

2.使用value()方法从XML数据中查询出元素的第一个“编号”值,并赋给char类型的变量;

declare @xmldoc xml declare @number char(6) set @xmldoc='<公司> <员工信息> <员工>

<姓名 编号=\"000001\">王林 <性别>男 <年龄>43 <员工>

<姓名 编号=\"000002\">陈燕 <性别>女 <年龄>25 '

select @number=@xmldoc.value('(/公司/员工信息/员工/姓名/@编号)[1]','char(6)')

select @number as 员工编号

3.使用XML DML 语句在一段员工信息数据中一个节点的后面添加一个节点;

declare @xmldoc xml set @xmldoc='<员工信息>

<姓名 编号=\"000001\">王林 <性别>男 <年龄>46 '

select @xmldoc as 插入节点前数据

set @xmldoc.modify('insert<出生日期>1991-02-10 after(/员工信息/性别)[1]')

select @xmldoc 插入节点后数据

1.查询YGGL数据库的Employees表中工作时间大于3年的员工信息,并将结果使用for xml raw模式返回为元素,元素的属性名和值为表中各列的列名和列植;

use yggl go select * from employees where workyear>3 for xml raw

2.使用for xml path模式查找学历为硕士的员工信息,使用<硕士人员>作为父级元素名,“联系电话”作为<硕士员工>的属性。<硕士员工>元素下是<员工信息>元素,<编号>、<姓名>和<工作时间>作为<员工信息>的子元素;

select phonenumber as '@联系电话', employeeid as '员工信息/编号', name as '员工信息/姓名', workyear as '员工信息/工作时间' from employees where education='硕士' for xml path('硕士员工') 运行结果如下:

<硕士员工 联系电话=\"83792361 \"> <员工信息>

<编号>020010 <姓名>王向容 <工作时间>2

<硕士员工 联系电话=\"84708817 \"> <员工信息>

<编号>102208 <姓名>朱俊 <工作时间>2

<硕士员工 联系电话=\"83346722 \"> <员工信息>

<编号>1091 <姓名>钟敏 <工作时间>4 【思考与练习】

A. 使用FOR XML PATH模式查询实际收入大雨2000元的员工信息,使用员工的

实际收入作为<员工信息>元素的属性。

B. 比较FOR XML PATH模式和FOR XML EXPLICIT模式的不同之处。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务