Лабораторные работы по курсу «Базы данных»



Pdf көрінісі
бет32/46
Дата12.05.2023
өлшемі0,79 Mb.
#92097
түріПрактикум
1   ...   28   29   30   31   32   33   34   35   ...   46
books text[]); 
В PostgreSQL предусмотрен специальный синтаксис вставки 
нескольких значений в одно поле. Этот синтаксис основан на определении 
массивов-констант. 
Обобщенная форма массива-константы выглядит так:
'{ "текст" [, ...] }'
-- массив строк
'{ число [, ...]}'
-- числовой массив 
В этих примерах использованы строковые и числовые массивы, но поле 
может определяться как массив произвольного типа (включая типы boolean, 
date и time). Как правило, если для описания величины в скалярном контексте 
должны использоваться апострофы (например, в строковых константах или 
данных типа timestamp), в контексте массива эта величина заключается в 
кавычки. Даже при вставке одного элемента массив заключается
в фигурные скобки. 
Пример 6.5: 
Вставка с использованием массивов-констант: 
INSERT INTO favorite_books VALUES
(102, '{"The Hitchhiker\'s Guide to the Galaxy11”}'); 
INSERT INTO favorite_books VALUES 
(103, '{"The Hobbit", "Kitten. Squared"}'); 
При выборке из поля-массива весь массив возвращается в формате 
константы. 
Популярность массивов в значительной степени обусловлена тем 
фактом, что к отдельным элементам можно обращаться при помощи 
индексов — целых чисел, заключенных в скобки и описывающих позицию 
искомого элемента в массиве. В отличие от таких языков программирования, 
как С, в PostgreSQL индексация в массивах начинается с 1, а не с 0. 
При указании индекса несуществующего элемента массива выборка 
возвращает NULL. Обычно для обработки таких ситуаций используется 
конструкция IS NOT NULL. 


Пример 6.6: 
Выборка из поля-массива по индексу (для таблицы, полученной из 
предыдущих примеров): 
SELECT books[2] FROM favorite_books; 
Вернет 2 строки, одна из которых будет пустой. Для того, чтобы 
избежать этого, необходимо добавить условие в секцию WHERE. 


Достарыңызбен бөлісу:
1   ...   28   29   30   31   32   33   34   35   ...   46




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет