Щоб повністю розробити цю концепцію, відкрийте встановлену оболонку командного рядка PostgreSQL у вашій системі. Введіть ім’я сервера, ім’я бази даних, номер порту, ім’я користувача та пароль для конкретного користувача, якщо ви не хочете починати працювати з параметрами за замовчуванням. Якщо ви хочете працювати з параметрами за замовчуванням, залиште кожен параметр порожнім і натисніть клавішу Enter. Тепер ваша оболонка командного рядка готова до роботи.
Приклад 01: Визначення даних типу масиву
Це гарна ідея вивчити основи, перш ніж переходити до модифікації значень масиву в базі даних. Ось спосіб вказати список типів тексту. Ви можете бачити, що результат показує список типів тексту, використовуючи речення SELECT.
>> ВИБЕРІТЬ 'Aqsa, Raza, Saeed' :: text [];
Під час написання запиту необхідно визначити тип даних. PostgreSQL не розпізнає тип даних, якщо здається, що це рядок. Крім того, ми можемо використовувати формат ARRAY [], щоб вказати його як тип рядка, як показано нижче, доданий до запиту. З вихідних даних, наведених нижче, ви можете бачити, що дані були отримані як тип масиву за допомогою запиту SELECT.
>> ВИБЕРІТЬ МАСИВ ['Aqsa', 'Raza', 'Saeed'];
Коли ви вибираєте ті самі дані масиву із запитом SELECT під час використання речення FROM, це працює не так, як слід. Наприклад, спробуйте подати нижче запит пропозиції FROM в оболонці. Ви перевірите, чи не з’явиться помилка. Це тому, що речення SELECT FROM передбачає, що дані, які він отримує, - це, мабуть, група рядків або деякі точки з таблиці.
>> ВИБЕРІТЬ * З МАСИВКИ ['Aqsa', 'Raza', 'Saeed'];
Приклад 02: Перетворення масиву в рядки
ARRAY [] - це функція, яка повертає атомне значення. Як результат, він підходить лише для пропозиції SELECT, а не для речення FROM, оскільки наші дані не були у формі "рядок". Ось чому ми отримали помилку у наведеному вище прикладі. Ось як використовувати функцію UNNEST для перетворення масивів у рядки, коли ваш запит не працює з реченням.
>> ВИБЕРІТЬ НЕГОСТ (ARRAY ['Aqsa', 'Raza', 'Saeed']);
Приклад 03: Перетворення рядків у масив
Щоб знову перетворити рядки в масив, для цього потрібно визначити конкретний запит у запиті. Тут потрібно використовувати два запити SELECT. Внутрішній запит вибору - це перетворення масиву в рядки за допомогою функції UNNEST. Поки зовнішній запит SELECT знову перетворює всі ці рядки в єдиний масив, як показано на зображенні, наведеному нижче. Стережись; вам потрібно використовувати менші орфографії "масиву" у зовнішньому запиті SELECT.
>> SELECT масив (SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']));
Приклад 04: Видалення дублікатів за допомогою пункту DISTINCT
DISTINCT може допомогти вам витягти дублікати з будь-якої форми даних. Однак це обов'язково вимагає використання рядків як даних. Це означає, що цей метод працює для цілих чисел, тексту, плаваючих та інших типів даних, але масиви заборонені. Щоб видалити дублікати, спочатку потрібно перетворити дані типу масиву в рядки методом UNNEST. Після цього ці перетворені рядки даних будуть передані в речення DISTINCT. Ви можете поглянути на вихідні дані, що масив перетворено в рядки, тоді лише різні значення з цих рядків були отримані за допомогою речення DISTINCT.
>> ВИБЕРІТЬ ВИЗНАЧЕННЕ НІСТ ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: text []);
Якщо вам потрібен масив як вихід, використовуйте функцію array () у першому запиті SELECT і використовуйте речення DISTINCT у наступному запиті SELECT. З відображеного зображення видно, що результат був показаний у формі масиву, а не в рядку. Тоді як вихідні дані містять лише різні значення.
>> SELECT масив (SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: text []));
Приклад 05: Видалення дублікатів під час використання пункту ORDER BY
Ви також можете видалити повторювані значення з масиву типу float, як показано нижче. Разом з окремим запитом ми будемо використовувати речення ORDER BY, щоб отримати результат у порядку сортування певного значення. Спробуйте вказаний нижче запит у оболонці командного рядка, щоб зробити це.
>> ВИБЕРІТЬ ВИЗНАЧЕННЯ НІСТЬ ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []) ЗАМОВИТИ НА 1;По-перше, масив перетворено в рядки за допомогою функції UNNEST; тоді ці рядки будуть відсортовані за зростанням за допомогою речення ORDER BY, як показано нижче.
Щоб знову перетворити рядки в масив, використовуйте той самий запит SELECT у оболонці, використовуючи його з невеликою алфавітною функцією масиву (). Ви можете поглянути на вихідні дані, що масив спочатку перетворено в рядки, а потім вибрано лише окремі значення. Нарешті, рядки знову будуть перетворені в масив.
>> SELECT масив (SELECT DISTINCT UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []));
Висновок:
Нарешті, ви успішно реалізували кожен приклад з цього посібника. Ми сподіваємось, що у вас не виникло жодних проблем під час виконання методів UNNEST (), DISTINCT та array () у прикладах.