一个程序员的梦

导航

统计

公告

学习Mssql2005笔记2-XML

      XML是SQL 2000引入的,在2005版得到较大程度的较强,特别是增加了XML类型,把XML和其他的数据一起存储和管理,支持标准的XML查询。

一、 SQL2000中XML语法增强。

       原来SQL2000中T-SQL已经提供了For XML 语法,让返回的数据直接使用XML格式显示。(西西!从来没有用过!) SQL2005对此语法进行了增强。

1 包含XML Schema, 返回文件中包括了结构定义(XML Schema:XSD),增加参数 XMLSchema。

2 Type 参数是将查询结果以XML类型返回,而不是以varchar返回

3 Xpath 参数返回XML的文件结构。

 

二、XML 数据类型。

1 SQL2005 XML类型提供的好处:

  •  创建XML索引,访问更有效率。
  •  支持XQuery语法,通过XQuery 查询和数据修改,综合关联数据和XML2种数据特色。
  •  支持XML Schema 建立typed/untyped 格式的XML数据字段,选择性的通过数据库引擎通过XML Schema 来维护字段内数据的正确性。
  • XML限制:不能做主键,不能order by ,group by ,不能设置Unique约束。
  • 可以没有root element (称为XML碎片)。

2 untypedXML:未通过XML Schema强制定义数据类型的字段。

   可以存放任何符合Well-formed定义的XML字符:  <项目> ...</项目>

3 typedXML:通过XML Schema强制定义数据类型的字段。

  •    需要先注册XMLSchema,定义命名空间,文件内可使用的元素和属性以及彼此间关系。

   create XML SCHEMA Collection myschema

   as

   N'.....'

  • 然后建立符合上面定义的XML SCHEMA 的数据数据字段。

  Create table tblTest (id int identity primary Key, Data XML(Document myschema))

  • 插入纪录符合上面定义的XML SCHEMA的数据。不符合定义的数据插入会失败。

三、 创建XML索引。

1 建立XML索引,针对tag\value\path建立索引数据,可以提升XQuery访问XML数据效率。

2 建立XML索引必须先建立数据表的主键索引。建立XML字段的XML索引后,不能修改数据表的主键。

3 语法 

 create XML index <index_XML_name> on <table_name>(<XML 字段名>)

4 技巧:建立主数据表+ 单纯的XML数据表(外键关联),然后在XML数据表建立聚集主键和XML索引。这种分开设计有较大的灵活性和较好的查询效率。

5 主XML索引 path索引 和property索引 value索引。

6 通过Alter index  修改索引。

7 通过Drop index 删除索引。

8 建立xml索引后,依然可以建立全文索引,可以搭配XML的查询一起使用。

9 技巧: 先定义一个函数来取得XML字段中某项值,然后将自定义函数当作计算字段的定义,然后在计算字段上建立索引。

四、XQuery

特别提醒:XQuery是大小写区别。

这部分内容较复杂,这部分要弄明白看来得花点时间学习,还是参看在线帮助吧。

posted on 2006-09-20 16:23 newman0816 阅读(...) 评论(...) 编辑 收藏