PostgreSQL - XML

Satura rādītājs

PostgreSQL atbalsta datu tipu XMLLai gan tas mums var būt ļoti noderīgi, daudzas reizes tiek kritizēts, jo tas var novest pie daudzu relāciju datu bāzu noteikumu, piemēram, normalizēšanas, pārkāpšanas, lai gan tas nav traucējis visiem draiveriem un dzinējiem no augstākās klases datu bāzēm sniegt atbalstu šim tipam no datiem.

Datu ielāde XML formātā

Pirms redzat, kā tas darbojas no teorētiskā viedokļa, aplūkosim piemēru, kā mēs varam ielādēt lauku ar šāda veida datiem.

 INSERT INTO web_sessions (session_id, session_state) VALUES ('halāts', 'colorredbackgroundsnoopy' :: xml); 
Kā redzam, otrais lauks, uz kura mēs izgatavojam ieliktni, ir lauks XML ko mēs apzīmējam, novietojot to :: xml informācijas beigās, kuru vēlamies ievietot.

XML vaicājums

Lai veiktu jautājumus par XML mēs varam izmantot funkciju xpath () tā kā šim nolūkam tas ir diezgan noderīgi, pirmais saņemtais arguments ir XPath tipa vaicājums, bet otrais ir virkne, kas satur XML, atbilde ir XML objektu masīvs, kas atbilst XPath vaicājuma nosacījumiem. Apskatīsim piemēru, kā to izdarīt, apvienojot to ar funkciju unnest () lai parādītu rezultātus tā, it kā tās būtu tabulas rindas.

PALIELINĀT

Sadalīsim uzskaitītos punktus:

1. Mēs abonējam masīvu, jo XPath tas vienmēr atgriež masīvu, pat ja tas ir viens elements, kas nāk atbildē uz vaicājumu.

2. Mēs iegūstam elementu teksts katra rekvizīta elementa nosaukumā un vērtībā.

3. Mēs ejam cauri XML tagiem ,,,,,.

Kā redzam, ir diezgan viegli veikt vaicājumus, lai iegūtu XML datu tipa lauku vērtības.

Saliktie un pielāgotie datu veidi

Saliktā objekta veids salikts ir īpašs veids PostgreSQL jo to bieži izmanto objekta konstruēšanai un pēc tam tas ir saistīts ar pielāgotu tipu vai kā funkcijas atdeve, kurai jāatgriež vairākas kolonnas.

PostgreSQL automātiski izveido pielāgotu veidu visām tabulām, jebkādiem mērķiem mēs varam izmantot pielāgotus veidus, piemēram, tos, kas pēc noklusējuma ir definēti PostgreSQL, mēs pat varam izveidot šo veidu masīvu.

Apskatīsim nelielu kodu par to:

 CREATE TABLE user_facts (user_id varchar (30) PRIMARY KEY, fakti census.facts []);
Tad mēs izveidojam ierakstu:

 ROW (86, '25001010206', 2012, 123, NULL) :: census.facts
Visbeidzot, mēs ievietojam to savā pielāgotajā tabulā:

 INSERT INTO user_facts (user_id, fakti) VALUES ('halāts', ARRAY [ROW (86, '25001010206', 2012, 123, NULL) :: census.facts]); 
Mēs pat varam iekļaut vairāk datu mūsu tipā šādā veidā, izmantojot saikni:

 UPDATE user_facts SET fakti = fakti || masīvs (SELECT F FR no census.facts AS F WHERE fact_type_id = 86) WHERE user_id = 'halāts'; 
Tad, veicot vaicājumu, mēs redzam, kā viss ir jēgas, kā parādīts šajā attēlā:

PALIELINĀT

Ar to mēs pabeidzam šo apmācību par XML datu tipiem un pielāgotajiem datu veidiem, kā vienmēr, ir ieteicams ieteikt praktizēt šeit redzamās tēmas, lai šīs zināšanas būtu pēc iespējas svaigākas jūsu lietojumprogrammai.

wave wave wave wave wave