Truy Vấn Dữ Liệu XML Từ Một Bảng Với Kiểu Dữ Liệu XML
Có thể bạn quan tâm
Mục đích của bài này nhằm hướng dẫn các quản trị viên cơ sở dữ liệu Microsoft SQL Server trong việc: • Tạo giản đồ XML (XML Shema). • Tạo một bảng với kiểu dữ liệu XML. • Nhập file XML vào bảng với kiểu dữ liệu XML. • Truy vấn file XML. • Truy vấn file XML và đưa ra kết quả, tương tự như kết quả trả ra từ các lệnh Transact SQL Statement. Bước 1 Đầu tiên, tạo một file C:\XML\Customer1.XML như bên dưới. File XML này chứa dữ liệu liên quan đến một khách hàng.
<?xml version="1.0" standalone="yes"?><Customer> <CustomerLogInfo> <Date>2007-03-31T06:40:38.0000000-05:00</Date> <user>james.brewer</user> <Userid>1AE</Userid> <ls>A-Accessible</ls> <eqtid>761</eqtid> <es>Stopped</es> <tp>30</tp> </CustomerLogInfo> <CustomerLogInfo> <Date>2007-03-31T06:40:38.0000000-05:00</Date> <user>james.brewer</user> <Userid>1AE</Userid> <ls>Not-Accessible</ls> <eqtid>870</eqtid> <es>Stopped</es> <tp>30</tp> </CustomerLogInfo> <CustomerLogInfo> <Date>2007-03-31T06:40:38.0000000-05:00</Date> <user>james.brewer</user> <Userid>1AE</Userid> <ls>A-Accessible</ls> <eqtid>97F</eqtid> <es>Started</es> <tp>30</tp> </CustomerLogInfo></Customer>
Bước 2 Tạo một cơ sở dữ liệu (CSDL) và một tập hợp XML Schema như bên dưới:
USE [master] GO /****** Object: Database [XMLTest] Script Date: 04/17/2007 01:49:43 ******/ IF EXISTS (SELECT name FROM sys.databases WHERE name = N'XMLTest') DROP DATABASE [XMLTest] go create database XMLTest go use XMLTest go Create XML Schema Collection XMLTrack as N'<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Customer"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="CustomerLogInfo"> <xs:complexType> <xs:sequence> <xs:element name="Date" type="xs:string" /> <xs:element name="user" type="xs:string" /> <xs:element name="Userid" type="xs:string" /> <xs:element name="ls" type="xs:string" /> <xs:element name="eqtid" type="xs:string" /> <xs:element name="es" type="xs:string" /> <xs:element name="tp" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>' go
Chú ý: update tập hợp Schema dựa trên dữ liệu của riêng bạn trong file XML. Bước 3 Tạo một bảng với kiểu dữ liệu XML:
USE [XMLTest]GO/****** Object: Table [dbo].[XMLFiles] Script Date: 04/17/2007 02:07:52 ******/IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[XMLFiles]') AND type in (N'U'))DROP TABLE [dbo].[XMLFiles] create table XMLFiles(Fileid int identity(1,1),ImportedDate datetime constraint xmldatestamp default getdate(),Filename varchar(500),data xml (XMLTrack))
Bước 4 Nhập file XML vừa tạo (C:\XML\Customer1.XML), sử dụng hàm openrowset như bên dưới:
USE [XMLTest]goINSERT INTO XMLFiles(Filename,DATA) SELECT 'Customer1' a,* FROM OPENROWSET( BULK 'C:\XML\Customer1.xml' ,SINGLE_CLOB)as mytablego
Chú ý: Từ khoá SINGLE_BLOB sẽ nhập toàn bộ file XML cho cột có kiểu dữ liệu XML. Bước 5 Truy vấn bảng XMLFiles, sử dụng các thao tác SQL như bên dưới:
USE [XMLTest] go select * from XMLFiles where FileId=1 go
Lệnh này sẽ đưa ra các kết quả sau:
Hình 1.0
Khi kích chuột lên dữ liệu, nó cũng hiển thị dữ liệu XML (Hình 1.1).
<Customer> <CustomerLogInfo> <Date>2007-03-31T06:40:38.0000000-05:00</Date> <user>james.brewer</user> <Userid>1AE</Userid> <ls>A-Accessible</ls> <eqtid>761</eqtid> <es>Stopped</es> <tp>30</tp> </CustomerLogInfo> <CustomerLogInfo> <Date>2007-03-31T06:40:38.0000000-05:00</Date> <user>james.brewer</user> <Userid>1AE</Userid> <ls>Not-Accessible</ls> <eqtid>870</eqtid> <es>Stopped</es> <tp>30</tp> </CustomerLogInfo> <CustomerLogInfo> <Date>2007-03-31T06:40:38.0000000-05:00</Date> <user>james.brewer</user> <Userid>1AE</Userid> <ls>A-Accessible</ls> <eqtid>97F</eqtid> <es>Started</es> <tp>30</tp> </CustomerLogInfo> </Customer>
Hình 1.1
Bước 6 Bây giờ, truy vấn dữ liệu XML từ bảng để đưa ra một giao dịch SQL như tập hợp kết quả. Thực thi chương trình XQuery như bên dưới:
SELECT ref.value ('Date', 'nvarchar(364)') as [Date],ref.value ('user', 'nvarchar(364)') as [User],ref.value ('Userid', 'nvarchar(364)') as [Userid],ref.value ('ls', 'nvarchar(364)') as [ls],ref.value ('eqtid', 'nvarchar(364)') as [eqtid],ref.value ('es', 'nvarchar(364)') as [es],ref.value ('tp', 'nvarchar(364)') as [tp]FROM XMLFiles CROSS APPLY Data.nodes ('//Customer/CustomerLogInfo') R(ref)where Fileid=1
Chương trình sẽ cho kết quả như Hình 1.2:
Date,User,Userid,ls,eqtid,es,tp 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,A-Accessible,761,Stopped,30 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,Not-Accessible,870,Stopped,30 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,A-Accessible,97F,Started,30
Hình 1.2
Bước 7 Bây giờ lặp lại bước 4 và nhập lại dữ liệu.
USE [XMLTest] go INSERT INTO XMLFiles(Filename,DATA) SELECT 'Customer1' a,* FROM OPENROWSET( BULK 'C:\XML\Customer1.xml' ,SINGLE_CLOB) as mytable go
Bước 8 Truy vấn bảng như bên dưới:
USE [XMLTest] go select * from XMLFiles go
Kết quả là:
Hình 1.3
Bước 9 Để hiển thị tất cả dữ liệu từ cả hai hàng, chúng ta có thể viết truy vấn như bên dưới:
SELECT ref.value ('Date', 'nvarchar(364)') as [Date],ref.value ('user', 'nvarchar(364)') as [User],ref.value ('Userid', 'nvarchar(364)') as [Userid],ref.value ('ls', 'nvarchar(364)') as [ls],ref.value ('eqtid', 'nvarchar(364)') as [eqtid],ref.value ('es', 'nvarchar(364)') as [es],ref.value ('tp', 'nvarchar(364)') as [tp]FROM XMLFiles CROSS APPLY Data.nodes ('//Customer/CustomerLogInfo') R(ref)where Fileid=1union allSELECT ref.value ('Date', 'nvarchar(364)') as [Date],ref.value ('user', 'nvarchar(364)') as [User],ref.value ('Userid', 'nvarchar(364)') as [Userid],ref.value ('ls', 'nvarchar(364)') as [ls],ref.value ('eqtid', 'nvarchar(364)') as [eqtid],ref.value ('es', 'nvarchar(364)') as [es],ref.value ('tp', 'nvarchar(364)') as [tp]FROM XMLFiles CROSS APPLY Data.nodes ('//Customer/CustomerLogInfo') R(ref)where Fileid=2
Kết quả có dạng như Hình 1.4.
Date,User,Userid,ls,eqtid,es,tp 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,A-Accessible,761,Stopped,30 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,Not-Accessible,870,Stopped,30 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,A-Accessible,97F,Started,30 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,A-Accessible,761,Stopped,30 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,Not-Accessible,870,Stopped,30 2007-03-31T06:40:38.0000000-05:00,james.brewer,1AE,A-Accessible,97F,Started,30
Chú ý: Nếu bạn đang có kế hoạch hiển thị tất cả dữ liệu từ từng hàng có kiểu dữ liệu XML, bạn có thể tạo một thủ tục lưu trữ với bảng tạm thời hoặc con trỏ…
Hình 1.4
Kết luận Bài này minh hoạ cho các bạn cách tạo một XML Schema, tạo một bảng với kiểu dữ liệu XML, nhập file XML vào bảng với kiểu dữ liệu XML, truy vấn file XML và đưa ra kết quả tương tự như tập hợp kết quả thực hiện bởi các lệnh SQL Transact.
Thứ Sáu, 25/05/2007 11:21 5 ★ 4 👨 10.957Bạn nên đọc
-
RAM đắt đến mức… Samsung cũng không dám bán RAM cho chính Samsung
-
Một trong những thương hiệu RAM, SSD lớn nhất thế giới chuẩn bị đóng cửa
-
Hướng dẫn vệ sinh bàn phím laptop mà không cần tắt máy (an toàn & hiệu quả)
-
6 cách tận dụng iPad cũ hiệu quả nhất: Biến thiết bị lỗi thời thành đồ hữu ích
-
Khắc phục kết nối Internet sau khi bị nhiễm virus
-
Bụi đang “giết chết” âm thanh của bạn — Cách vệ sinh loa đúng chuẩn
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Số điện thoại chưa đúng định dạng! Xác thực ngaySố điện thoại này đã được xác thực!Bạn có thể dùng Sđt này đăng nhập tại đây! Lỗi gửi SMS, liên hệ Admin 0 Bình luậnSắp xếp theo Mặc địnhMới nhấtCũ nhấtCũ vẫn chất
-

Cách tìm ước chung lớn nhất (ƯCLN), bội chung nhỏ nhất (BCNN)
2 ngày 7 -

Cách ẩn danh sách bạn bè trên Facebook điện thoại, máy tính
2 ngày -

Toán tử trong C++
2 ngày -

Hướng dẫn chèn ảnh dưới chữ trong PowerPoint
2 ngày -

Code Loạn Chiến 3Q mới nhất và cách nhập code
2 ngày 1 -

Bkav công bố BkavGPT, giải quyết được vấn đề mà OpenAI, Google đang gặp phải
2 ngày -

CD Key CS các phiên bản, CD Key CS 1.1, Key CS 1.3, Key CS 1.6
2 ngày -

Mâm cỗ trung thu đẹp, cách trang trí mâm cỗ trung thu đẹp
2 ngày -

8 cách mở bàn phím ảo trên Windows 10
2 ngày -

Cách sửa lỗi âm thanh trên Windows 10, khắc phục lỗi âm thanh Win 10
2 ngày
-
Công nghệ -
Ứng dụng -
Hệ thống -
Game - Trò chơi -
iPhone -
Android -
Linux -
Nền tảng Web -
Đồng hồ thông minh -
macOS -
Chụp ảnh - Quay phim -
Thủ thuật SEO -
Phần cứng -
Kiến thức cơ bản -
Raspberry Pi -
Lập trình -
Hình nền đẹp -
Dịch vụ công trực tuyến -
Dịch vụ nhà mạng -
Ví điện tử - Ngân hàng
-
-
Học CNTT -
Quiz công nghệ -
Microsoft Word 2016 -
Microsoft Word 2013 -
Microsoft Word 2007 -
Microsoft Excel 2019 -
Microsoft Excel 2016 -
Hàm Excel -
Microsoft PowerPoint 2019 -
Microsoft PowerPoint 2016 -
Google Sheets -
Học Photoshop -
Học Python -
HTML -
Lập trình Scratch -
Học SQL -
CSS và CSS3 -
Lập trình C -
Lập trình C++ -
Lập trình C# -
Học PHP -
Bootstrap -
SQL Server -
JavaScript -
Unix/Linux
-
-
Download -
Năng suất -
Game - Trò chơi -
Hệ thống -
Thiết kế & Đồ họa -
Internet -
Bảo mật, Antivirus -
Doanh nghiệp -
Ảnh & Video -
Giải trí & Âm nhạc -
Mạng xã hội -
Lập trình -
Giáo dục - Học tập -
Lối sống -
Tài chính & Mua sắm
-
-
AI Trí tuệ nhân tạo -
ChatGPT -
Copilot -
Gemini
-
-
Tiện ích -
Khoa học -
Khoa học vui -
Khám phá khoa học -
Bí ẩn - Chuyện lạ -
Sức khỏe -
Vũ trụ -
Khám phá thiên nhiên -
Bảo vệ Môi trường -
Phát minh Khoa học
-
-
Điện máy -
Tivi -
Tủ lạnh -
Điều hòa -
Máy giặt
-
-
Cuộc sống -
TOP -
Kỹ năng -
Kỹ năng mềm -
Món ngon mỗi ngày -
Học nhanh nhớ lâu -
Nuôi dạy con -
Mẹo vặt -
Phim ảnh, Truyện -
Làm đẹp -
DIY - Handmade -
Du lịch -
Quà tặng -
Giải trí -
Là gì? -
Nhà đẹp -
Tết 2025 -
Giáng sinh - Noel -
Kỹ năng sống
-
-
Video -
Hướng dẫn -
Công nghệ -
Khoa học
-
-
Ô tô, Xe máy -
Làng Công nghệ -
Tấn công mạng -
Chuyện công nghệ -
Công nghệ mới -
Trí tuệ Thiên tài -
Tổng hợp
-
Từ khóa » Câu Lệnh Xml
-
Cú Pháp Của XML
-
Bài 1.4. Cú Pháp XML | V1Study
-
Bài 01: XML Là Gì? Cú Pháp Căn Bản Của XML
-
File XML Là Gì? Tìm Hiểu Về Ngôn Ngữ XML - Vietnix
-
XML Cho Tệp Chưa được Khởi Tạo - Microsoft Support
-
Tổng Quan Về XML DOM - Viblo
-
Những Thành Phần Cơ Bản Của XML - .vn
-
Câu Hỏi XML - TaiLieu.VN
-
[PDF] Bài 1 Tìm Hiểu Cấu Trúc Và Cú Pháp Của XML
-
[PDF] CĂN BẢN VỀ XML
-
Cú Pháp Cho Các Câu Lệnh Có điều Kiện Trong Bố Cục XML Của Android
-
XML Là Gì? Cú Pháp Căn Bản Của XML | PLC Schneider
-
Chuyển đổi Dữ Liệu Quan Hệ Sang Dữ Liệu XML - Tài Liệu Text - 123doc
-
Tìm Hiểu Cấu Trúc Và Cú Pháp Của XML - Tài Liệu, Ebook
Học IT
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy