PostgreSQL Масив: функції, тип, приклад
Що таке PostgreSQL Масив?
In PostgreSQL, ми можемо визначити стовпець як масив дійсних типів даних. Тип даних може бути вбудованим, визначеним користувачем або перерахованим типом. Окрім цього, масиви відіграють важливу роль у PostgreSQL.
Кожен відповідний PostgreSQL тип даних поставляється з відповідним типом масиву. Наприклад, цілочисельний тип даних має тип масиву integer[], символьний тип даних має тип масиву character[] тощо.
створення PostgreSQL Масиви
У наступному прикладі ми створимо таблицю під назвою Employees зі стовпцем контактів, визначеним як текстовий масив:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Команда має бути виконана успішно.
Вставлення PostgreSQL Значення масиву
Давайте зараз вставити значення в таблицю вище:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Вставка має бути виконана успішно.
Значення третього стовпця, тобто контакту, вставлено як масив. Це було досягнуто за допомогою конструктора ARRAY.
У цьому прикладі ми взяли їх у квадратні дужки []. У нас є два контакти для співробітниці Аліси Джон.
Ми все ще можемо використовувати фігурні дужки {}, як показано нижче:
INSERT INTO Employees VALUES ( 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 як другий контакт, ми можемо виконати таку команду:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Це поверне наступне:
Модифікація PostgreSQL масив
Ви можете оновити весь або окремий елемент масиву.
Ось вміст таблиці Employees:
Оновимо другий номер телефону співробітника Джеймса Буша, чий id 3:
Запустіть таку команду:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Команда має бути виконана успішно:
Давайте зробимо запит до таблиці, щоб перевірити, чи була зміна успішною:
Зміна пройшла успішно.
Пошук в a PostgreSQL масив
На даний момент наша таблиця співробітників виглядає так:
Припустімо, що нам потрібно знати, кому належить контакт (408)-783-5731 незалежно від позиції в масиві контактів, ми можемо використати функцію ANY(), як показано нижче:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Це поверне наступне:
Розширення масивів
Ми можемо розбити значення масиву на рядки. Цей процес відомий як розширення масиву.
У прикладі таблиці Employees є кілька співробітників із двома контактами в масиві контактів. Ми можемо розділити їх на окремі рядки.
PostgreSQL забезпечує функцію unnest(), яку можна використовувати для цього.
Наприклад:
SELECT name, unnest(contact) FROM Employees;
Це поверне наступне:
Співробітники Аліса Джон і Джеймс Буш мають два контакти. Ми можемо розділитися на окремі ряди.
Використання 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 Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Крок 2) Натисніть кнопку Виконати:
Крок 3)
Для використання фігурних дужок у запиті
Крок 1) Введіть наступний запит у редакторі запитів:
INSERT INTO Employees VALUES ( 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:
- Введіть таку команду в редакторі запитів:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
- Натисніть кнопку Виконати.
Він повинен повернути наступне:
Модифікація PostgreSQL масив
Крок 1) Щоб оновити другий контакт користувача з ідентифікатором 3, виконайте таку команду:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Крок 2) Натисніть кнопку Виконати.
Крок 3)
1. Введіть таку команду в редакторі запитів, щоб перевірити, чи зміна була успішною:
SELECT * FROM Employees;
2. Натисніть кнопку Виконати.
Він повинен повернути наступне:
Пошук в a PostgreSQL масив
Крок 1) Введіть наступний запит у редакторі запитів:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Крок 2) Натисніть кнопку Виконати.
Він повинен повернути наступне:
Розширення масивів
Крок 1) Введіть наступний запит у редакторі запитів:
SELECT name, unnest(contact) FROM Employees;
Крок 2) Натисніть кнопку Виконати.
Він повинен повернути наступне:
Підсумки
- PostgreSQL дозволяє нам визначити стовпець таблиці як тип масиву.
- Масив має бути дійсним тип даних такі як цілі, символьні або визначені користувачем типи.
- Щоб вставити значення в стовпець масиву, ми використовуємо конструктор ARRAY.
- Якщо в одному рядку стовпця масиву є більше одного елемента, перший елемент знаходиться в позиції 1.
- До кожного значення можна отримати доступ, передавши нижній індекс у квадратних дужках [].
- Елементи масиву можна отримати за допомогою оператора SELECT.
- Значення стовпця масиву можна взяти в квадратні дужки [] або фігурні {}.
- Ми можемо шукати значення стовпця масиву за допомогою функції ANY().
Завантажте базу даних, яка використовується в цьому посібнику