ARRAY
- это простой список значений одного типа, который можно хранить внутри строки.
Массив имеет вид -> { элемент_1, элемент_2, элемент_3, элемент_N, .... }
Каждый элемент массива имеет индекс. Индекс - это номер элемента внутри массива, и начинается счет индекса от 1. Это ключевое отличие от многих языков программирования, где индексация обычно начинается с 0.
Обычно в массив записывают какие-то характеристики, что позволяет нам экономить строки и более эффективно выполнять запросы.
Давайте создадим таблицу с массивами.
CREATE TABLE users (
id BIGINT PRIMARY KEY,
name TEXT,
favorite_colors TEXT[],
has_cars TEXT[]
);
INSERT INTO users (name, favorite_colors, has_cars)
VALUES
(7, 'Alexander', ARRAY['blue', 'green'], ARRAY['Porsche Cayman', 'Mercedes Benz E-classe'] ),
(4, 'Vladislav', ARRAY['red', 'yellow'], ARRAY['Hyundai Solaris']);
Мы получим вот такую таблицу:
id | name | preferences | has_cars |
1 | Alexander | {'blue', 'green'} | {Porsche Cayman', 'Mercedes Benz E-classe'} |
2 | Vlad | {'red', 'yellow'} | {'Hyundai Solaris'} |
Если бы мы использовали простую таблицу, то у нас было 4 строки, а с использованием массивов у нас теперь 2 строки :)
Также массивы обладают свойством многономерности, мы можем хранить массивы внутри массивов.
name | favorite_colors | property |
Alexander | {'blue', 'green'} | { {'Porsche Cayman', 'Mercedes Benz E-classe'} , {'Santa Villa Como Lake', 'Moscow One Room Flat'} } |
Vlad | {'red', 'yellow'} |
{ {'Hyundai Solaris'} , {'Moscow 4 Rooms Flat ', 'Moscow 2 Rooms Flat ', 'Tula House'} } |
Теперь в колонке property
мы храним многомерный массив с автомобилями и недвижимостью.