SQLShack alkalmazásban

ebben a cikkben bemutatjuk, hogyan lehet XML adattípusú dokumentumot létrehozni egy relációs táblából, különböző T-SQL módszerek felhasználásával. Például az adatok áttelepítéséhez az SQL Server adatbázisból származó információk exportálhatók és importálhatók XML használatával egy másik keretrendszerben. Az XML az adatok kinyerésének, tárolásának és manipulálásának szabványos módja. Az XML adattípussal való munka egyik aspektusa az XML létrehozása relációs információkból, amely az SQL Server for XML szolgáltatásával történik:

 táblázat XML dokumentumhoz

táblázat XML dokumentumhoz

az XML adattípus alternatív módon használható az SQL Server rendszerben. Ez a cikk elmagyarázza az XML néhány alapvető használatát. Az XML kulcsszó olyan rendelkezés, amely hozzáadható a SELECT query utasítással, hogy előkészítse az XML dokumentumot a lekérdezés eredményében szükséges űrlapokban. Az eredmény egy Unicode karakterlánc, amely összetevőket és tulajdonságokat tartalmaz, amelyeket az XML-ben megadott különböző módok vezérelnek.

a négy mód:

  • RAW
  • AUTO
  • EXPLICIT
  • útvonal

az alábbi táblázat a különböző módszerek további tisztázására szolgáló mintaadatokat mutatja:

minta táblázat

minta táblázat

automatikus mód

az automatikus mód az egyik megközelítés az XML elemek átalakítására a táblázat soraiból. Az XML dokumentum ELEMNEVEI, amelyek megfelelnek a SELECT lekérdezés oszlopaliasának vagy oszlopnevének.

például a lekérdezés eredménye egyetlen XML dokumentummal készült a fenti mintaadatokhoz. A lekérdezés eredményének 5 sora volt egy eredményhalmazban, amely egy magányos cellás eredményhalmazra változik. Ezt a módszertant egyértékű függvényben használják több sor visszaadására egyetlen visszatérési változóban.

1
2
3

válassza user_id, fname, lname, email_
FROM user_details
az XML AUTO;

táblázat XML adattípushoz

táblázat XML adattípus

itt az AUTO fejlécneveket állít elő táblázatnevek felhasználásával.

EXPLICIT mód

a következő XML stílusának nagyobb ellenőrzéséhez az SQL fejlesztők használhatják az EXPLICIT módot. EXPLICIT módban a lekérdezés eredménye egyetlen XML adattípusú dokumentummá változik, testreszabott XML címkékkel és értékekkel. Az EXPLICIT mód a rekord minden sorához más címkekészletet készít. Még az EXPLICIT mód lehetővé teszi az XML formátum megtervezését, mivel a felhasználó meg akarja állítani az elemek helyzetét az XML adattípus formátumban az SQL lekérdezésben.

az alábbiakban egy példa az EXPLICIT mód használatára:

SQL lekérdezés:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

válassza ki az 1-et címkeként,
null mint szülő,
user_id as,
NULL AS,
NULL AS,
NULL AS
FROM user_details
UNION ALL
válassza ki a 3-at címkeként,
1 Mint szülő,
user_id as ,
fname AS ,
lname AS ,
email_ AS
from user_details
UNION ALL
válassza ki a 2-t címkeként,
1 Mint szülő,
user_id as ,
fname as ,
lname as ,
email_ as
a user_details
sorrendben 3, 1
XML explicit;

EXPLICIT mód eredménye:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

<felhasználó>
<fname fname= “Jo” />
<lname lname= “Barna” />
</felhasználó>
<felhasználó>
<fname fname= “Katie” />
< lname lname= “McAskill-fehér” />
</felhasználó>
<felhasználó>
<fname fname= “Mihail” />
<lname lname= “Frintu” />
</felhasználó>
<felhasználó>
<fname fname= “Jimmy” />
<lname lname= “Bischoff” />
</felhasználó>
<felhasználó>
<fname fname= “Alan” />
<lname lname= “sörfőző” />
</felhasználó>

EXPLICIT mód

EXPLICIT mód

RAW mód

a fejlesztők által leggyakrabban használt mód az XML-en belüli XML készítéséhez a RAW mód. Alapvetően a RAW mód egy “row” nevű elemet ad ki a SELECT artikuláció minden sorának eredménykészletéből, és a sor cellaértéke az elem attribútumaként lesz korlátozva. RAW módban minden oszlopot egy elemként kezelnek az XML-ben, és ezeknek a soroknak az oszlopai ugyanahhoz az elemhez lesznek rendelve. A RAW mód arra szolgál, hogy az eredményhalmaz minden sorát XML-összetevővé változtassa.

sor mód, különböző lekérdezési modellek különböző kimenetekkel az alábbi példákban ismertetjük:

példa 1

1
2
3
4
5
6
7
8
9

válassza user_id, fname, lname, email_
tól user_details
XML nyers
< sor user_id=”1″ fname=”Jo” lname=”Brown” email_=”[email protected]” />
<sor user_id= ” 2 “fname=” Katie “lname=” McAskill-White ” email_=”[email protected]” />
<sor user_id= ” 3 “fname=” Mihail “lname=” Frintu ” email_=”[email protected]” />
<sor user_id= ” 4 “fname=” Jimmy “lname=” Bischoff ” email_=”[email protected]” />
<sor user_id= “5”fname=” Alan”lname=” sörfőző”email_=” alan0@adventure-művek.com” />

a RAW mód használatával az egyes elemek fejlécét sorelemként definiálják az XML eredményben, és az egyes sorok oszlopai az XML adattípus eredményében a sor elemen belül vannak hozzárendelve.

példa 2

1
2
3
4
5
6
7
8
9
10
11

válasszon user_id, fname, lname, email_
FROM user_details
XML RAW (‘felhasználó’), ROOT
< root>
<felhasználó user_id=”1″ fname=”Jo” lname=”Barna” email_=”jo0@adventure-művek.com” />
<user_id = ” 2 ” fname=”Katie” lname= “McAskill-White” email_=”[email protected]” />
<user_id = ” 3 “fname=” Mihail “lname=” Frintu ” email_=”[email protected]” />
<user_id= ” 4 “fname=” Jimmy “lname= “Bischoff”email_= “[email protected]” />
< felhasználó user_id= “5”fname=” Alan”lname=” sörfőző”email_=” alan0@adventure-művek.com” />
</gyökér>

ha a felhasználó az összes elemet egyetlen címkébe kívánja belefoglalni, akkor a RAW módú gyökér opció használható, és az egyes elemek fejlécnevét a felhasználó úgy határozhatja meg, hogy hozzáad egy nevet a RAW() az XML adattípus eredményéhez.

példa 3

1
2
3
4
5
6
7
8
9
10
11

válassza ki a user_id, fname, lname, email_
a user_details
XML RAW (‘felhasználó’), ROOT (‘UserDetails’)
<felhasználói adatok>
<felhasználó user_id=”1″ fname=”Jo” lname=”Barna” email_=”jo0@adventure-művek.com” />
<user_id = ” 2 ” fname=”Katie” lname= “McAskill-White” email_=”[email protected]” />
<user_id = ” 3 “fname=” Mihail “lname=” Frintu ” email_=”[email protected]” />
<user_id= ” 4 “fname=” Jimmy “lname= “Bischoff”email_= “[email protected]” />
< felhasználó user_id= “5”fname=” Alan”lname=” sörfőző”email_=” alan0@adventure-művek.com” />
</felhasználói adatok>

az XML RAW gyökérben a fejléc megtervezhető egy felhasználó által definiált névvel a gyökérrel (). Amint az a példában látható, a <gyökér> elem helyébe a <UserDetails>

példa lép 4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

válassza ki a user_id, fname, lname, email_
a user_details
XML nyers elemekhez
< sor>
< felhasználói azonosító> 1< / felhasználói azonosító>
<fname>Jo< / fname>
<lname> Barna< / lname>
<e-mail_>[email protected]< / e-mail_>
</sor>
<sor>
<felhasználói azonosító>2< / felhasználói azonosító>
<fname> Katie< / fname>
<lname> McAskill-White< / lname>
<email_> katie0 @ adventure-művek.com< / e-mail_>
</sor>

az elem direktíva RAW módban történő használatával a felhasználó sorelem-struktúra alapú XML-t készíthet. A sor minden celláját XML elemekkel extrahálják a sor szülő elemén belül, mint <sor>. Alapvetően az ELEMENTS kulcsszót használtuk a fenti lekérdezésben, hogy az oszlopokat elemként jelenítsük meg a kimeneti XML-ben.

elérési út mód

a formátum nagyobb ellenőrzésével rendelkező XML létrehozásának legjobb módja az elérési út mód. Az elérési út használatával a felhasználó egyszerűbb kijelölést és XPath artikulációkat állíthat össze az oszlophoz, hogy hozzárendeljen egy parancsláncot. Használja az XML elérési utat az alkérdésekkel, hogy megkapja a megfelelő XML adattípusú dokumentumot az elem-attribútum lánccal:

1
2
3
4
5
6
7
8
9
10
11

válasszon user_id, fname, lname, email_
FROM user_details
ahol email_ = ‘[email protected]
XML elérési út esetén;
< sor>
<felhasználói azonosító>3< / felhasználói azonosító>
<fname>Mihail< / fname>
<lname> Frintu< / lname>
<e-mail_>[email protected]< / e-mail_>
</sor>

következtetés

a kiszolgáló lekérdezési eredményének használata egy másik XML formátum eléréséhez egyszerű. A lekérdezés eredménye XML-ben kerül kibontásra úgy, hogy a SELECT utasítás végén egy for XML jelmondatot tartalmaz. Mint tárgyaltuk, számos alternatívánk van az eredmény felépítésére vagy elrendezésére oszlopokkal attribútumokhoz vagy XML csomópontokhoz az XML adattípussal.

  • szerző
  • Legutóbbi hozzászólások
Jignesh Raiyani
Jignesh jó tapasztalattal rendelkezik az adatbázis-megoldások és az architektúra terén, több ügyféllel együttműködve az adatbázis-tervezés & architektúra, SQL fejlesztés, adminisztráció, lekérdezés-optimalizálás, teljesítmény-hangolás, HA és katasztrófa-helyreállítás területén.
Jignesh Raiyani összes hozzászólásának megtekintése

Jignesh Raiyani
Jignesh Raiyani legújabb hozzászólásai (az összes megtekintése)
  • oldal várható élettartama (PLE) az SQL Server – ben-július 17, 2020
  • hogyan lehet automatizálni az asztal Particionálását az SQL Server-ben-július 7, 2020
  • az SQL Server konfigurálása mindig rendelkezésre álló csoportok az AWS EC2 – en-július 6, 2020

Leave a Reply

Az e-mail-címet nem tesszük közzé.