Presentation is loading. Please wait.

Presentation is loading. Please wait.

The XML data type in Microsoft SQL Server. The XML Type Microsoft SQL Server offers a special data type – XML – Used in tables, etc. – Basically a (long)

Similar presentations


Presentation on theme: "The XML data type in Microsoft SQL Server. The XML Type Microsoft SQL Server offers a special data type – XML – Used in tables, etc. – Basically a (long)"— Presentation transcript:

1 The XML data type in Microsoft SQL Server

2 The XML Type Microsoft SQL Server offers a special data type – XML – Used in tables, etc. – Basically a (long) text string With some special features Example, create table Create table course ( courseID int identity(1,1) primary key, coursename varchar(50) not null, description xml) An attribute with the XML type can be NULL or NOT NULL Example, insert insert into course (coursename, description) values ('Accounting', ' Accounting blah blah '); 2The XML data type

3 Typed vs. non-typed XML Typed XML – The XML data type has an associated XML schema – The DBMS verifies that the XML input validates using the schema at INSERT and UPDATE Non-typed XML – The XML data type does not have an associated XML schema – The DBMS verifies that the XML input is well formed at INSERT AND UPDATE 3The XML data type

4 Creating an XML schema collection create xml schema collection departmentDescriptionCollection as ' ' 4The XML data type

5 Using an XML schema collection Example, CREATE – CREATE TABLE department( – departmentID int IDENTITY(1,1) NOT NULL, – departmentName varchar(50) NOT NULL, – description xml(CONTENT departmentDescriptionCollection) Example, INSERT insert into department (departmentName, description) values ('accounting', ' Accounting blah blah '); 5The XML data type

6 XML Data type methods The XML data type has 5 methods –.query(…) Using XQuery –.value(…) Access values inside a specific element or attribute –.modify(…) Modify the XML data Not part of the XQuery standard –.nodes(…) Break XML data into relational-style rows –.exists(…) Tests whether a specific kind of data exists The XML data type6

7 XQuery Quotes – XQuery is to XML, what SQL is to database tables. – XQuery was designed to query XML data. – From http://www.w3schools.com/xquery/default.asp The XML data type7

8 Simple XQuery expressions Executed on a variable, not a table column declare @xmlOrderData xml; set @xmlOrderData = N' 250 GB hard drive 120 USB Mouse 25 ' select @xmlOrderData.query('/items/item[@id="25"]'); Source: Lee & Bieker: Mastering Microsoft SQL Server 2008, Sybex /Wiley 2009, page 208-209 8The XML data type

9 Simple XQuery Executed on a database column Example, SELECT with XQuery select name, description.query('/root/shortDescription') from course; The XML data type9

10 XML.value(…) method.query() vs.value() – select departmentName, description.query('/root/shortDescription') from department; Returns departmentName + XML fragment – select departmentName, description.value('/root/shortDescription', 'varchar(50)') from department; Returns departmentName + description – Description is converted into a varchar(50).value(XQuery, SQLtype) – The Xquery must return at most one value. Syntax often used (…)[1] – Only the fist element is considered. The XML data type10

11 XML.modify(…) method XQuery can only select data – Not modify data Microsoft has extended XQuery to include modification – insert – delete – replace value of Example, UPDATE … replace value of … UPDATE department SET description.modify('replace value of (/root/shortDescription) with "another description"') WHERE departmentid = 9 The XML data type11

12 XML.nodes(…) method Breaking XML data into their own table – This temporary table is often ”joined” with the table that has the XML column. Syntax – SELECT columns FROM table CROSS APPLY columnName.nodes(XQuery) AS alias – ”CROSS APPLY” is a kind of join The XML data type12

13 XML.exist() method Similar to the EXISTS operator in ordinary SQL. XML.exist(XQuery) – Returns 1 (true) or 0 (false)! Used in SELECT … WHERE … Example SELECT departmentName FROM department WHERE description.exist('/root/shortDescription') = 1; The XML data type13


Download ppt "The XML data type in Microsoft SQL Server. The XML Type Microsoft SQL Server offers a special data type – XML – Used in tables, etc. – Basically a (long)"

Similar presentations


Ads by Google