Створення SQL VIEWS: Пояснення крок за кроком

Ми використовуємо SQL або мову структурованих запитів для зв’язку з реляційною базою даних і створення представлень SQL.

Тепер, що таке представлення SQL? Це віртуальні таблиці, які поєднують і зберігають дані з реальних таблиць бази даних, які ви створюєте. У свою чергу, ви отримуєте безпечний і спрощений доступ до свого набору даних, приховуючи основні структури та реалізації таблиць.

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

Чим корисне створення представлень SQL?

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

#1. Забезпечує безпеку бази даних

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

#2. Спрощує складні запити

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

  9 найкращих онлайн-пошуків ASN, скриптів і API

#3. Захищає від зміни схеми

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

#4. Покращує продуктивність запитів

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

Як створити представлення SQL?

Для створення представлень SQL ви можете використовувати команду CREATE VIEW. Представлення містить оператор SELECT. Це дає запит, який буде збережено в поданні. Синтаксис такий:

CREATE VIEW view_name AS 
SELECT 
  column_1, 
  column_2, 
  column_3...
FROM 
  table_name_1, table_name_2
WHERE 
  condition_clause

Розберемося в цьому на прикладі. Вважайте, що ви створили дві таблиці відділ і співробітник. Відділ має назву відділу та свій ідентифікатор. Відповідно, таблиця співробітників містить ім’я та ідентифікатор працівника, а також ідентифікатор відділу, до якого він належить. Ви будете використовувати ці дві таблиці для створення свого представлення SQL.

Створіть свої таблиці бази даних

department_iddepartment_name1Finance2Technology3BusinessТаблиця 1: відділ

Якщо ви використовуєте MySQLви можете створити цю таблицю за допомогою такого запиту:

CREATE TABLE `department` (
  `department_id` int,
  `department_name` varchar(255),
  PRIMARY KEY (`department_id`)
);

Вставте дані в таблицю, яку ви створили за допомогою наведеного нижче SQL:

INSERT INTO department VALUES (1, 'Finance');
INSERT INTO department VALUES (2, 'Technology');
INSERT INTO department VALUES (3, 'Business');

Employee_idemployee_namedepartment_id100John3101Mary1102Natalya3103Bruce2Таблиця 2: співробітник

Коли таблиця відділу буде готова та заповнена даними, створіть таблицю співробітників за допомогою наведеного нижче запиту MySQL:

CREATE TABLE `employee` (
  `employee_id` INT, 
  `employee_name` VARCHAR(255), 
  `department_id` INT, 
  FOREIGN KEY (`department_id`) REFERENCES department(department_id)
);

Далі вставте записи про співробітників у свою таблицю. Майте на увазі, що оскільки стовпець department_id містить посилання на зовнішній ключ із таблицею department, ви не можете вставити department_id, якого немає в іншій таблиці.

INSERT INTO employee VALUES (100, 'John', 3);
INSERT INTO employee VALUES (101, 'Mary', 1);
INSERT INTO employee VALUES (102, 'Natalya', 3);
INSERT INTO employee VALUES (103, 'Bruce', 1);

Надсилайте запити таблицям бази даних

Давайте використаємо таблиці в запиті до бази даних. Розглянемо випадок, коли вам потрібно запитати Emploee_id, Emploee_name і department_name для всіх співробітників. У цьому випадку вам потрібно використовувати обидві таблиці та об’єднати їх за допомогою спільного стовпця, який є department_id. Таким чином, ваш запит виглядає так:

SELECT
  employee_id,
  employee_name,
  department_name
FROM 
  employee,
  department
WHERE 
  employee.department_id = department.department_id;

Створіть своє представлення SQL

Тепер може статися так, що ви часто шукаєте або посилаєтеся на ці дані. На додаток до цього, з часом, коли у ваших таблицях буде більше записів, час запиту почне збільшуватися. У такому випадку ви можете створити представлення SQL, що відповідає цьому запиту.

  Що робити, коли акумулятор під’єднано, а не заряджається

Використовуйте наступний запит, щоб створити представлення з назвою employee_info:

CREATE VIEW employee_info AS 
SELECT
  employee_id,
  employee_name, 
  department_name 
FROM 
  employee, 
  department 
WHERE 
  employee.department_id = department.department_id;

З цим поданням ви можете напряму запитувати те саме. Таким чином, ваш запит спрощено до:

SELECT 
  * 
FROM 
  employee_info;

Надсилання запиту до подання SQL дає такий самий результат, як і вихідний запит. Однак ваш запит тепер легко підтримувати. Перегляд приховує складність вашого запиту без жодного компромісу щодо результату чи продуктивності.

Як замінити представлення SQL?

Якщо у вас є подання з певним ім’ям і ви хочете його змінити або замінити, скористайтеся командою CREATE OR REPLACE VIEW. Використовуючи це, ви можете змінити оператор SELECT, який використовувався для створення представлення. Таким чином, вихідні дані вашого представлення буде замінено, зберігаючи ім’я представлення недоторканим. Крім того, ви створюєте нове подання SQL, якщо воно не існує.

  Найкращі безкоштовні альтернативи Dropbox (для більш ніж 3 пристроїв)

Ви можете замінити представлення SQL за допомогою такого синтаксису:

CREATE OR REPLACE VIEW view_name AS 
SELECT 
  new_column_1, 
  new_column_2, 
  new_column_3 ...
FROM 
  new_table_name_1, 
  new_table_name_2 ...
WHERE 
  new_condition_clause

Ви можете краще це зрозуміти на прикладі. Розглянемо відділ і таблиці співробітників. З них створюється представлення SQL employee_info, яке містить стовпці Emploee_id, Emploee_name та Department_name.

З огляду на безпеку, можливо, вам захочеться видалити Emploee_id із цього перегляду. Крім того, ви також захочете змінити назви стовпців, щоб приховати фактичні стовпці бази даних. Ви можете внести ці зміни в існуюче подання за допомогою такого SQL-запиту:

CREATE OR REPLACE VIEW employee_info AS
SELECT
  employee_name as name,
  department_name as department
FROM
  employee,
  department
WHERE
  employee.department_id = department.department_id;

Після заміни подання ви отримаєте інші результати, якщо використаєте той самий запит, який використовували раніше. Наприклад, у результатах запиту ви побачите, що один із стовпців вилучено. Крім того, назви стовпців було змінено з Emploee_name і department_name на name і department відповідно.

Скористайтеся можливостями створення представлень SQL

Створення представлень SQL забезпечить вам не лише спрощені запити та швидший пошук даних, але й безпеку та захист від змін схеми. Створення представлень SQL досить просте. Ви можете взяти будь-який існуючий запит і перетворити його на вигляд SQL.

Скористайтеся наведеним вище покроковим посібником, щоб створити представлення SQL і скористатися їхніми перевагами. За допомогою представлень SQL ви можете зробити свої програми бази даних простими та безпечними, одночасно підвищуючи їх продуктивність.

Якщо ви хочете керувати власним SQL-сервером, подивіться на SQL Server Management Studio (SSMS).