Typ danych PostgreSQL XML

Typ danych PostgreSQL XML

Pełna forma XML jest rozszerzalny język znaczników. Każdy element lub znacznik XML jest zdefiniowany przez użytkownika. Informacje można łatwo przesyłać z jednego miejsca do drugiego za pomocą danych XML. Dane XML są przechowywane w formacie hierarchicznym. Baza danych PostgreSQL obsługuje typ danych XML do przechowywania danych XML. W tym samouczku pokazano sposób użycia typu danych XML w tabeli PostgreSQL.

Wymagania wstępne:

Musisz zainstalować najnowszą wersję pakietów PostgreSQL w systemie operacyjnym Linux przed wykonaniem instrukcji SQL pokazanych w tym samouczku. Uruchom następujące polecenia, aby zainstalować i uruchom PostgreSQL:

$ sudo apt-get -y instalacja Postgresql PostgreSQL-Contib
$ sudo systemctl start postgresql.praca

Uruchom następujące polecenie, aby zalogować się do PostgreSQL za zgodą root:

$ sudo -u postgres psql

Korzystanie z typu danych PostgreSQL:

Przed utworzeniem dowolnej tabeli za pomocą logicznego typu danych musisz utworzyć bazę danych PostgreSQL. Uruchom więc następujące polecenie, aby utworzyć bazę danych o nazwie 'testdb'.

# Utwórz bazę danych testDB;

Po utworzeniu bazy danych pojawi się następujące dane wyjściowe:

A. Dane XML z jednym węzłem dziecięcym

Uruchom następujące zapytanie Utwórz, aby utworzyć tabelę o nazwie XMLDOC1 Z polem typu danych XML:

# Utwórz tabelę xmldoc1 (xmldata xml);

Uruchom następujące zapytanie Wstaw, aby dodać dane XML z jednym węzłem dziecięcym w polu XMLData typu danych XML:

# Wstaw do xmldoc1
Wartości (
'
[email protected]
[email protected]
Witryna jest w dół
Moja strona nie działa.
');

Po wykonaniu powyższych instrukcji pojawi się następujące dane wyjściowe:

Uruchom następujące zapytanie Wybierz, aby przeczytać wszystkie rekordy z XMLDOC1 tabela:

# Wybierz * z xmldoc1;

Po wykonaniu powyższej instrukcji pojawi się następujące dane wyjściowe:

B. Dane XML z różnymi węzłami dziecięcymi

Uruchom następujące zapytanie Utwórz, aby utworzyć tabelę o nazwie XMLDOC2 z dwoma polami. Pierwsza nazwa pola to ID który jest kluczowym kluczem tabeli. Wartość tego pola zostanie zwiększona automatycznie, gdy nowy rekord wstawię. Druga nazwa pola to XMLData, a typ danych to XML.

# Utwórz tabelę XMLDOC2 (
ID szeregowy klucz podstawowy,
xmldata xml);

Następujące dane wyjściowe pojawią się, jeśli tabela zostanie utworzona pomyślnie:

Uruchom następujące WSTAWIĆ Zapytanie do wstawienia danych XML różnych węzeł dziecięcy. Tutaj dane XML z czterema węzłami dziecięcymi zostaną włożone w xmldata pole.

# Wstaw do xmldoc2 (xmldata)
Wartości ('

[email protected]
[email protected]
Witryna jest w dół
Moja strona nie działa.
');

Następujące dane wyjściowe pojawią się, jeśli WSTAWIĆ Zapytanie jest wykonywane pomyślnie:

Uruchom następujące zapytanie Wybierz, aby odczytać wartość każdego węzła dokumentu XML w każdym polu osobno.:

# Wybierz unnest (xpath ('// to/text ()', xmldata :: xml)) co do,
unnest (xpath ('// from/text ()', xmldata :: xml)) jak z from,
unnest (xpath ('// tematy/text ()', xmldata :: xml)) jako temat,
unnest (xpath ('// message/text ()', xmldata :: xml)) jako wiadomość
Z XMLDOC2;

C. Konwertuj dane XML na tabelę

Uruchom następujące zapytanie Utwórz, aby utworzyć tabelę o nazwie Lista książek To przekonwertuje dane XML na tabelę:

# Utwórz listę tabeli jako wybierz XML
$$

Przewodnik dla programistów XML
Gambardella i Matthew
44.95


Północiowy deszcz
Ralls i Kim
5.95


Maeve Ascendant
Corets i Eva
5.95

$$ jako książki;

Następujące dane wyjściowe pojawią się, jeśli dane XML zostaną poprawnie przekonwertowane na tabelę:

Zawartość węzłów XML można pobrać, aby poprawnie zdefiniować ścieżkę węzła. xmlTable.* jest jednym ze sposobów odczytania wartości węzła i atrybutów z tabeli, która została przekonwertowana z danych XML. Uruchom następujące zapytanie Wybierz, aby odczytać wartość ID atrybut książka węzeł i wartości Tytuł, autor i węzły cenowe. Tutaj symbol „@” używany do odczytania wartości atrybutu.

# Wybierz xmlTable.* Z księgarni,
XmlTable („/książki/książki” przechodzące książki
Kolumny
id Char (2) ścieżka „@id” nie null,
tytułowa ścieżka tekstowa „Tytuł” ​​nie null,
Autor tekst tekst „Autor” nie null,
cena zmienna ścieżka „cena” nie null);

Po wykonaniu powyższego zapytania pojawi się następujące dane wyjściowe:

Wartości węzłów i atrybutów XML można pobrać z tabeli, określając nazwy pola w zapytaniu Wybierz na podstawie węzłów XML. Uruchom następujące zapytanie Wybierz, aby odczytać wartość ID atrybut węzła książki i wartości Tytuł, autor i węzły cenowe. Tutaj symbol „@” został użyty do odczytania wartości atrybutu, takiej jak poprzednie zapytanie Wybierz.

# Wybierz identyfikator, tytuł, autor, cena z Booklist,
XmlTable („/książki/książki” przechodzące książki
Kolumny
Id int ścieżka „@id” nie null,
Tytuł varchar (50) ścieżka „tytuł” ​​nie null,
Autor Varchar (30) ścieżka „Autor” nie null,
Cena zmienna ścieżka „cena” nie null);

Po wykonaniu powyższego zapytania pojawi się następujące dane wyjściowe:

Funkcję agregowaną można zastosować do węzła XML za pomocą zapytania Wybierz. Uruchom następujące zapytanie, aby policzyć całkowitą liczbę ID atrybut i całkowita cena wszystkich książek za pomocą Count () funkcja i sum () funkcjonować. Zgodnie z danymi XML całkowita liczba atrybutów ID wynosi 3, a suma wszystkich węzłów cenowych wynosi 56.85.

# Wybierz liczbę (id) jako total_books, suma (cena) jako total_price z BookList,
XmlTable („/książki/książki” przechodzące książki
Kolumny
id int ścieżka „@id” nie null,
tittle varchar (50) ścieżka „tytuł” ​​nie null,
Autor Varchar (30) ścieżka „Autor” nie null,
cena zmienna ścieżka „cena” nie null);

Po wykonaniu powyższego zapytania pojawi się następujące dane wyjściowe:

Wniosek:

W tym samouczku pokazano sposób korzystania z typu danych XML w tabelach PostgreSQL i odczytaniu danych XML z tabeli na różne sposoby, aby pomóc nowym użytkownikom PostgreSQL.