电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

使用Microsoft SQL Server 2000的XML查詢

瀏覽:190日期:2023-10-31 10:08:30

由于XML本身的諸多優點,XML技術已被廣泛的使用,目前的好多軟件技術同XML緊密相關,比如微軟的。net 平臺對xml提供了強大的支持,提供System.Xml以及其子命名空間下的類型來操作xml.Ado.net通過核心類型DataSet出色的把關系型數據庫同xml進行了緊密集成。由于平常許多開發人員使用。net 來操作Sql server的到數據集后再轉換成xml,所以往往忽略Transact-SQL查詢生成XML數據的強大功能。對于一些項目使用XML查詢直接通過SQL生成xml會來的更為簡便,所以我通過在實際項目中的使用和查閱一些資料寫成一個知識點,一是溫故而知新,二是對于一些開發者剛好需要這方面的技術而還沒有找到比較快捷的學習方式提供一條途徑。

在SQL SERVER 2000中查詢生成XML的語法表達式比較簡潔,整個語法如下:

SELECT <;select_list>

FROM <;table_source>

WHERE <;search_condition>

FOR XML AUTO | RAW | EXPLICIT [,XMLDATA ] [,ELEMENTS] [,BINARY BASE64]

下面我將以Northwind數據庫來演示上面的表達式中所包含的各項功能,下面的查詢語句和返回結果都通過SQL SERVER 2000查詢分析器來執行和得到。

一。 使用AUTO模式

該模式我認為在生成單表xml數據方面是用得最多的,能滿足一般的需要。先來看他的簡單查詢。

1.簡單查詢

查詢語句:

SELECT CategoryID,

CategoryName

FROM Categories

WHERE CategoryID <3 FOR XML AUTO

返回結果:

<;Categories CategoryID='1' CategoryName='Beverages'/>

<;Categories CategoryID='2' CategoryName='Condiments'/>

也可以使用別名,

查詢語句:

SELECT CategoryID AS ID,

CategoryName,

GetDate() as CurrDate

FROM Categories MyTable

WHERE CategoryID <3 FOR XML AUTO

返回結果:

<;MyTable CategoryName='Beverages' CurrDate='2005-06-24T11:09:52.937'/>

<;MyTable CategoryName='Condiments' CurrDate='2005-06-24T11:09:52.937'/>

2.連接查詢

以兩個表為例,

查詢語句:

SELECT Categories.CategoryID,

Categories.CategoryName,

ProductID,

ProductName

FROM Categories

JOIN Products ON Categories.CategoryID = Products.CategoryID AND ProductID <;5

WHERE Categories.CategoryID <3 FOR XML AUTO

返回結果:

<;Categories CategoryID='1' CategoryName='Beverages'>

<;Products ProductID='1' ProductName='Chai'/>

<;/Categories>

<;Categories CategoryID='2' CategoryName='Condiments'>

<;Products ProductID='2' ProductName='Chang'/>

<;/Categories>

可以看到表連接查詢可以生成分層次的Xml,不過需要注意的是SELECT子句中的父表的列要排在子表的列的前面,否則會出現你不想看到的結果,如:

查詢語句:

SELECT ProductID,Categories.CategoryID,Categories.CategoryName,ProductName

FROM Categories

JOIN Products ON Categories.CategoryID = Products.CategoryIDand ProductID <;5

WHERE Categories.CategoryID <;3FOR XML AUTO

返回結果:

<;Products ProductID='1' ProductName='Chai'>

<;Categories CategoryID='1' CategoryName='Beverages'/>

<;/Products>

<;Products ProductID='2' ProductName='Chang'>

<;Categories CategoryID='1' CategoryName='Beverages'/>

<;/Products>

<;Products ProductID='3' ProductName='Aniseed Syrup'>

<;Categories CategoryID='2' CategoryName='Condiments'/>

<;/Products>

<;Products ProductID='4' ProductName='Chef Anton&apos;s Cajun Seasoning'>

<;Categories CategoryID='2' CategoryName='Condiments'/>

<;/Products>

3.使用ELEMENTS選項

使用該選項可以生成以元素為中心的Xml表示,默認為屬性方式,不過屬性方式節省空間。需要注意的是使用ELEMENTS選項是一種全是或全否的形式,不能得到一部分是以元素表示而另一部分以屬性表示的Xml數據。

查詢語句:

SELECT CategoryID,

CategoryName

FROM Categories

WHERE CategoryID <3

FOR XML AUTO, ELEMENTS

返回結果:

<;Categories>

<;CategoryID>1<;/CategoryID>

<;CategoryName>Beverages<;/CategoryName>

<;/Categories>

<;Categories>

<;CategoryID>2<;/CategoryID>

<;CategoryName>Condiments<;/CategoryName>

<;/Categories>

在連接查詢時,

查詢語句:

SELECT Categories.CategoryID,

ProductID,

ProductName

FROM Categories

JOIN Products ON Categories.CategoryID = Products.CategoryIDand ProductID <;4

WHERE Categories.CategoryID <;3FOR XML AUTO, ELEMENTS

返回結果:

<;Categories>

<;CategoryID>1<;/CategoryID>

<;Products>

<;ProductID>1<;/ProductID>

<;ProductName>Chai<;/ProductName>

<;/Products>

<;Products>

<;ProductID>2<;/ProductID>

<;ProductName>Chang<;/ProductName>

<;/Products>

<;/Categories>

<;Categories>

<;CategoryID>2<;/CategoryID>

<;Products>

<;ProductID>3<;/ProductID>

<;ProductName>Aniseed Syrup<;/ProductName>

<;/Products>

<;/Categories>

4.檢索對二進制數據的XPath引用

這是對二進制數據的操作,

查詢語句:

SELECT CategoryID,

Picture

FROM Categories

WHERE CategoryID = 1

FOR XML AUTO

返回結果:

<;Categories CategoryID='1' Picture='dbobject/Categories[@CategoryID='1']/@Picture'/>

使用ELEMENTS方式,

查詢語句:

SELECT CategoryID,

Picture

FROM Categories

WHERE CategoryID = 1

FOR XML AUTO,ELEMENTS

返回結果:

<;Categories>

<;CategoryID>1<;/CategoryID>

<;Picture>dbobject/Categories[@CategoryID='1']/@Picture<;/Picture>

<;/Categories>

二。使用RAW模式

使用RAW模式不能使用ELEMENTS選項。

1.簡單查詢

查詢語句:

SELECT CategoryID,

CategoryName AS Nanme

FROM Categories

WHERE CategoryID <3

ORDER BY CategoryID DESC

FOR XML RAW

返回結果:

<;row CategoryID='2' Nanme='Condiments'/>

<;row CategoryID='1' Nanme='Beverages'/>

2.連接查詢

查詢語句:

SELECT Categories.CategoryID,

Categories.CategoryName,

ProductID,

ProductName

FROM Categories

JOIN Products ON Categories.CategoryID = Products.CategoryIDand ProductID <;4

WHERE Categories.CategoryID <;= 2FOR XML RAW

返回結果:

<;row CategoryID='1' CategoryName='Beverages' ProductID='1' ProductName='Chai'/>

<;row CategoryID='1' CategoryName='Beverages' ProductID='2' ProductName='Chang'/>

<;row CategoryID='2' CategoryName='Condiments' ProductID='3' ProductName='Aniseed Syrup'/>

標簽: Sql Server 數據庫
主站蜘蛛池模板: 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 自动配料系统_称重配料控制系统厂家| 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 无味渗透剂,泡沫抑尘剂,烷基糖苷-威海威能化工有限公司 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 魔方网-培训咨询服务平台| 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 宁夏档案密集柜,智能密集柜,电动手摇密集柜-盛隆柜业宁夏档案密集柜厂家 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 至顶网| 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 高尔夫球杆_高尔夫果岭_高尔夫用品-深圳市新高品体育用品有限公司 | 压滤机-洗沙泥浆处理-压泥机-山东创新华一环境工程有限公司 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 千淘酒店差旅平台-中国第一家针对TMC行业的酒店资源供应平台 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 深圳市人通智能科技有限公司| 安徽集装箱厂-合肥国彩钢结构板房工程有限公司 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 |