logo

Перегляди SQL

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

Він може отримувати дані з однієї чи кількох таблиць і представляти їх у спеціальному форматі, що дозволяє розробникам:

  • Спрощення складних запитів: Інкапсулюйте складні об’єднання та умови в єдиний об’єкт.
  • Підвищення безпеки: Обмежте доступ до певних стовпців або рядків.
  • Гнучке представлення даних: Надання індивідуальних переглядів даних для різних користувачів.

Ми будемо використовувати ці дві таблиці SQL для прикладів.



Деталі студента:

-- 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');

Вихід:

S_ID

Ім'я

Адреса

1

Суворий

Колката

2

попелястий

Дургапур

3

Практика

Делі

4

Дханрадж

Біхар

5

Баран

Раджастхан

Оцінки студентів:

-- 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);

Вихід:

ID

Ім'я

Відмітки

Вік

1

Суворий

90

19

2

Суреш

50

20

3

Практика

80

19

4

Дханрадж

95

21

5

Баран

85

18

СТВОРЮЙТЕ ПОГЛЯДИ в SQL

Ми можемо створити представлення за допомогою оператора CREATE VIEW. Представлення можна створити з однієї або кількох таблиць.

Синтаксис:

CREATE VIEW view_name AS  
SELECT column1 column2.....
FROM table_name
WHERE condition;

Ключові терміни:

  • view_name : назва перегляду
  • ім'я_таблиці : Назва таблиці
  • хвороба : Умова вибору рядків

Приклад 1: Створення простого подання з однієї таблиці

Приклад 1.1: У цьому прикладі ми створимо представлення під назвою DetailsView з таблиці StudentDetails.

Запит:

CREATE VIEW DetailsView AS  
SELECT NAME ADDRESS
FROM StudentDetails
WHERE S_ID < 5;

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

SELECT * FROM DetailsView;

Вихід: 

Ім'я

Адреса

Суворий

Колката

попелястий

Дургапур

Практика

Делі

Дханрадж

Біхар

Приклад 1.2: Тут ми створимо представлення під назвою StudentNames із таблиці StudentDetails.

Запит:

CREATE VIEW StudentNames AS  
SELECT S_ID NAME
FROM StudentDetails
ORDER BY NAME;

Якщо ми тепер запитуємо представлення як

    SELECT    *     FROM    StudentNames;

Вихід: 

S_ID

Ім'я

2

попелястий

4

Дханрадж

1

Суворий

3

Практика

5

Баран

список користувачів mysql

Приклад 2: Створення подання з кількох таблиць

У цьому прикладі ми створимо View MarksView, який поєднує дані з обох таблиць StudentDetails і StudentMarks. Щоб створити представлення з кількох таблиць, ми можемо просто включити кілька таблиць у ВИБРАТИ заява.

Запит:

CREATE VIEW MarksView AS  
SELECT StudentDetails.NAME StudentDetails.ADDRESS StudentMarks.MARKS
FROM StudentDetails StudentMarks
WHERE StudentDetails.NAME = StudentMarks.NAME;

Щоб відобразити дані View MarksView:

SELECT * FROM MarksView;

Вихід:

Ім'я

Адреса

Відмітки

Суворий

Колката

90

Практика

Делі

80

Дханрадж

Біхар

95

Баран

Раджастхан

85

приклад java, привіт, світ

Керування переглядами: оновлення та видалення списку

1. Перелік усіх представлень у базі даних

Ми можемо перерахувати всі представлення в базі даних за допомогою оператора SHOW FULL TABLES або шляхом запиту до таблиць information_schema.

USE 'database_name';  
SHOW FULL TABLES WHERE table_type LIKE '%VIEW';

Використання інформаційної_схеми

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';

2. Видалення перегляду

SQL дозволяє нам видалити існуюче представлення. ми можемо видалити або скиньте View за допомогою оператора DROP.

Синтаксис:

DROP VIEW view_name;

приклад: У цьому прикладі ми видаляємо View MarksView.

DROP VIEW MarksView;

3. Оновлення визначення подання

Якщо ми хочемо оновити наявні дані в поданні, використовуйте  ОНОВЛЕННЯ  заява.

UPDATE view_name  
SET column1 = value1 column2 = value2.... columnN = valueN
WHERE [condition];

Якщо ви хочете оновити визначення перегляду, не впливаючи на дані, скористайтеся оператором CREATE OR REPLACE VIEW. Наприклад, додамоAgeстовпець доMarksView:

CREATE OR REPLACE VIEW view_name AS  
SELECT column1 column2 ...
FROM table_name
WHERE condition;

Примітка: Не всі подання можна оновити за допомогою оператора UPDATE.

Правила для оновлення представлень у SQL:

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

  1. Оператор SELECT, який використовується для створення подання, не повинен містити пропозиції GROUP BY або ЗАМОВИТИ ЗА пункт.
  2. Оператор SELECT не повинен мати ВІДМІТНИЙ ключове слово.
  3. Перегляд має містити всі значення NOT NULL.
  4. Подання не слід створювати за допомогою вкладених або складних запитів.
  5. Подання має бути створено з однієї таблиці. Якщо подання створено з використанням кількох таблиць, нам не буде дозволено оновлювати подання.

Передові методи з представленнями

1. Оновлення даних за допомогою представлень

Ми можемо використовувати оператор CREATE OR REPLACE VIEW, щоб додати або замінити поля з представлення. Якщо ми хочемо оновити представлення MarksView та додати поле AGE до цього представлення з таблиці StudentMarks, ми можемо зробити це за допомогою:

приклад:

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;

Вихід:

Ім'я

Адреса

Відмітки

Вік

Суворий

Колката

90

19

Практика

Делі

80

19

Дханрадж

Біхар

95

21

Баран

Раджастхан

85

18

Ми можемо вставити рядок у View так само, як і в таблицю. Ми можемо використовувати ВСТАВИТИ В оператор SQL для вставлення рядка в представлення. У прикладі нижче ми вставимо новий рядок у View DetailsView, який ми створили вище у прикладі «створення представлень з однієї таблиці».

приклад:

INSERT INTO DetailsView(NAME ADDRESS)  
VALUES('Suresh''Gurgaon');

Якщо ми зараз отримаємо всі дані з DetailsView як

SELECT * FROM DetailsView;

Вихід:

Ім'я

Адреса

Суворий

Колката

попелястий

Дургапур

Практика

Делі

Дханрадж

Біхар

Суреш

Гургаон

3. Видалення рядка з представлення

Видалення рядків із подання так само просто, як видалення рядків із таблиці. Ми можемо використовувати оператор DELETE SQL, щоб видалити рядки з представлення. Крім того, видалення рядка з подання спочатку видаляє рядок із фактичної таблиці, а потім зміна відображається в поданні. У цьому прикладі ми видалимо останній рядок з перегляду DetailsView, який ми щойно додали у наведеному вище прикладі вставки рядків.

приклад:

DELETE FROM DetailsView  
WHERE NAME='Suresh';

Якщо ми зараз отримаємо всі дані з DetailsView як

SELECT * FROM DetailsView;

Вихід: 

Ім'я

Адреса

Суворий

Колката

попелястий

Дургапур

Практика

Делі

Дханрадж

Біхар

4. Речення WITH CHECK OPTION

Пропозиція WITH CHECK OPTION у SQL є дуже корисною пропозицією для представлень. Це стосується перегляду, який можна оновлювати. Він використовується для запобігання модифікації даних (за допомогою INSERT або UPDATE), якщо умова в реченні WHERE в операторі CREATE VIEW не виконується.

Якщо ми використали речення WITH CHECK OPTION у операторі CREATE VIEW і якщо речення UPDATE або INSERT не задовольняють умови, тоді вони повернуть помилку. У прикладі нижче ми створюємо 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);
Створіть вікторину