Tablica PostgreSQL: funkcje, typ, przykład

Spisie treści:

Anonim

Co to jest tablica PostgreSQL?

W PostgreSQL możemy zdefiniować kolumnę jako tablicę poprawnych typów danych. Typ danych może być wbudowany, zdefiniowany przez użytkownika lub typ wyliczeniowy. Poza tym tablice odgrywają ważną rolę w PostgreSQL.

Każdy odpowiedni typ danych PostgreSQL jest dostarczany z odpowiednim typem tablicy. Na przykład typ danych integer ma typ tablicowy integer [], typ danych znakowy ma typ tablicowy znak [] itd.

Z tego samouczka PostgreSQL dowiesz się:

  • Co to jest tablica PostgreSQL?
  • Tworzenie tablic PostgreSQL
  • Wstawianie wartości tablic PostgreSQL
  • Zapytanie o dane tablicy
  • Modyfikowanie tablicy PostgreSQL
  • Wyszukiwanie w tablicy PostgreSQL
  • Rozszerzanie tablic
  • Korzystanie z pgAdmin

Tworzenie tablic PostgreSQL

W poniższym przykładzie utworzymy tabelę o nazwie Pracownicy z kolumną kontaktów zdefiniowaną jako tablica tekstowa:

CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);

Polecenie powinno działać pomyślnie.

Wstawianie wartości tablic PostgreSQL

Wstawmy teraz wartości do powyższej tabeli:

INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);

Wstawianie powinno przebiegać pomyślnie.

Wartości trzeciej kolumny, czyli kontakt, zostały wstawione jako tablica. Osiągnięto to za pomocą konstruktora ARRAY.

W tym przykładzie umieściliśmy je w nawiasach kwadratowych []. Mamy dwa kontakty dla pracownika Alice John.

Nadal możemy używać nawiasów klamrowych {}, jak pokazano poniżej:

INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');

Polecenie powinno działać pomyślnie.

Powyższe instrukcje wstawią dwa wiersze do tabeli Pracownicy. W przypadku używania nawiasów klamrowych tablica jest umieszczana w pojedynczych cudzysłowach ('), podczas gdy elementy tablicy tekstowej są umieszczane w podwójnych cudzysłowach (").

Zapytanie o dane tablicy

Aby zapytać o elementy tablicy, używamy instrukcji SELECT.

Aby zobaczyć zawartość naszej tabeli Pracownicy, uruchamiamy następujące polecenie:

SELECT * FROM Employees;

Zwraca to:

Elementy kolumny tablicy, czyli kontakt, zostały ujęte w nawiasy klamrowe {}.

Aby uzyskać dostęp do samych elementów tablicy, dodajemy indeks dolny w nawiasach kwadratowych []. Pierwszy element tablicy znajduje się na pozycji 1.

Na przykład musimy uzyskać nazwiska pracowników i tylko ich pierwszy kontakt w przypadku tych pracowników, którzy mają więcej niż jeden kontakt. Możemy uzyskać do niego dostęp jako kontakt [1].

Zobaczmy to:

SELECT name, contact[1]FROM Employees;

Zwróci to:

Możemy użyć instrukcji SELECT razem z klauzulą ​​WHERE do filtrowania wierszy na podstawie kolumny tablicy.

Na przykład, aby zobaczyć pracownika z (408) -567-78234 jako drugim kontaktem, możemy uruchomić następujące polecenie:

SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';

Zwróci to:

Modyfikowanie tablicy PostgreSQL

Możesz zaktualizować wszystkie lub pojedyncze elementy tablicy.

Oto zawartość tabeli Pracownicy:

Zaktualizujmy drugi numer telefonu pracownika Jamesa Busha, którego id to 3:

Uruchom następujące polecenie:

UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;

Polecenie powinno działać pomyślnie:

Zapytajmy tabelę, aby sprawdzić, czy zmiana się powiodła:

Zmiana się powiodła.

Wyszukiwanie w tablicy PostgreSQL

Obecnie nasza tabela Pracowników przedstawia się następująco:

Załóżmy, że musimy wiedzieć, kto jest właścicielem kontaktu (408) -783-5731, niezależnie od pozycji w tablicy kontaktów, możemy użyć funkcji ANY (), jak pokazano poniżej:

SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);

Zwróci to:

Rozszerzanie tablic

Możemy podzielić wartości tablicy na wiersze. Ten proces jest nazywany rozszerzaniem macierzy.

W przykładzie tabeli Pracownicy w tablicy kontaktów znajdują się pracownicy z dwoma kontaktami. Możemy podzielić je na oddzielne rzędy.

PostgreSQL udostępnia funkcję unnest (), której można w tym celu użyć.

Na przykład:

SELECTname,unnest(contact)FROMEmployees;

Zwróci to:

Pracownicy Alice John i James Bush mają dwa kontakty. Możemy podzielić na oddzielne rzędy.

Korzystanie z pgAdmin

Tworzenie tablic PostgreSQL

Aby osiągnąć to samo za pomocą pgAdmin, wykonaj następujące czynności:

Krok 1) Zaloguj się do swojego konta pgAdmin.

Krok 2)

  1. Z paska nawigacyjnego po lewej stronie kliknij podstawy.
  2. Kliknij przycisk Demo

Krok 3) Wpisz zapytanie w edytorze zapytań, aby utworzyć tabelę Pracownicy:

CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);

Krok 4) Kliknij przycisk Wykonaj.

Wstawianie wartości tablic PostgreSQL

Krok 1) Wpisz następujące zapytanie w edytorze zapytań:

INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);

Krok 2) Kliknij przycisk Wykonaj:

Krok 3)

Aby użyć nawiasów klamrowych w zapytaniu

Krok 1) Wpisz następujące zapytanie w edytorze zapytań:

INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');

Krok 2) Kliknij przycisk Wykonaj:

Zapytanie o dane tablicy

Krok 1) Aby wyświetlić zawartość tabeli Pracownicy, wpisz następujące zapytanie w edytorze zapytań:

SELECT * FROM Employees;

Krok 2) Kliknij przycisk Wykonaj:

Powinien zwrócić następujące informacje:

Krok 3) Aby zobaczyć pierwsze kontakty pracowników:

  1. Wpisz następujące zapytanie w edytorze zapytań:
    SELECT name, contact[1]FROM Employees;
  2. Kliknij przycisk Wykonaj.

Powinien zwrócić następujące informacje:

Krok 4) Aby połączyć instrukcję SELECT z klauzulą ​​WHERE:

  1. Wpisz następujące polecenie w edytorze zapytań:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Kliknij przycisk Wykonaj.

Powinien zwrócić następujące informacje:

Modyfikowanie tablicy PostgreSQL

Krok 1) Aby zaktualizować drugi kontakt użytkownika o identyfikatorze 3, uruchom następujące polecenie:

UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;

Krok 2) Kliknij przycisk Wykonaj.

Krok 3)

1. wpisz następujące polecenie w edytorze zapytań, aby sprawdzić, czy zmiana się powiodła:

SELECT * FROM Employees;

2. Kliknij przycisk Wykonaj.

Powinien zwrócić następujące informacje:

Wyszukiwanie w tablicy PostgreSQL

Krok 1) Wpisz następujące zapytanie w edytorze zapytań:

SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);

Krok 2) Kliknij przycisk Wykonaj.

Powinien zwrócić następujące informacje:

Rozszerzanie tablic

Krok 1) Wpisz następujące zapytanie w edytorze zapytań:

SELECTname,unnest(contact)FROMEmployees;

Krok 2) Kliknij przycisk Wykonaj.

Powinien zwrócić następujące informacje:

Podsumowanie:

  • PostgreSQL pozwala nam zdefiniować kolumnę tabeli jako typ tablicy.
  • Tablica musi mieć prawidłowy typ danych, taki jak liczba całkowita, znak lub typy zdefiniowane przez użytkownika.
  • Aby wstawić wartości do kolumny tablicy, używamy konstruktora ARRAY.
  • Jeśli w tym samym wierszu kolumny tablicy znajduje się więcej niż jeden element, pierwszy element znajduje się na pozycji 1.
  • Dostęp do każdej wartości można uzyskać, przekazując indeks dolny w nawiasach kwadratowych [].
  • Elementy tablicy można pobrać za pomocą instrukcji SELECT.
  • Wartości kolumny tablicy można ująć w nawiasy kwadratowe [] lub nawiasy klamrowe {}.
  • Możemy wyszukiwać wartości kolumn tablicowych za pomocą funkcji ANY ().

Pobierz bazę danych używaną w tym samouczku