PostgreSQL Tablica: funkcje, typ, przykład

⚡ Inteligentne podsumowanie

PostgreSQL Array pozwala zdefiniować kolumnę tabeli jako tablicę dowolnego prawidłowego typu danych. Obejmuje to tworzenie kolumn tablicowych, wstawianie wartości za pomocą konstruktora ARRAY lub nawiasów klamrowych, wykonywanie zapytań i modyfikowanie elementów oraz wyszukiwanie za pomocą ANY().

  • 📦 Definicja: Każdy PostgreSQL typ danych ma pasujący typ tablicy, taki jak integer[].
  • 🧱 Utwórz i wstaw: Użyj kolumn TEXT[] i konstruktora ARRAY lub nawiasów klamrowych.
  • 🔎 zapytanie: Dostęp do elementów odbywa się za pomocą indeksów dolnych; pierwszy element znajduje się na pozycji 1.
  • ✏️ Modyfikuj i szukaj: Aktualizuj pojedyncze elementy i szukaj wartości za pomocą ANY().
  • Rozszerzać: Funkcja unnest() dzieli wartości tablicy na osobne wiersze.

PostgreSQL Szyk

Czym jest PostgreSQL Szyk?

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

Każdy odpowiedni PostgreSQL Typ danych ma odpowiedni typ tablicowy. Na przykład, typ danych całkowitych ma typ tablicowy integer[], typ danych znakowych ma typ tablicowy character[] i tak dalej.

Tworzenie PostgreSQL Tablice

W poniższym przykładzie utworzymy tabelę o nazwie Pracownicy, w której kolumna kontaktów będzie zdefiniowana jako tablica tekstowa:

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

Polecenie powinno zostać pomyślnie uruchomione.

Tworzenie PostgreSQL Tablice

Wstawianie PostgreSQL Wartości tablicy

Pozwól nam teraz wstawić wartości do powyższej tabeli:

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

Wstawianie powinno przebiegać pomyślnie.

Wstawianie PostgreSQL Wartości tablicy

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 Employees
VALUES
   (
    2,
      'Kate Joel',
      '{"(408)-783-5731"}'
   ),
   (
      3,
      'James Bush',
      '{"(408)-745-8965","(408)-567-78234"}'
   );

Polecenie powinno zostać pomyślnie uruchomione.

Wstawianie PostgreSQL Wartości tablicy

Powyższe polecenia wstawią dwa wiersze do tabeli Employees. Podczas używania nawiasów klamrowych tablica jest ujęta w pojedyncze cudzysłowy ('), a elementy tablicy tekstowej są ujęte w podwójne cudzysłowy (“).

Zapytanie o dane tablicy

Aby wyszukać elementy tablicy, używamy polecenia SELECT. Aby wyświetlić zawartość tabeli „Pracownicy”, uruchamiamy następujące polecenie:

SELECT * FROM Employees;

To zwraca następujące informacje:

Zapytanie o dane tablicy

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 w tablicy znajduje się na pozycji 1.

Na przykład, jeśli mamy więcej niż jednego pracownika, potrzebujemy uzyskać imiona i nazwiska oraz tylko jego pierwszy kontakt. Możemy to uzyskać, wpisując kontakt[1]. Zobaczmy:

SELECT name, contact[1]
FROM Employees;

Spowoduje to zwrócenie następujących informacji:

Zapytanie o dane tablicy

Możemy użyć polecenia SELECT wraz z klauzulą ​​WHERE, aby filtrować wiersze na podstawie kolumny tablicy. Na przykład, aby zobaczyć pracownika z numerem kontaktowym (408)-567-78234 jako drugim kontaktem, możemy uruchomić następujące polecenie:

SELECT
   name
FROM
   Employees
WHERE
   contact [ 2 ] = '(408)-567-78234';

Spowoduje to zwrócenie następujących informacji:

Zapytanie o dane tablicy

Modyfikacja PostgreSQL Szyk

Możesz zaktualizować cały element tablicy lub tylko jego pojedynczy element. Oto zawartość tabeli „Pracownicy”:

Modyfikacja PostgreSQL Szyk

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

Modyfikacja PostgreSQL Szyk

Uruchom następujące polecenie:

UPDATE Employees
SET contact [ 2 ] = '(408)-589-89347'
WHERE
   id = 3;

Polecenie powinno działać pomyślnie:

Modyfikacja PostgreSQL Szyk

Zapytajmy tabelę, czy zmiana się powiodła:

Modyfikacja PostgreSQL Szyk

Zmiana się powiodła.

Wyszukiwanie w PostgreSQL Szyk

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

Wyszukiwanie w PostgreSQL Szyk

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

SELECT
   name,
   contact
FROM
   Employees
WHERE
   '(408)-783-5731' = ANY (contact);

Spowoduje to zwrócenie następujących informacji:

Wyszukiwanie w PostgreSQL Szyk

Rozszerzanie tablic

Możemy podzielić wartości tablicy na wiersze. Ten proces nazywa się rozszerzaniem tablicy. W przykładzie tabeli „Pracownicy” w tablicy kontaktów znajdują się pracownicy z dwoma kontaktami. Możemy podzielić je na osobne wiersze. PostgreSQL udostępnia funkcję unnest(), której można użyć w tym celu. Na przykład:

SELECT
   name,
   unnest(contact)
FROM
   Employees;

Spowoduje to zwrócenie następujących informacji:

Rozszerzanie tablic

Pracownicy Alice John i James Bush mają dwa kontakty. Możemy je rozdzielić na osobne wiersze.

Korzystanie z pgAdmina

Tworzenie PostgreSQL Tablice

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

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij przycisk Demo.

Tworzenie PostgreSQL Tablice przy użyciu pgAdmin

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.

Tworzenie PostgreSQL Tablice przy użyciu pgAdmin

Wstawianie PostgreSQL Wartości tablicy

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

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

Krok 2) Kliknij przycisk Wykonaj:

Wstawianie PostgreSQL Wartości tablicy

Krok 3) Aby użyć nawiasów klamrowych w zapytaniu, wpisz następujące zapytanie w edytorze zapytań:

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

Następnie kliknij przycisk Wykonaj:

Wstawianie PostgreSQL Wartości tablicy

Zapytanie o dane tablicy

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

SELECT * FROM Employees;

Krok 2) Kliknij przycisk Wykonaj:

Zapytanie o dane tablicy za pomocą pgAdmin

Powinno zostać zwrócone:

Zapytanie o dane tablicy za pomocą pgAdmin

Krok 3) Aby zobaczyć pierwsze kontakty pracowników, wpisz poniższe zapytanie w edytorze zapytań i kliknij przycisk Wykonaj:

SELECT name, contact[1]
FROM Employees;

Zapytanie o dane tablicy za pomocą pgAdmin

Powinno zostać zwrócone:

Zapytanie o dane tablicy za pomocą pgAdmin

Krok 4) Aby połączyć instrukcję SELECT z klauzulą ​​WHERE, wpisz następujące polecenie w edytorze zapytań i kliknij przycisk Wykonaj:

SELECT
   name
FROM
   Employees
WHERE
   contact [ 2 ] = '(408)-567-78234';

Zapytanie o dane tablicy za pomocą pgAdmin

Powinno zostać zwrócone:

Zapytanie o dane tablicy za pomocą pgAdmin

Modyfikacja PostgreSQL Szyk

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

UPDATE Employees
SET contact [ 2 ] = '(408)-589-89347'
WHERE
   id = 3;

Krok 2) Kliknij przycisk Wykonaj.

Modyfikacja PostgreSQL Tablica przy użyciu pgAdmin

Krok 3) Wpisz poniższe polecenie w edytorze zapytań, aby sprawdzić, czy zmiana została wprowadzona pomyślnie, a następnie kliknij przycisk Wykonaj:

SELECT * FROM Employees;

Modyfikacja PostgreSQL Tablica przy użyciu pgAdmin

Powinno zostać zwrócone:

Modyfikacja PostgreSQL Tablica przy użyciu pgAdmin

Wyszukiwanie w PostgreSQL Szyk

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

SELECT
   name,
   contact
FROM
   Employees
WHERE
   '(408)-783-5731' = ANY (contact);

Krok 2) Kliknij przycisk Wykonaj.

Wyszukiwanie w PostgreSQL Tablica przy użyciu pgAdmin

Powinno zostać zwrócone:

Wyszukiwanie w PostgreSQL Tablica przy użyciu pgAdmin

Rozszerzanie tablic

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

SELECT
   name,
   unnest(contact)
FROM
   Employees;

Krok 2) Kliknij przycisk Wykonaj.

Rozwijanie tablic za pomocą pgAdmin

Powinno zostać zwrócone:

Rozwijanie tablic za pomocą pgAdmin

Pobierz bazę danych używaną w tym samouczku

FAQ

Tak. Asystenci AI potrafią pisać polecenia CREATE TABLE z kolumnami tablicowymi, polecenia INSERT z użyciem tablicy ARRAY lub nawiasów klamrowych oraz funkcje takie jak unnest() lub ANY(). Przed uruchomieniem przetestuj wygenerowany kod SQL na schemacie.

Tak. Narzędzia AI mogą doradzić, czy kolumna tablicy lub znormalizowana tabela podrzędna pasują do Twoich danych. Tablice pasują do małych, stałych list, a oddzielne tabele do dużych lub często wyszukiwanych relacji. Waliduj zgodnie ze swoimi wzorcami zapytań.

Użyj funkcji array_length(tablica, wymiar). Na przykład array_length(kontakt, 1) zwraca liczbę elementów w pierwszym wymiarze tablicy kontaktów.

Tak. Użyj funkcji array_append(array, value) lub operatora łączenia ||. Na przykład polecenie UPDATE Employees SET contact = array_append(contact, '(408)-000-0000') dodaje nowy element.

Podsumuj ten post następująco: