学习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 阅读(686) 评论(0) 编辑 收藏 举报