Перейти до вмісту

Запити та SQL-подання

Ваші таблиці — це справжні таблиці PostgreSQL, і інтерфейс звертається до них через SQL під їхніми справжніми назвами. Кожен учасник бази може написати запит, зберегти його під таблицями — лише для себе, для всієї бази або для кількох груп, — а той, хто керує базою, може перетворити його на SQL-подання: справжнє подання PostgreSQL, розміщене серед таблиць, яке також читають psql і ваші інструменти.

Збережений запит, відкритий із розділу «Запити»; над ним — два SQL-подання серед таблиць

Кожен зі своїми дозволами

Section titled “Кожен зі своїми дозволами”

+ на панелі вкладок або меню ⋯ бази → SQL-запит відкриває SQL-вкладку: редактор із підсвічуванням і автодоповненням, Ctrl+Enter для виконання, а результат — у тій самій сітці, що й ваші таблиці. Що запит може читати, залежить від того, хто його запускає:

  • з рівнем Керування для бази — усю базу, зокрема на запис;
  • з рівнями Читання або Редагування запит виконується лише для читання, з вашими власними дозволами. Таблиці, закритої для вас, для нього не існує; поле, приховане від вас, зникає із SELECT * і відхиляється, якщо ви його назвете, навіть з уточненням таблиці; запис відхиляється. Результат позначено плашкою Ваші дозволи.

Плашка «Ваші дозволи»: запит бачить лише таблиці й поля, відкриті для цієї людини

Відбір робить не екран: сам PostgreSQL застосовує ваші дозволи, стовпець за стовпцем, від імені ролі, власної для вас. Тож запит не може показати вам нічого, чого не показали б сітка, API чи сервер MCP.

Зберегти на панелі вкладки розміщує запит під таблицями бази, у розділі Запити. Його можна знову відкрити одним клацанням; ⋯ → Зберегти як… створює копію, Назва й доступ… (у вкладці або в його меню на бічній панелі) перейменовує його, змінює, хто його бачить, або видаляє його — Видалити також є в його меню, одним клацанням правою кнопкою. Вкладка, що його показувала, зберігає свій текст.

Збереження запиту: його назва, що він показує і хто його бачить

Область видимостіХто його бачитьХто може створювати й змінювати
Особистий — замоклише вибудь-хто, хто бачить базу, для себе
Уся базабудь-хто, хто бачить базурівень Керування для бази
Групиучасники вибраних групрівень Керування для бази

Поширення запиту поширює його текст, але ніколи не те, що може читати його автор. Кожен виконує його зі своїми власними дозволами: той самий запит, відкритий двома людьми, показує кожній те, що вона має право бачити, — або повідомляє, що якогось стовпця для неї не існує.

Запит, відкритий із бічної панелі, одразу виконується лише для читання: ви бачите його результат, нічого не вирішуючи. Виконати потім запускає його знову як є. Крапка поруч із назвою вказує, що ви змінили його текст після збереження; Зберегти зберігає зміни, якщо ви можете його редагувати, а інакше пропонує створити новий запит.

SQL-подання — це справжнє подання PostgreSQL у схемі бази. Воно розміщується серед таблиць, з кольором і піктограмою, як у таблиці, і маленьким оком праворуч, яке вказує, що це подання. Клацання відкриває його у вкладці: його рядки — у сітці, Оновити — щоб прочитати їх знову.

Подання «Factures à encaisser», відкрите з бічної панелі

Його створюють через меню ⋯ бази → Нове SQL-подання… або з SQL-вкладки: ⋯ → Створити SQL-подання…, і запит вкладки стає його визначенням. Діалог запитує:

  • його підпис і вигляд — колір, піктограму чи зображення, які вибирають так само, як для таблиці;
  • його технічну назву, утворену з підпису, якщо ви її не вкажете, — ту, яку пишуть після FROM;
  • його запит: один SELECT до таблиць та інших подань бази. PostgreSQL відхиляє те, що відхиляє, а редактор вказує на місце помилки.

Діалог SQL-подання: підпис і вигляд, технічна назва, запит, опис

Потім подання читається за своєю назвою — як з інтерфейсу, так і з psql чи вашого BI-інструмента:

SELECT * FROM b_t4z56fq_demo_atelier_lumen.factures_a_encaisser;

Подання ніколи не показує поле, якого ви не бачите. Кожен читає його зі своїми власними дозволами на кожну таблицю й кожен стовпець, які воно читає; бічна панель показує його лише тим, хто може прочитати все, що воно читає. Воно читає лише свою базу: іншу базу чи каталог basedb відхиляють уже під час створення. Створення, зміна чи видалення подання потребують рівня Керування для бази. Видалити, у його меню на бічній панелі, прибирає його для всіх, зокрема для скриптів та інструментів; таблиці, які воно читає, не зачіпаються.

Коли змінюється структура

Section titled “Коли змінюється структура”
  • Перейменування таблиці чи поля не ламає подання: PostgreSQL за цим стежить.
  • Зміна формули обчислюваного поля, яке воно читає, ненадовго прибирає подання, а потім відновлює його на новому стовпці. Якщо воно більше не працює, воно лишається таким, що потребує виправлення, — на бічній панелі на це вказує трикутник, — а його визначення зберігається: Редагувати подання…, виправте, збережіть.
  • Таблицю не буде остаточно очищено, доки її читає подання, а подання не буде видалено, доки його читає інше подання: у відмові названо відповідне подання.

Запит, SQL-подання чи запитання?

Section titled “Запит, SQL-подання чи запитання?”
Що цеДе розміщуєтьсяДля чого
Збережений запиттекст SQLпід таблицями, розділ «Запити»знову знайти запит, поширити його як текст
SQL-поданнясправжнє подання PostgreSQLсеред таблицьдати назву певному читанню — для інтерфейсу і для psql, ваших скриптів, ваших інструментів
Запитаннячитання, побудоване мишею чи на SQL, і його візуалізаціяв інформаційних панеляхчисло, графік, зведена таблиця з фільтрами
  • Сітка показує щонайбільше вибрану внизу екрана кількість рядків на сторінці; позначка «обрізано» про це повідомляє. Запит зупиняється через 15 секунд.
  • SQL-подання читається через SQL та в інтерфейсі; REST API і сервер MCP його не надають.
  • SQL-подання лишається в середовищі, де його створено: створення середовища, порівняння структури чи збереження шаблону поки що його не переносять.

basedb — вільне програмне забезпечення від Eodia, студії ШІ-орієнтованого програмного забезпечення.