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

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

在SQL Server中用XQuery分解XML數據

瀏覽:136日期:2023-11-01 14:32:50

本文討論SQL Server 2005的新功能,它允許你將XML數據分解到關系格式中,而不必耗用太多內存。

在舉例說明如何分解上一篇文章中的數據時,我們首先了解一下XQuery和它在SQL Server 2005中為開發者提供的功能。

XQuery介紹

XQuery,也稱作XML Query,是一種查詢XML數據的語言,允許你提取所需的節點和元素。它由W3C定義,可用于今天的大多數主流數據庫引擎中,如Oracle、DB2和SQL Server。

SQL Server 2005 XQuery函數

下面的四個函數是SQL Server 2005中的XQuery函數。(注意,XML、XQuery語句和下面的函數都區分大小寫。例如,SQL編譯器接受XML數據中的.exist,但拒絕.EXIST或.Exist。)

xml.exist

這個方法根據一個XML節點上的搜索表達式返回一個布爾值。例如,列表A中XML代碼片段中的語句將返回1(真):

SELECT @x.exist('/christmaslist/person[@gift = 'socks']')

這個語句返回0(假):

SELECT @x. exist ('/christmaslist/zach')

由于“Socks”一詞被封套,這個語句將返回0(假)。

SELECT @x.exist('/christmaslist/person[@gift = 'socks']')

xml.value

這個方法接受一個XQuery語句并返回一個單獨值。使用列表A中同樣的XML代碼片段,不可以使用VALUE函數生成“betty”值,如下所示:

SELECT @x.value('/christmaslist[1]/person[1]/@name', 'VARCHAR(20)')

而XQuery生成“zach”值。

SELECT @x.value('/christmaslist[1]/person[2]/@name', 'VARCHAR(20)')

xml.query

這個方法接受一個XQuery并返回一個XML數據類型的實例。可以按需要將這些查詢簡單或復雜化,下面是一個簡單的例子:

SELECT @x.query('/christmaslist/person')

它返回XML文件:

<person name='betty' gift='camera' />

<person name='zach' gift='elmo doll' />

<person name='brad' gift='socks' />

xml.nodes

在你需要將一個XML數據類型變量中的數據分解到關系數據中時,這個方法十分有用。這個方法接受一個XQuery語句作為參數,并返回一個包含XML變量邏輯標量數據的行集。列表B中的查詢利用上面定義的XML變量,并將數據分解到一個結果集中,它顯示在XML變量中定義的人物姓名。

修改OPENXML存儲過程

現在我來說明如何修改上周的OPENXML存儲過程,使其可以應用XQuery功能。首先,我往XML變量中加載一些數據。如列表C所示。我們可以建立一個接受XML參數的過程,再應用XQuery函數把XML文件中的數據插入一個表中,而不必應用OPENXML。如列表D所示。

最初在數據庫中應用XML似乎有些難于處理,還要花一些時間習慣使用XQuery和Xpath查詢。但是,經過一段時間的學習以后,你就會發現在數據庫中應用XML數據相當實用。

例如,在上述存儲過程中應用XML數據,你只需調用一次數據庫,而不必像典型存儲過程編程那樣調用N次數據庫。這二者似乎區別不大,但對一個繁忙的系統而言,應用XML數據會有很大益處。而且,應用XQuery而非OPENXML還會顯著提高性能,對小型XML文件更是如此。

標簽: Sql Server 數據庫
主站蜘蛛池模板: 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 斗式提升机,斗式提升机厂家-淄博宏建机械有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 水厂自动化-水厂控制系统-泵站自动化|控制系统-闸门自动化控制-济南华通中控科技有限公司 | 高中学习网-高考生信息学习必备平台| 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 慢回弹测试仪-落球回弹测试仪-北京冠测精电仪器设备有限公司 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 | 青州开防盗门锁-配汽车芯片钥匙-保险箱钥匙-吉祥修锁店 | 智慧水务|智慧供排水利信息化|水厂软硬件系统-上海敢创 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 深圳离婚律师咨询「在线免费」华荣深圳婚姻律师事务所专办离婚纠纷案件 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 菏泽商标注册_菏泽版权登记_商标申请代理_菏泽商标注册去哪里 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 渣油泵,KCB齿轮泵,不锈钢齿轮泵,重油泵,煤焦油泵,泊头市泰邦泵阀制造有限公司 | 内窥镜-工业内窥镜厂家【上海修远仪器仪表有限公司】 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 猎头招聘_深圳猎头公司_知名猎头公司 | 铸钢件厂家-铸钢齿轮-减速机厂家-淄博凯振机械有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 盛源真空泵|空压机-浙江盛源空压机制造有限公司-【盛源官网】 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 |