Перегляди в SQL являють собою різновид віртуальної таблиці. Представлення також містить рядки та стовпці, як таблиці, але представлення не зберігає дані на диску, як таблиця. Подання визначає настроюваний запит, який отримує дані з однієї або кількох таблиць і представляє дані так, ніби вони надходять з одного джерела.
Ми можемо створити подання, вибравши поля з однієї або кількох таблиць, наявних у базі даних. Представлення може містити всі рядки таблиці або певні рядки на основі певних умов.
У цій статті ми дізнаємося про створення, оновлення та видалення представлень у SQL.
Д База даних SQL emo
Ми будемо використовувати їх дві таблиці SQL для прикладів.
StudentDetails

Студентські оцінки

Ви можете створити ці таблиці у своїй системі, написавши такий SQL-запит:
MySQL -- Create StudentDetails table CREATE TABLE StudentDetails ( S_ID INT PRIMARY KEY, NAME VARCHAR(255), ADDRESS VARCHAR(255) ); INSERT INTO StudentDetails (S_ID, NAME, ADDRESS) VALUES (1, 'Harsh', 'Kolkata'), (2, 'Ashish', 'Durgapur'), (3, 'Pratik', 'Delhi'), (4, 'Dhanraj', 'Bihar'), (5, 'Ram', 'Rajasthan'); -- Create StudentMarks table CREATE TABLE StudentMarks ( ID INT PRIMARY KEY, NAME VARCHAR(255), Marks INT, Age INT ); INSERT INTO StudentMarks (ID, NAME, Marks, Age) VALUES (1, 'Harsh', 90, 19), (2, 'Suresh', 50, 20), (3, 'Pratik', 80, 19), (4, 'Dhanraj', 95, 21), (5, 'Ram', 85, 18);>
СТВОРЮЙТЕ ПОГЛЯДИ в SQL
Ми можемо створити перегляд за допомогою СТВОРИТИ ПЕРЕГЛЯД заява. Представлення можна створити з однієї або кількох таблиць.
Синтаксис
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Параметри:
- view_name : назва перегляду
- ім'я_таблиці : Назва таблиці
- хвороба : Умова вибору рядків
Приклади операторів SQL CREATE VIEW
Давайте розглянемо кілька прикладів інструкції CREATE VIEW у SQL, щоб краще зрозуміти, як створювати представлення в SQL.
Приклад 1: Створення представлення з однієї таблиці
У цьому прикладі ми створимо представлення під назвою DetailsView з таблиці StudentDetails. Запит:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
Щоб переглянути дані в представленні, ми можемо запитати представлення таким же чином, як ми запитуємо таблицю.
SELECT * FROM DetailsView;>
Вихід:

Приклад 2: Створення перегляду з таблиці
У цьому прикладі ми створимо представлення під назвою StudentNames із таблиці StudentDetails. Запит:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Якщо ми тепер запитуємо представлення як,
SELECT * FROM StudentNames;>
Вихід:

Приклад 3: Створення представлення з кількох таблиць
У цьому прикладі ми створимо представлення під назвою MarksView із двох таблиць StudentDetails і StudentMarks. Щоб створити представлення з кількох таблиць, ми можемо просто включити кілька таблиць у оператор SELECT. Запит:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Щоб відобразити дані View MarksView:
SELECT * FROM MarksView;>
Вихід:

ПЕРЕЛІК УСІХ ПОГЛЯДІВ У БАЗІ ДАНИХ
Ми можемо створити список View за допомогою ПОКАЗАТИ ПОВНІ ТАБЛИЦІ або за допомогою таблиця інформаційної_схеми . Представлення можна створити з однієї або кількох таблиць.
Синтаксис
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Використання інформаційної_схеми
список користувачів mysql
SELECT table_name FROM information_schema.views WHERE table_schema = 'database_name'; OR SELECT table_schema, table_name, view_definition FROM information_schema.views WHERE table_schema = 'database_name';>
DELETE VIEWS у SQL
SQL дозволяє нам видалити існуюче представлення. Ми можемо видалити або скинути View за допомогою Оператор DROP .
Синтаксис
DROP VIEW view_name;>
приклад
У цьому прикладі ми видаляємо представлення MarksView.
DROP VIEW MarksView;>
ОНОВИТИ ПЕРЕГЛЯД у SQL
Якщо ви хочете оновити наявні дані в поданні, використовуйте ОНОВЛЕННЯ заява.
Синтаксис
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Примітка: Не всі подання можна оновити за допомогою оператора UPDATE.
Якщо ви хочете оновити визначення подання, не впливаючи на дані, використовуйте СТВОРИТИ АБО ЗАМІНИТИ ПЕРЕГЛЯД заява. ви можете використовувати цей синтаксис
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Правила для оновлення представлень у SQL:
Щоб оновити подання, необхідно виконати певні умови. Якщо будь-яка з цих умов є ні зустрічався, перегляд не можна оновити.
- Оператор SELECT, який використовується для створення подання, не повинен містити пропозиції GROUP BY або ORDER BY.
- Оператор SELECT не повинен містити ключове слово DISTINCT.
- Перегляд має містити всі значення NOT NULL.
- Подання не слід створювати за допомогою вкладених або складних запитів.
- Подання має бути створено з однієї таблиці. Якщо подання створено з використанням кількох таблиць, нам не буде дозволено оновлювати подання.
Приклади
Давайте розглянемо різні випадки використання для оновлення представлення в SQL. Ми розглянемо ці випадки використання прикладами, щоб краще зрозуміти.
Приклад 1: оновіть подання, щоб додати або замінити поле подання
Ми можемо використовувати СТВОРИТИ АБО ЗАМІНИТИ ПЕРЕГЛЯД оператор для додавання або заміни полів у поданні.
Якщо ми хочемо оновити вигляд MarksView і додайте поле AGE до цього View from Студентські оцінки Таблиця, ми можемо зробити це за допомогою:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Якщо зараз отримати всі дані з MarksView як:
SELECT * FROM MarksView;>
Вихід:

Приклад 2: оновіть подання, щоб вставити рядок у подання
Ми можемо вставити рядок у View так само, як і в таблицю. Ми можемо використовувати ВСТАВИТИ В оператор SQL, щоб вставити рядок у View.
У прикладі нижче ми вставимо новий рядок у View DetailsView, який ми створили вище у прикладі створення представлень з однієї таблиці.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Якщо зараз отримати всі дані з DetailsView,
SELECT * FROM DetailsView;>
Вихід:

Приклад 3: видалення рядка з подання
Видалення рядків із подання так само просто, як видалення рядків із таблиці. Ми можемо використовувати оператор DELETE SQL, щоб видалити рядки з представлення. Крім того, видалення рядка з подання спочатку видаляє рядок із фактичної таблиці, а потім зміна відображається в поданні.
У цьому прикладі ми видалимо останній рядок із представлення DetailsView, який ми щойно додали у наведеному вище прикладі вставки рядків.
приклад java, привіт, світ
DELETE FROM DetailsView WHERE NAME='Suresh';>
Якщо зараз отримати всі дані з DetailsView,
SELECT * FROM DetailsView;>
Вихід:

Речення WITH CHECK OPTION
The З ОПЦІЄЮ ПЕРЕВІРКИ речення в SQL є дуже корисним реченням для представлень. Це стосується перегляду, який можна оновлювати.
Речення WITH CHECK OPTION використовується для запобігання модифікації даних (за допомогою INSERT або UPDATE), якщо умова в реченні WHERE в операторі CREATE VIEW не виконується.
Якщо ми використали пропозицію WITH CHECK OPTION у операторі CREATE VIEW, і якщо пропозиція UPDATE або INSERT не задовольняє умовам, вони повернуть помилку.
Приклад пропозиції WITH CHECK OPTION:
У прикладі нижче ми створюємо View SampleView з таблиці StudentDetails з пропозицією WITH CHECK OPTION.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
У цьому поданні, якщо ми зараз спробуємо вставити новий рядок із нульовим значенням у стовпець NAME, це дасть помилку, оскільки подання створено з умовою для стовпця NAME як NOT NULL. Наприклад, хоча представлення можна оновлювати, наведений нижче запит для цього перегляду недійсний:
INSERT INTO SampleView(S_ID) VALUES (6);>
ПРИМІТКА : Значення за замовчуванням стовпця NAME нуль .
Використання перегляду
Хороша база даних повинна містити перегляди з наведених причин:
- Обмеження доступу до даних – Представлення забезпечують додатковий рівень безпеки таблиці, обмежуючи доступ до попередньо визначеного набору рядків і стовпців таблиці.
- Приховування складності даних – Подання може приховати складність, яка існує в кількох об’єднаних таблицях.
- Спростіть команди для користувача – Представлення дозволяють користувачеві вибирати інформацію з кількох таблиць, не вимагаючи від користувачів знання того, як виконати об’єднання.
- Зберігати складні запити – Представлення можна використовувати для зберігання складних запитів.
- Перейменувати стовпці – Подання також можна використовувати для перейменування стовпців, не впливаючи на базові таблиці, за умови, що кількість стовпців у перегляді має відповідати кількості стовпців, указаній у операторі select. Таким чином, перейменування допомагає приховати назви стовпців базових таблиць.
- Можливість перегляду кількох зображень – На одній таблиці для різних користувачів можна створювати різні перегляди.
Ключові висновки про представлення SQL
- Представлення в SQL є різновидом віртуальної таблиці.
- Поля в поданні можуть бути з однієї або кількох таблиць.
- Ми можемо створити подання за допомогою оператора CREATE VIEW і видалити подання за допомогою оператора DROP VIEW.
- Ми можемо оновити представлення за допомогою оператора CREATE OR REPLACE VIEW.
- Речення WITH CHECK OPTION використовується, щоб запобігти вставці нових рядків, які не задовольняють умови фільтрації перегляду.