Wyliczony typ danych PostgreSQL

Wyliczony typ danych PostgreSQL

Typ danych wyliczonych lub wyliczania służy do wyboru jednej wartości z listy wielu wartości. Konkretna wartość zostanie wybrana z listy rozwijanej dla typu danych enum. Wartości enum są statyczne, unikalne i wrażliwe. Tak więc użytkownicy muszą wybrać dowolną wartość z wartości wyliczenia. Wartości wejściowej, która nie pasuje do żadnej wartości enum, nie można wstawić do pola enum. Ten typ danych wymaga 4 bajtów do przechowywania w tabeli. Typ danych enum jest przydatny do przechowywania tych rodzajów danych, które nie są wymagane do zmiany w przyszłości. Pomaga wstawić tylko prawidłowe dane. Zastosowania typu danych enum w PostgreSQL zostały pokazane w tym samouczku.

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

Zastosowania typu danych enum:

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:

Utwórz i przeczytaj typ enum:

Uruchom następujące polecenie Utwórz, aby utworzyć typ enum o nazwie konto_status z trzema wartościami:

# Utwórz typ typu konta_status jako enum („oczekujący”, „nieaktywny”, „aktywny”);

Uruchom następujące polecenie Wybierz, aby wydrukować wartości typu enum, które zostały wcześniej utworzone:

# Wybierz unnest (enum_range (null :: concT_status)) jako konto_status;

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

Zmień nazwę typu enum:

Uruchom następujące polecenie, aby zmienić nazwę typu enum z „konto_status” do „status”:

# Alterpee konto_status Zmień nazwy status;

Utwórz tabelę za pomocą typu danych enum:

Utwórz tabelę o nazwie 'konto„W bieżącej bazie danych z trzema polami. Pierwsza nazwa pola to nazwa użytkownika to jest klucz podstawowy. Druga nazwa pola to nazwa A typ danych jest Varchar (30). Trzecie nazwa pola to adres A typ danych jest TEKST. Czwarte nazwa pola to e-mail A typ danych jest Varchar (50). Piąta nazwa pola to A_status A typ danych jest Enum który został stworzony wcześniej.

# Utwórz konto tabeli (
Nazwa użytkownika Varchar (20) klucz podstawowy,
Nazwa varchar (30),
tekst adresu,
e -mail varchar (50),
Status A_status);

Następujące dane wyjściowe pojawią się po wykonaniu powyższego polecenia:

Włóż dane do tabeli:

Uruchom następujące zapytanie Wstaw, aby wstawić trzy rekordy do tabeli konta. Wszystkie wartości pola enum są tutaj prawidłowe:

# Wstaw w ramach (nazwa użytkownika, nazwa, adres, e -mail, A_status)
Wartości
(„Farhad1278”, „Farhad Hossain”, „123/7, Dhanmondi Dhaka.', „[email protected] ', „aktywny”),
(„Nira8956”, „Nira Akter”, '10/A, Jigatola Dhaka.',' [email protected] ', „nieaktywny”),
(„Jafar90”, „Jafar Iqbal”, „564, Mirpur Dhaka.',' [email protected] ', „oczekujący”);

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

Uruchom następujące zapytanie wstaw, aby wstawić rekord do konto Tabela, ale wartość podana dla pola enum nie istnieje w typu enum:

# Wstaw w ramach (nazwa użytkownika, nazwa, adres, e -mail, A_status)
Wartości
(„Rifad76”, „Rifad Hasan”, '89, Gabtoli Dhaka.', „[email protected] ', „zablokowany”);

Następujące dane wyjściowe pojawią się po wykonaniu powyższego zapytania. Błąd wystąpił w wyjściu do podania wartości enum, która nie istnieje w typu enum.

Uruchom następujące polecenie Wybierz, aby odczytać wszystkie rekordy z konto tabela:

# Wybierz * z konta;

Uruchom następujące polecenie Wybierz, aby przeczytać te rekordy konto Tabela zawierająca „Aktywne” lub „oczekujące” wartość w polu enum:

# Wybierz * z konta, gdzie a_status = „Active” lub A_status = „oczekuje”;

Następujące dane wyjściowe pojawią się po wykonaniu powyższego WYBIERAĆ zapytania:

Zmień wartość enum:

Jeśli jakakolwiek istniejąca wartość typu enum jest zmieniana, wówczas Enum Wartość pola tabeli, gdzie to Enum został użyty również zostanie zmieniony.

Uruchom następujące ZMIENIAĆ polecenie zmiany Enum wartość „Active” do „Online”:

# Alter Typ Status Zmień wartość „Active” na „Online”;

Uruchom następujące polecenie Wybierz, aby sprawdzić rekordy konto Tabela po zmianie wartości enum:

# Wybierz * z konta;

Po wykonaniu powyższych poleceń pojawi się następujące dane wyjściowe. W tabeli był jeden rekord zawierający wartość enum ”Aktywny'. Dane wyjściowe pokazuje, że „aktywna” wartość została zmieniona na „online” po zmianie wartości enum.

Dodaj nową wartość do istniejącego typu danych enum:

Uruchom następujące polecenie alter, aby dodać nowy element do nazwanego typu enum status:

# Alter Typ Status Wartość dodania „zablokowana”;

Uruchom następujące zapytanie, które wydrukuje listę typów enum po dodaniu nowej wartości:

# Wybierz unnest (enum_range (null :: status)) jako konto_status;

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

Nową wartość można wstawić przed lub po konkretnej wartości istniejącego Enum typ. Uruchom pierwsze polecenie alter, aby dodać nową wartość, „Zablokowane” przed wartością „nieaktywne”. Uruchom drugie ZMIENIAĆ polecenie, aby dodać nową wartość, „Zablokowane” po wartości „nieaktywne”.

# Alter Typ Status Wartość dodania „zablokowana” przed „nieaktywnym”;
# Alter Typ Status Wartość dodania „zablokowana” po „nieaktywnym”;

Usuń typ danych enum:

Musisz usunąć tabelę, w której typ enum jest używany przed usunięciem typu enum. Uruchom następujące polecenie, aby usunąć tabelę:

# Konto zrzutu tabeli;

Uruchom następujące polecenie, aby usunąć typ enum po usunięciu tabeli:

# Status upuszczenia typu;

Wniosek:

W tym samouczku pokazano, że sposoby tworzenia, aktualizacji i usuwania typów danych wyliczania w PostgreSQL oraz zastosowania typów danych wyliczających w tabeli PostgreSQL, które pomogą nowym użytkownikom PostgreSQL.