logo

Перегляди SQL

Перегляди в 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:

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

  1. Оператор SELECT, який використовується для створення подання, не повинен містити пропозиції GROUP BY або ORDER BY.
  2. Оператор SELECT не повинен містити ключове слово DISTINCT.
  3. Перегляд має містити всі значення NOT NULL.
  4. Подання не слід створювати за допомогою вкладених або складних запитів.
  5. Подання має бути створено з однієї таблиці. Якщо подання створено з використанням кількох таблиць, нам не буде дозволено оновлювати подання.

Приклади

Давайте розглянемо різні випадки використання для оновлення представлення в 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 нуль .

Використання перегляду

Хороша база даних повинна містити перегляди з наведених причин:

  1. Обмеження доступу до даних – Представлення забезпечують додатковий рівень безпеки таблиці, обмежуючи доступ до попередньо визначеного набору рядків і стовпців таблиці.
  2. Приховування складності даних – Подання може приховати складність, яка існує в кількох об’єднаних таблицях.
  3. Спростіть команди для користувача – Представлення дозволяють користувачеві вибирати інформацію з кількох таблиць, не вимагаючи від користувачів знання того, як виконати об’єднання.
  4. Зберігати складні запити – Представлення можна використовувати для зберігання складних запитів.
  5. Перейменувати стовпці – Подання також можна використовувати для перейменування стовпців, не впливаючи на базові таблиці, за умови, що кількість стовпців у перегляді має відповідати кількості стовпців, указаній у операторі select. Таким чином, перейменування допомагає приховати назви стовпців базових таблиць.
  6. Можливість перегляду кількох зображень – На одній таблиці для різних користувачів можна створювати різні перегляди.

Ключові висновки про представлення SQL

  • Представлення в SQL є різновидом віртуальної таблиці.
  • Поля в поданні можуть бути з однієї або кількох таблиць.
  • Ми можемо створити подання за допомогою оператора CREATE VIEW і видалити подання за допомогою оператора DROP VIEW.
  • Ми можемо оновити представлення за допомогою оператора CREATE OR REPLACE VIEW.
  • Речення WITH CHECK OPTION використовується, щоб запобігти вставці нових рядків, які не задовольняють умови фільтрації перегляду.