Основы столбцов-массивов
Создавайте и читайте значения массивов
«Основы столбцов-массивов» — бесплатный урок SQL Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SQL Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SQL Academy содержит 4 уроков всего.
Что такое столбец-массив
PostgreSQL поддерживает столбцы-массивы, в которых одна ячейка может содержать несколько значений одного типа. Вместо текста со значениями, разделенными запятыми, Вы получаете полноценный типизированный список, который можно запрашивать, индексировать и изменять с помощью встроенных функций.
Массивы могут содержать целые числа, текст, логические значения, даты и любые другие типы PostgreSQL. Синтаксис выглядит как integer[] или text[].
Объявление столбца-массива
Добавьте [] после имени любого типа при написании оператора CREATE TABLE, чтобы объявить столбец-массив. В таблице ниже для каждой статьи хранится список тегов.
CREATE TABLE articles (
id serial PRIMARY KEY,
title text NOT NULL,
tags text[]
);Вставка значений массива
Для вставки данных массива используйте литералы в фигурных скобках, заключенные в одинарные кавычки. Каждый элемент внутри скобок отделяется запятой: '{"sql","database"}'.
Также можно использовать синтаксис конструктора ARRAY[...], показанный во второй строке.
INSERT INTO articles (title, tags) VALUES
('Intro to SQL', '{"sql","beginner"}'),
('Advanced Joins', ARRAY['sql','joins','performance']),
('NULL Handling', '{"sql","nulls","tips"}');Чтение всего массива
Выбор столбца-массива работает так же, как выбор любого другого столбца. PostgreSQL возвращает весь массив как одно значение в наборе результатов и отображает его в формате с фигурными скобками.
SELECT id, title, tags
FROM articles;Доступ к отдельному элементу
Индексация массивов в PostgreSQL начинается с единицы (первый элемент имеет индекс 1, а не 0). Чтобы обратиться к определенному элементу, используйте квадратные скобки после имени столбца.
SELECT title,
tags[1] AS first_tag,
tags[2] AS second_tag
FROM articles;Срез массива
Диапазон элементов можно извлечь с помощью синтаксиса среза lower:upper внутри квадратных скобок. Обе границы включаются в диапазон.
SELECT title,
tags[1:2] AS first_two_tags
FROM articles;Фильтрация с помощью ANY
Чтобы найти строки, в которых массив содержит определенное значение, используйте выражение = ANY(column). Оно возвращает строки, где хотя бы один элемент массива совпадает с указанным значением.
SELECT id, title, tags
FROM articles
WHERE 'joins' = ANY(tags);Фильтрация с помощью оператора @>
Оператор содержит @> проверяет, содержит ли левый массив все элементы правого массива. Это полезно, когда нужны строки с набором обязательных тегов.
SELECT id, title, tags
FROM articles
WHERE tags @> ARRAY['sql','tips'];Получение длины массива
Функция array_length(arr, dimension) возвращает количество элементов вдоль указанного измерения. Для одномерного массива в качестве второго аргумента используйте 1.
SELECT title,
array_length(tags, 1) AS tag_count
FROM articles
ORDER BY tag_count DESC;Добавление элементов
Используйте функцию array_append(array, element) или оператор конкатенации ||, чтобы добавить новый элемент в конец существующего столбца-массива.
UPDATE articles
SET tags = array_append(tags, 'featured')
WHERE title = 'Intro to SQL';
SELECT title, tags FROM articles WHERE title = 'Intro to SQL';Разворачивание массива в строки
Функция unnest(array) разворачивает массив в набор строк — по одной строке на элемент. Это удобно для агрегирования, соединений и любых операций, которым нужен каждый элемент отдельно.
SELECT title, unnest(tags) AS tag
FROM articles
ORDER BY title, tag;Быстрая проверка
Проверьте понимание столбцов-массивов PostgreSQL.
Итоги: основы столбцов-массивов
В этом уроке Вы узнали, как работают столбцы-массивы PostgreSQL:
- Объявляйте массивы с помощью синтаксиса
type[]в оператореCREATE TABLE - Вставляйте значения с помощью литералов в фигурных скобках или
ARRAY[...] - Обращайтесь к элементам по индексу, начинающемуся с 1, и используйте срезы
lower:upper - Фильтруйте с помощью
= ANY(col)для одного значения или@>для подмножества - Измеряйте длину с помощью
array_length(col, 1) - Добавляйте элементы с помощью
array_append()или|| - Разворачивайте массивы в строки с помощью
unnest()
Массивы — мощная возможность PostgreSQL, которая может упростить схемы, когда список значений относится к одной сущности.
Часто задаваемые вопросы
Урок «Основы столбцов-массивов» бесплатный?
Да — полный текст урока «Основы столбцов-массивов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SQL Academy, подпишись на CoddyKit PRO. Курс SQL Academy содержит 4 уроков всего.
Чему я научусь в уроке «Основы столбцов-массивов»?
Создавайте и читайте значения массивов Ты практикуешь SQL Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать SQL Academy?
Предыдущий опыт не требуется. SQL Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Основы столбцов-массивов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке SQL Academy?
Да. Каждый урок SQL Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы столбцов-массивов
- Поиск внутри массивов
- UNNEST и агрегация
- Массивы и нормализованные таблицы