Що таке масив 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)
- На панелі навігації ліворуч клацніть rbases.
- Клацніть на демо-кнопку
Крок 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) Щоб побачити перші контакти працівників:
- Введіть такий запит у редакторі запитів:
SELECT name, contact[1]FROM Employees;
- Натисніть кнопку Виконати.
Він повинен повернути наступне:
Крок 4) Щоб поєднати оператор SELECT із реченням WHERE:
- Введіть таку команду в редакторі запитів:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Натисніть кнопку Виконати.
Він повинен повернути наступне:
Змінення масиву 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 ().
Завантажте базу даних, що використовується у цьому посібнику