Масив PostgreSQL: функції, тип, приклад

Зміст:

Anonim

Що таке масив PostgreSQL?

У PostgreSQL ми можемо визначити стовпець як масив допустимих типів даних. Тип даних може бути вбудованим, визначеним користувачем або переліченим типом. Крім цього, масиви відіграють важливу роль у PostgreSQL.

Кожен відповідний тип даних PostgreSQL має відповідний тип масиву. Наприклад, цілочисельний тип даних має цілочисельний тип масиву [], символьний тип даних має тип масиву [] тощо.

У цьому посібнику PostgreSQL ви дізнаєтесь:

  • Що таке масив PostgreSQL?
  • Створення масивів PostgreSQL
  • Вставка значень масиву PostgreSQL
  • Запит даних масиву
  • Змінення масиву PostgreSQL
  • Пошук у масиві PostgreSQL
  • Розгортання масивів
  • Використання pgAdmin

Створення масивів PostgreSQL

У наступному прикладі ми створимо таблицю з назвою Працівники зі стовпцем контактів, визначеним як текстовий масив:

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

Команда повинна успішно працювати.

Вставка значень масиву PostgreSQL

Давайте тепер вставимо значення у наведену вище таблицю:

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

Вставка повинна успішно виконуватися.

Значення третього стовпця, тобто контакту, були вставлені як масив. Це було досягнуто за допомогою конструктора ARRAY.

У цьому прикладі ми уклали їх у квадратні дужки []. У нас є два контакти з працівницею Еліс Джон.

Ми все ще можемо використовувати фігурні дужки {}, як показано нижче:

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

Команда повинна успішно запуститися.

Вищезазначені оператори вставлять два рядки в таблицю Employees. При використанні фігурних дужок масив загортається в одинарні лапки ('), а елементи текстового масиву - у подвійні лапки (").

Запит даних масиву

Для запиту елементів масиву ми використовуємо оператор SELECT.

Щоб переглянути вміст таблиці Employees, ми виконуємо таку команду:

SELECT * FROM Employees;

Це повертає наступне:

Елементи стовпця масиву, тобто контакт, укладені в фігурні дужки {}.

Для доступу до самих елементів масиву ми додаємо нижній індекс у квадратних дужках []. Перший елемент масиву знаходиться в позиції 1.

Наприклад, нам потрібно отримати імена працівників і лише їх перший контакт для тих працівників, які мають більше одного контакту. Ми можемо отримати доступ до цього як контакт [1].

Побачимо це:

SELECT name, contact[1]FROM Employees;

Це поверне наступне:

Ми можемо використовувати оператор SELECT разом із реченням WHERE для фільтрування рядків на основі стовпця масиву.

Наприклад, щоб побачити працівника з (408) -567-78234 другим контактом, ми можемо виконати таку команду:

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

Це поверне наступне:

Змінення масиву PostgreSQL

Ви можете оновити весь або один елемент масиву.

Ось вміст таблиці Employees:

Давайте оновимо другий номер телефону працівника Джеймса Буша, ідентифікатор якого 3:

Виконайте таку команду:

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

Команда повинна успішно виконати:

Давайте запитаємо таблицю, щоб перевірити, чи була зміна успішною:

Зміна була успішною.

Пошук у масиві PostgreSQL

Наразі таблиця наших співробітників така:

Припустимо, нам потрібно знати, кому належить контакт (408) -783-5731, незалежно від позиції в масиві контактів, ми можемо використовувати функцію ANY (), як показано нижче:

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

Це поверне наступне:

Розгортання масивів

Ми можемо розділити значення масиву на рядки. Цей процес відомий як розширення масиву.

У прикладі таблиці Employees є кілька співробітників з двома контактами в масиві контактів. Ми можемо розділити їх на окремі рядки.

PostgreSQL надає функцію unnest (), яка може бути використана для цього.

Наприклад:

SELECTname,unnest(contact)FROMEmployees;

Це поверне наступне:

Співробітники Еліс Джон і Джеймс Буш мають два контакти. Ми можемо розділити на окремі ряди.

Використання pgAdmin

Створення масивів PostgreSQL

Щоб зробити те саме через pgAdmin, зробіть це:

Крок 1) Увійдіть до свого облікового запису pgAdmin.

Крок 2)

  1. На панелі навігації ліворуч клацніть rbases.
  2. Клацніть на демо-кнопку

Крок 3) Введіть запит у редакторі запитів, щоб створити таблицю Employees:

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

Крок 4) Натисніть кнопку Виконати.

Вставка значень масиву PostgreSQL

Крок 1) Введіть такий запит у редакторі запитів:

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

Крок 2) Натисніть кнопку Виконати:

Крок 3)

Використання фігурних дужок у запиті

Крок 1) Введіть такий запит у редакторі запитів:

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

Крок 2) Натисніть кнопку Виконати:

Запит даних масиву

Крок 1) Щоб переглянути вміст таблиці Employees, введіть такий запит у редакторі запитів:

SELECT * FROM Employees;

Крок 2) Натисніть кнопку Виконати:

Він повинен повернути наступне:

Крок 3) Щоб побачити перші контакти працівників:

  1. Введіть такий запит у редакторі запитів:
    SELECT name, contact[1]FROM Employees;
  2. Натисніть кнопку Виконати.

Він повинен повернути наступне:

Крок 4) Щоб поєднати оператор SELECT із реченням WHERE:

  1. Введіть таку команду в редакторі запитів:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Натисніть кнопку Виконати.

Він повинен повернути наступне:

Змінення масиву PostgreSQL

Крок 1) Щоб оновити другий контакт користувача з ідентифікатором 3, виконайте таку команду:

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

Крок 2) Натисніть кнопку Виконати.

Крок 3)

1. Введіть таку команду в редакторі запитів, щоб перевірити, чи вдалася зміна:

SELECT * FROM Employees;

2. натисніть кнопку Виконати.

Він повинен повернути наступне:

Пошук у масиві PostgreSQL

Крок 1) Введіть такий запит у редакторі запитів:

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

Крок 2) Натисніть кнопку Виконати.

Він повинен повернути наступне:

Розгортання масивів

Крок 1) Введіть такий запит у редакторі запитів:

SELECTname,unnest(contact)FROMEmployees;

Крок 2) Натисніть кнопку Виконати.

Він повинен повернути наступне:

Короткий зміст:

  • PostgreSQL дозволяє визначити стовпець таблиці як тип масиву.
  • Масив повинен мати дійсний тип даних, такий як ціле число, символ або визначені користувачем типи.
  • Щоб вставити значення в стовпець масиву, ми використовуємо конструктор ARRAY.
  • Якщо в одному рядку стовпця масиву є більше одного елемента, перший елемент знаходиться в позиції 1.
  • До кожного значення можна отримати доступ, передавши нижній індекс у квадратні дужки [].
  • Елементи масиву можна отримати за допомогою оператора SELECT.
  • Значення стовпця масиву можуть бути вкладені в квадратні дужки [] або фігурні дужки {}.
  • Ми можемо шукати значення стовпців масиву за допомогою функції ANY ().

Завантажте базу даних, що використовується у цьому посібнику