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-ContibUruchom następujące polecenie, aby zalogować się do PostgreSQL za zgodą root:
$ sudo -u postgres psqlKorzystanie 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 xmldoc1Po 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 (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)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,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 XMLNastę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,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,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,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.