1. 程式人生 > >SQL Server XML 入門 基礎

SQL Server XML 入門 基礎

/*
以下的文章主要描述的是SQL Server XML 入門的18句話,如果你對SQL Server XML 入門的18句話有興趣的話,你就可以對以下的文章點選觀看了
,以下就是文章的詳細內容介紹,望大家借鑑。


sql xml 入門:


1、xml: 能認識元素、屬性和值


2、SQL Server xpath: 定址語言,類似windows目錄的查詢(沒用過dir命令的話就去面壁)


語法格式,這些語法可以組合為條件:


"."表示自己,".."表示父親,"/"表示兒子,"//"表示後代,


"name"表示按名字查詢,"@name"表示按屬性查詢


"集合[條件]" 表示根據條件取集合的子集,條件可以是


數 值:數字,last(),last()-數字 等


布林值:position()<數字,@name='條件',name='條件'


條件是布林值的時候可以合併計算:and or


3、xquery: 基於xpath標的準查詢語言,SQL Server xquery包含如下函式


exist(xpath條件):返回布林值表示節點是否存在


query(xpath條件):返回由符合條件的節點組成的新的SQL Server xml文件


value(xpath條件,資料型別):返回指定的標量值,xpath條件結果必須唯一


nodes(xpath條件): 返回由符合條件的節點組成的一行一列的結果表


*/


DECLARE @data XML   
SET @data = '   
<bookstore>   
<book category="COOKING">   
<title lang="en">Everyday Italian</title>   
<author>Giada De Laurentiis</author>   
<year>2005</year>   
<price>30.00</price>   
</book>   
<book category="CHILDREN">   
<title lang="jp">Harry Potter</title>   
<author>J K. Rowling</author>   
<year>2005</year>   
<price>29.99</price>   
</book>   
<book category="WEB">   
<title lang="en">XQuery Kick Start</title>   
<author>James McGovern</author>   
<author>Per Bothner</author>   
<author>Kurt Cagle</author>   
<author>James Linn</author>   
<author>Vaidyanathan Nagarajan</author>   
<year>2003</year>   
<price>49.99</price>   
</book>   
<book category="WEB">   
<title lang="cn">Learning XML</title>   
<author>Erik T. Ray</author>   
<year>2003</year>   
<price>39.95</price>   
</book>   
</bookstore>   
'  
--測試語句,如果不理解語法請參考上面的xpath規則和xquery函式說明


--1、文件


SELECT dataset='dataset01', @data


--2、任意級別是否存在price節點


SELECT  dataset='dataset02', @data . exist('//price')


--3、獲取所有book節點


SELECT  dataset='dataset03', @data . query('//book')


--4、獲取所有包含lang屬性的節點


SELECT  dataset='dataset04', @data . query('//*[@lang]')


--5、獲取第一個book節點


SELECT  dataset='dataset05', @data . query('//book[1]')


--6、獲取前兩個book節點


SELECT  dataset='dataset06', @data . query('//book[position()<=2]')


--7、獲取最後一個book節點


SELECT  dataset='dataset07', @data . query('//book[last()]')


--8、獲取price>35的所有book節點


SELECT  dataset='dataset08', @data . query('//book[price>35]')


--9、獲取category="WEB"的所有book節點


SELECT  dataset='dataset09', @data . query('//book[@category="WEB"]')


--10、獲取title的lang="en"的所有book節點


SELECT dataset='dataset10',  @data . query('//book/title[@lang="en"]')


--11、獲取title的lang="en"且 price>35的所有book節點


SELECT  dataset='dataset11', @data . query('//book[./title[@lang="en"] or price>35 ]')


--12、獲取title的lang="en"且 price>35的第一book的(第一個)title


SELECT  dataset='dataset12', @data . query('//book[./title[@lang="en"] and price>35 ]'). value('(book/title)[1]',
                                                              'varchar(max)')


--13、等價於10


SELECT  dataset='dataset13', @data . value('(//book[./title[@lang="en"] and price>35 ]/title)[1]',
                      'varchar(max)')


--14、獲取title的lang="en"且 price>35的第一book的(第一個)title的lang屬性


SELECT  dataset='dataset14', @data . value('((//book[@category="WEB" and price>35 ]/title)[1]/@lang)[1]',
                      'varchar(max)')


--15、SQL Server XML中獲取第一本書的title


SELECT  dataset='dataset15', @data . value('(//book/title)[1]', 'varchar(max)') AS title
FROM    @data . nodes('bookstore') AS Tab ( Col )


--16、獲取每本書的第一個author


SELECT  dataset='dataset16', Tab.Col.value('author[1]', 'varchar(max)') AS title
FROM    @data . nodes('//book') AS Tab ( Col )


--17、獲取所有book的所有資訊


SELECT  dataset='dataset17', T.C.value('title[1]', 'varchar(max)') AS title ,
        T.C.value('year[1]', 'int') AS year ,
        T.C.value('title[1]', 'varchar(max)') AS title ,
        T.C.value('price[1]', 'float') AS price ,
        T.C.value('author[1]', 'varchar(max)') AS author1 ,
        T.C.value('author[2]', 'varchar(max)') AS author2 ,
        T.C.value('author[3]', 'varchar(max)') AS author3 ,
        T.C.value('author[4]', 'varchar(max)') AS author4
FROM    @data . nodes('//book') AS T ( C ) 
--18、獲取不是日語(lang!="jp")且價格大於35的書的所有資訊


SELECT  dataset='dataset18', T.C.value('title[1]', 'varchar(max)') AS title ,
        T.C.value('year[1]', 'int') AS year ,
        T.C.value('title[1]', 'varchar(max)') AS title ,
        T.C.value('price[1]', 'float') AS price ,
        T.C.value('author[1]', 'varchar(max)') AS author1 ,
        T.C.value('author[2]', 'varchar(max)') AS author2 ,
        T.C.value('author[3]', 'varchar(max)') AS author3 ,
        T.C.value('author[4]', 'varchar(max)') AS author4
FROM    @data . nodes('//book[./title[@lang!="jp"] and price>35 ]') AS T ( C ) 

相關推薦

SQL Server XML 入門 基礎

/* 以下的文章主要描述的是SQL Server XML 入門的18句話,如果你對SQL Server XML 入門的18句話有興趣的話,你就可以對以下的文章點選觀看了 ,以下就是文章的詳細內容介紹,望大家借鑑。 sql xml 入門: 1、xml: 能認識元素、屬性和值

SQL Server XML基礎學習之--XML modify() 方法對 XML 資料中插入、更新或刪除

/*------------------------------------------------------------------------------+ #| = : = : = : = : = : = : = : = : = : = : = : = : = :

SQL Server 2008入門學習

學會 建表 一個數 安裝 新的 一個 學生 輸入 images 計應154張家浩:這學期學習了一門新的課程叫數據庫實用技術,主要是對軟件SQL Server 2008的學習,剛開始學的時候什麽都不懂一頭霧水,學習了一周之後,慢慢學會了如何建立數據庫,如何創建表格以及建立表格

SQL Server入門(四) 官網關於 SQL Server初級入門教程

學習內容 這些教程將幫助你理解 SSMS 中提供的資訊以及如何利用其功能。 熟悉 SSMS 的最好方式是進行實踐演練。 這些教程將使你熟悉 SSMS 中提供的各種功能。 這些教程將講述如何管理 SSMS 元件以及如何查詢常用的功能。 以下是本教程內容: 教

SQL Server複製入門(一)----複製簡介 (轉載)

簡介SQL Server中的複製(Replication)是SQL Server高可用性的核心功能之一,在我看來,複製指的並不僅僅是一項技術,而是一些列技術的集合,包括從儲存轉發資料到同步資料到維護資料一致性。使用複製功能不僅僅需要你對業務的熟悉,還需要對複製功能的整體有一個全面的瞭解,本系列文章旨在對SQL

SQL Server入門到精通》

書名 《SQL Server從入門到精通》 圖片 時間 2017-6月 學習 書還可以看完不痛不癢 光盤裡面是c的視訊有趣這是要我學c的節奏啊,可以寫一些基礎sql語句也

SQL Server 2012資料庫基礎

1.   資料庫系統基本概念 資料庫(DataBase,DB)是長期儲存在計算機內有組織的、大量的、可共享的資料集合,它可供各種使用者共享且具有最小冗餘度和較高的資料與程式獨立性。在多使用者同時使用資料庫時,能進行併發控制,及時有效地處理資料,提供安全性和完整性保護,並在

Sql Server快速入門

Sql Server快速入門 1.資料庫的建立,刪除:備份,分離:附加; 注意:資料庫在開啟使用時,無法進行復制,貼上,需要對其進行分離,再複製貼上,然後通過附加,載入回去。 注意:在對資料庫進行附加操作時,如果遇到訪問被拒絕,可能是許可權問題,對許可權進行修改即可。如圖: 2.資料庫

SQL server 2000資料庫基礎程式設計(一)

以下所有內容適用於SQL server 2000,其他版本或型別資料庫可能會有部分不同,語句都差不多,請隨機應變,例: sysdatabases <–> sys.databases

圖解SQL Server 2008入門總結

一 SQL Server 2008 工具 1 安裝好後的SQL Server 2008 開始選單如下圖; 2 進入企業管理器; 在一個數據庫下面包含如下圖的節點; 資料庫關係圖 節點包含了資料庫中的關係圖物件。 表 節點包含資料庫最基本的物件-表。 檢視 節點包含資

SQL Server 入門學習總結---基礎

首先相信很多人在開始準備學習的時候,肯定對資料庫的基本學習路線是蒙的,當然我也是這樣過來的。我也是在後來把基礎知識學完之後,才看到一張圖,很棒的學習路線圖。先把這個分享給大家: 對於這張圖,相信不用

sql server-入門基礎

sql server用於訪問和處理資料庫,可以進行資料庫的查詢、從資料庫取回資料、向資料庫中插入新的記錄、更新資料庫中的資料、刪除資料庫中的記錄等操作。sql server主要包括兩部分:資料操作語言和資料定義語言。本次主要記錄如何使用sql server操作語言(selec

SQL Server基礎(七) VS2015 連線資料庫——基礎入門篇:主要分為配置並載入App.config檔案、建立資料工廠物件、建立連線物件、建立命令物件、建立讀取器物件幾個步驟。

一、簡介          1、關於學習C#如何連線資料庫或斷開連線資料(斷開連線資料庫往後我將討論),我是按照這本書一點一點學習的。        現在,終於用到了資料庫,於是,學習如何去連線資

[SQL] SQL SERVER基礎語法

取消 implicit 全連接 樹結構 需要 強制 rom lec 多行 Struct Query Language 1.3NF   a.原子性   b.不能數據冗余   c.引用其他表的主鍵 2.約束   a.非空約束   b.主鍵約束   c.唯一約束   d.默認

SQL Server 常用操作XML

man 刪除節點 操作 ble rep 插入 mman varchar lis --修改FunctionNo節點值,@OperateFunctionNo為參數 set @DataXml.modify(‘replace value of (/CrudData/Functio

SQL Server-表表達式基礎

sql server表表達式表表達式沒有任何的物理實例化,在查詢表表達式時它們是虛擬的,內部查詢是非嵌套的,換句話說,外部查詢和內部查詢直接合並到一個底層對象的查詢中,使用表表達式的好處通常與代碼的邏輯方面有關,而與代碼的性能無關-摘抄自SQL Server 2012基礎教程。在使用表表達式時我們必須滿足以下

sql server使用的相關基礎知識

nbsp png idt 知識 p s 開頭 gin mage num 1、表的管理--表和列的命名 必須以字母開頭 長度不能超過128字符 不要使用sql server的保留字 只能使用如下字符A-Z,a-z,0-9,$,#,_等等 2、表的管理--支持的數據類型

SQL Server 基礎

arc com 數據類型 表達 alt from rate 默認 select 1.select 查詢的列,對列的限制;where 過濾行,對行的限制;group by 集合運算,如取平均數;having 對集合運算取值的限制,如均值要大於30;order by 對排序

SQL Server數據庫基礎筆記

狀態 常見問題 upd 登錄名 sel use 安裝路徑 windows 步驟 啟動和停止SQL Server服務三種形式 後臺啟動服務 計算機—>右鍵—>管理—>服務和應用程序—>服務—>sql server(MSSQLSERVER)

sql server 2008 之利用SQL Server Management Studio創建數據庫(最基礎

sql server 2008 數據庫 基礎本文出自 “大李子” 博客,謝絕轉載!sql server 2008 之利用SQL Server Management Studio創建數據庫(最基礎)