Уявлення SQL

текст перекладу
Повний посібник для початківців

Давайте розглянемо уявлення SQL — потужну функцію, яка робить роботу з базами даних простішою та організованішою. Я поясню все, що вам потрібно знати, з практичними прикладами.

Що таке уявлення?

Уявлення — це віртуальна таблиця, яка ґрунтується на результатах SQL-запиту. Уявіть, що це як збереження запиту, який ви можете використовувати пізніше, як звичайну таблицю.

-- Основна структура уявлення  
CREATE VIEW employee_details AS  
SELECT employee_id, first_name, last_name, department  
FROM employees;  
-- Використання уявлення  
SELECT * FROM employee_details;

Що круто в уявленнях? Вони ідеальні для:

  • Спрощення складних запитів
  • Приховування складності даних
  • Контролювання доступу до даних
  • Повторного використання загальних запитів

Створення уявлень

-- Просте уявлення  
CREATE VIEW active_employees AS  
SELECT * FROM employees   
WHERE status = 'active';  
-- Уявлення з кількома таблицями  
CREATE VIEW department_summary AS  
SELECT   
 d.department_name,  
 COUNT(e.employee_id) as employee_count,  
 AVG(e.salary) as avg_salary  
FROM departments d  
JOIN employees e ON d.department_id = e.department_id  
GROUP BY d.department_name;

Коли створювати уявлення:

  • Для часто використовуваних запитів
  • Щоб спростити складні відносини між таблицями
  • Щоб створити користувацькі знімки даних

Модифікація уявлень

-- Оновлення уявлення  
ALTER VIEW active_employees AS  
SELECT employee_id, first_name, last_name, department, hire_date  
FROM employees   
WHERE status = 'active';  
-- Видалення уявлення  
DROP VIEW IF EXISTS active_employees;
-- Пересоздання уявлення  
CREATE OR REPLACE VIEW active_employees AS  
SELECT * FROM employees   
WHERE status = 'active';

Типові модифікації уявлень:

  • Додавання/видалення стовпців
  • Зміна підґрунтя запиту
  • Оновлення дозволів на уявлення

Переваги уявлень

-- Приклад безпеки даних  
CREATE VIEW public_employee_info AS  
SELECT first_name, last_name, department  
FROM employees;  
-- Зарплата та особиста інформація приховані  
-- Спрощення складних запитів  
CREATE VIEW sales_summary AS  
SELECT   
 p.product_name,  
 c.category_name,  
 SUM(s.amount) as total_sales  
FROM sales s  
JOIN products p ON s.product_id = p.id  
JOIN categories c ON p.category_id = c.id  
GROUP BY p.product_name, c.category_name;

Основні переваги:

  • Покращена безпека
  • Спрощений доступ до даних
  • Краща організація даних
  • Зменшення складності запитів

Коли використовувати уявлення

-- Для безпеки даних  
CREATE VIEW hr_employee_view AS  
SELECT employee_id, first_name, last_name, department  
FROM employees;  
-- Для складних обчислень  
CREATE VIEW product_metrics AS  
SELECT   
 product_id,  
 product_name,  
 (sales_price - cost_price) as profit_margin,  
 (sales_count / total_inventory * 100) as stock_turnover  
FROM products;

Ідеальні випадки використання:

  • Приховування чутливих стовпців
  • Спрощення складних з'єднань
  • Створення уявлень для конкретних відділів
  • Стандартизація обчислень

Поради:

  1. Називайте уявлення чітко і послідовно
  2. Документуйте мету уявлень
  3. Тримайте уявлення якнайпростішими
  4. Регулярно перевіряйте використання уявлень

Типові проблеми:

  • Уявлення можуть впливати на продуктивність при складних запитах
  • Не всі уявлення можна оновлювати
  • Зміни в базових таблицях можуть порушити уявлення
  • Уявлення не зберігають дані (за винятком матеріалізованих уявлень)

Перекладено з: SQL Views

Leave a Reply

Your email address will not be published. Required fields are marked *