知识大全 使用Microsoft SQL Server 2000的XML查询
Posted 语句
篇首语:哪有什么四季,遇见你,四季如春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用Microsoft SQL Server 2000的XML查询相关的知识,希望对你有一定的参考价值。
使用Microsoft SQL Server 2000的XML查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
由于XML本身的诸多优点 XML技术已被广泛的使用 目前的好多软件技术同XML紧密相关 比如微软的 net 平台对xml提供了强大的支持 提供System Xml以及其子命名空间下的类型来操作通过核心类型DataSet出色的把关系型数据库同xml进行了紧密集成 由于平常许多开发人员使用 net 来操作Sql server的到数据集后再转换成xml 所以往往忽略Transact SQL查询生成XML数据的强大功能 对于一些项目使用XML查询直接通过SQL生成xml会来的更为简便 所以我通过在实际项目中的使用和查阅一些资料写成一个知识点 一是温故而知新 二是对于一些开发者刚好需要这方面的技术而还没有找到比较快捷的学习方式提供一条途径 在SQL SERVER 中查询生成XML的语法表达式比较简洁 整个语法如下 SELECT < select_list> FROM < table_source> WHERE < search_condition> FOR XML AUTO | RAW | EXPLICIT [ XMLDATA ] [ ELEMENTS] [ BINARY BASE ] 下面我将以Northwind数据库来演示上面的表达式中所包含的各项功能 下面的查询语句和返回结果都通过SQL SERVER 查询分析器来执行和得到 一 使用AUTO模式 该模式我认为在生成单表xml数据方面是用得最多的 能满足一般的需要 先来看他的简单查询 简单查询 查询语句 SELECT CategoryID CategoryName FROM Categories WHERE CategoryID < FOR XML AUTO 返回结果 < Categories CategoryID= CategoryName= Beverages /> < Categories CategoryID= CategoryName= Condiments /> 也可以使用别名 查询语句 SELECT CategoryID AS ID CategoryName GetDate() as CurrDate FROM Categories MyTable WHERE CategoryID < FOR XML AUTO 返回结果 < MyTable ID= CategoryName= Beverages CurrDate= T /> < MyTable ID= CategoryName= Condiments CurrDate= T /> 连接查询 以两个表为例 查询语句 SELECT Categories CategoryID Categories CategoryName ProductID ProductName FROM Categories JOIN Products ON Categories CategoryID = Products CategoryID AND ProductID < WHERE Categories CategoryID < FOR XML AUTO 返回结果 < Categories CategoryID= CategoryName= Beverages > < Products ProductID= ProductName= Chai /> < /Categories> < Categories CategoryID= CategoryName= Condiments > < Products ProductID= ProductName= Chang /> < /Categories> 可以看到表连接查询可以生成分层次的Xml 不过需要注意的是SELECT子句中的父表的列要排在子表的列的前面 否则会出现你不想看到的结果 如 查询语句 SELECT ProductID Categories CategoryID Categories CategoryName ProductName FROM Categories JOIN Products ON Categories CategoryID = Products CategoryID and ProductID < WHERE Categories CategoryID < FOR XML AUTO 返回结果 < Products ProductID= ProductName= Chai > < Categories CategoryID= CategoryName= Beverages /> < /Products> < Products ProductID= ProductName= Chang > < Categories CategoryID= CategoryName= Beverages /> < /Products> < Products ProductID= ProductName= Aniseed Syrup > < Categories CategoryID= CategoryName= Condiments /> < /Products> < Products ProductID= ProductName= Chef Anton&apos s Cajun Seasoning > < Categories CategoryID= CategoryName= Condiments /> < /Products> 使用ELEMENTS选项 使用该选项可以生成以元素为中心的Xml表示 默认为属性方式 不过属性方式节省空间 需要注意的是使用ELEMENTS选项是一种全是或全否的形式 不能得到一部分是以元素表示而另一部分以属性表示的Xml数据 查询语句 SELECT CategoryID CategoryName FROM Categories WHERE CategoryID < FOR XML AUTO ELEMENTS 返回结果 < Categories> < CategoryID> < /CategoryID> < CategoryName>Beverages< /CategoryName> < /Categories> < Categories> < CategoryID> < /CategoryID> < CategoryName>Condiments< /CategoryName> < /Categories> 在连接查询时 查询语句 SELECT Categories CategoryID ProductID ProductName FROM Categories JOIN Products ON Categories CategoryID = Products CategoryID and ProductID < WHERE Categories CategoryID < FOR XML AUTO ELEMENTS 返回结果 < Categories> < CategoryID> < /CategoryID> < Products> < ProductID> < /ProductID> < ProductName>Chai< /ProductName> < /Products> < Products> < ProductID> < /ProductID> < ProductName>Chang< /ProductName> < /Products> < /Categories> < Categories> < CategoryID> < /CategoryID> < Products> < ProductID> < /ProductID> < ProductName>Aniseed Syrup< /ProductName> < /Products> < /Categories> 检索对二进制数据的XPath引用 这是对二进制数据的操作 查询语句 SELECT CategoryID Picture FROM Categories WHERE CategoryID = FOR XML AUTO 返回结果 < Categories CategoryID= Picture= dbobject/Categories[@CategoryID= ]/@Picture /> 使用ELEMENTS方式 查询语句 SELECT CategoryID Picture FROM Categories WHERE CategoryID = FOR XML AUTO ELEMENTS 返回结果 < Categories> < CategoryID> < /CategoryID> < Picture>dbobject/Categories[@CategoryID= ]/@Picture< /Picture> < /Categories> 二 使用RAW模式 使用RAW模式不能使用ELEMENTS选项 简单查询 查询语句 SELECT CategoryID CategoryName AS Nanme FROM Categories WHERE CategoryID < ORDER BY CategoryID DESC FOR XML RAW 返回结果 < row CategoryID= Nanme= Condiments /> < row CategoryID= Nanme= Beverages /> 连接查询 查询语句 SELECT Categories CategoryID Categories CategoryName ProductID ProductName FROM Categories JOIN Products ON Categories CategoryID = Products CategoryID and ProductID < WHERE Categories CategoryID < = FOR XML RAW 返回结果 < row CategoryID= CategoryName= Beverages ProductID= ProductName= Chai /> < row CategoryID= CategoryName= Beverages ProductID= ProductName= Chang /> < row CategoryID= CategoryName= Condiments ProductID= ProductName= Aniseed Syrup /> cha138/Article/program/SQLServer/201311/22215相关参考
知识大全 Microsoft SQL Server 7.0安全问题
MicrosoftSQLServer7.0安全问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Microsoft SQL Server数据库日志截断
数据库相关:MicrosoftSQLServer数据库日志截断 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 Microsoft SQL Server 全文索引服务 - 编程提高篇
MicrosoftSQLServer全文索引服务-编程提高篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 Microsoft SQL Server 2005数据库镜像语句
MicrosoftSQLServer2005数据库镜像语句 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 Microsoft SQL Server 7.0储存过程调试指南
MicrosoftSQLServer7.0储存过程调试指南 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 连接池与 Microsoft SQL Server 2000 Analysis Services
连接池与MicrosoftSQLServer2000AnalysisServices 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的
知识大全 Microsoft SQL Server数据库SA权限总结
MicrosoftSQLServer数据库SA权限总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
知识大全 Microsoft SQL Server 查询处理器的内部机制与结构(1)
MicrosoftSQLServer查询处理器的内部机制与结构(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
知识大全 将Access数据库移植到Microsoft SQL Server 7.0
将Access数据库移植到MicrosoftSQLServer7.0 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快