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)
- Z paska nawigacyjnego po lewej stronie kliknij podstawy.
- 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:
- Wpisz następujące zapytanie w edytorze zapytań:
SELECT name, contact[1]FROM Employees;
- Kliknij przycisk Wykonaj.
Powinien zwrócić następujące informacje:
Krok 4) Aby połączyć instrukcję SELECT z klauzulą WHERE:
- Wpisz następujące polecenie w edytorze zapytań:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- 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