SlideShare a Scribd company logo
1 of 14
Download to read offline
Представление
•	 Представление (VIEW) — объект базы данных,  
представляющий собой именованный сохраненный
запрос, определенный с помощью оператора SELECT.
•	 Представления могут основываться как на таблицах,
так и на других представлениях.
Создание представлений в MySQL
CREATE  
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
Необязательные конструкции
представлений
• ALGORITM – определяет алгоритм, используемый при обращении
к представлению;
• column_list – задает имена полей представления;
• WITH CHECK OPTION – используется для ограничений
в редактируемых представлениях.
Алгоритмы представлений
В MySQL используются два алгоритма:
• MERGE
• TEMPTABLE
Задание алгоритма
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
•	 UNDEFINED означает, что MySQL сам выбирает
какой алгоритм использовать.
•	 UNDEFINED используется по умолчанию.
Пример: алгоритм MERGE
•	 Определение предcтавления:
CREATE VIEW V_EXAM_RESULT AS SELECT StudentId, Mark
FROM EXAM_RESULT WHERE Mark = 5;
•	 Обращение к представлению:
SELECT StudentId, Mark FROM V_EXAM_RESULT
WHERE StudentId = 345567;
•	 Исполнение итогового запроса:
SELECT StudentId, Mark FROM EXAM_RESULT
WHERE Mark = 5 AND StudentId = 345567;
Пример: алгоритм TEMPTABLE
•	 Определение представления:
CREATE VIEW V_STUDENT_EXAM_RESULT AS SELECT StudentId,
COUNT(*) AS TheBestMarkCount FROM EXAM_RESULT WHERE Mark =
5 GROUP BY StudentId;
•	 Обращение к представлению:
SELECT MAX(TheBestMarkCount) FROM V_STUDENT_EXAM_RESULT;
•	 Материализация представления:
CREATE TEMPORARY TABLE tmp_table SELECT StudentId,
COUNT(*) AS TheBestMarkCount FROM EXAM_RESULT WHERE Mark =
5 GROUP BY StudentId;
•	 Получение итоговых результатов:
SELECT MAX(TheBestMarkCount) FROM tmp_table;
•	 Уничтожение временной таблицы:
DROP TABLE tpm_table;
Обновляемые представления
Представление называется обновляемым,
если к нему могут быть применимы
операторы INSERT, UPDATE и DELETE.
Условия для обновляемых
представлений
•	 Однозначное соответствие между строками
представления и таблицами, на которых 	
основано представление.
•	 Поля представления должны быть простым
перечислением полей таблиц, 	
а не выражениями, построенными 	
на основе полей.
Использование CHECK OPTION
•	 UPDATE: изменение данных будет
происходить, только если строка с новыми
значениями удовлетворяет условию WHERE 	
в определении представления.
•	 INSERT: добавление данных будет
происходить, только если новая
строка удовлетворяет условию WHERE
в определении представления.
Ключевые слова CASCADED
и LOCAL
•	 Для LOCAL происходит проверка условия WHERE
только в собственном определении представления.
•	 Для CASCADED происходит проверка для всех
представлений, на которых основано данное
представление. Значением по умолчанию 	
является CASCADED.
Пример: создание обновляемого
представления с CHECK OPTION
Определение представления:
CREATE VIEW V_HOME_PHONE_LIST
AS SELECT StudentId, PhoneType, Phone
FROM PHONE_LIST
WHERE PhoneType = 'дом' WITH CHECK OPTION;
Пример: просмотр содержимого
представления
SELECT * FROM V_HOME_PHONE_LIST;
Пример: вставка в представление
INSERT INTO V_HOME_PHONE_LIST
(StudentId, PhoneType, Phone )
VALUES (345572, 'дом', 88127878780);

More Related Content

Similar to 22 - Базы данных. Представления

Управление Данными. Лекция 8
Управление Данными. Лекция 8Управление Данными. Лекция 8
Управление Данными. Лекция 8Dmitriy Krukov
 
Народные средства оптимизации PostgreSQL
Народные средства оптимизации PostgreSQLНародные средства оптимизации PostgreSQL
Народные средства оптимизации PostgreSQLNikolay Pisarev
 
18 - Базы данных. Общая структура оператора SELECT
18 - Базы данных. Общая структура оператора SELECT18 - Базы данных. Общая структура оператора SELECT
18 - Базы данных. Общая структура оператора SELECTRoman Brovko
 
0045
00450045
0045JIuc
 
SQL-ник DevDay. Каменский. Расширенный SQL в MySQL и PostgreSQL. Сравнение во...
SQL-ник DevDay. Каменский. Расширенный SQL в MySQL и PostgreSQL. Сравнение во...SQL-ник DevDay. Каменский. Расширенный SQL в MySQL и PostgreSQL. Сравнение во...
SQL-ник DevDay. Каменский. Расширенный SQL в MySQL и PostgreSQL. Сравнение во...DevDay
 
бд шпора2
бд шпора2бд шпора2
бд шпора2elgin690
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...Technopark
 
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...Ontico
 
Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Dima Dzuba
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"Technopark
 
34 - Базы данных. Рекомендации по составлению запросов
34 - Базы данных. Рекомендации по составлению запросов34 - Базы данных. Рекомендации по составлению запросов
34 - Базы данных. Рекомендации по составлению запросовRoman Brovko
 
19 - Базы данных. Агрегирование и группировка
19 - Базы данных. Агрегирование и группировка19 - Базы данных. Агрегирование и группировка
19 - Базы данных. Агрегирование и группировкаRoman Brovko
 
MySQL для высоконагруженных проектов
MySQL для высоконагруженных проектовMySQL для высоконагруженных проектов
MySQL для высоконагруженных проектовSoftline
 

Similar to 22 - Базы данных. Представления (19)

Управление Данными. Лекция 8
Управление Данными. Лекция 8Управление Данными. Лекция 8
Управление Данными. Лекция 8
 
лабраб 7
лабраб 7лабраб 7
лабраб 7
 
Народные средства оптимизации PostgreSQL
Народные средства оптимизации PostgreSQLНародные средства оптимизации PostgreSQL
Народные средства оптимизации PostgreSQL
 
18 - Базы данных. Общая структура оператора SELECT
18 - Базы данных. Общая структура оператора SELECT18 - Базы данных. Общая структура оператора SELECT
18 - Базы данных. Общая структура оператора SELECT
 
0045
00450045
0045
 
24 25 запросы
24 25 запросы24 25 запросы
24 25 запросы
 
SQL-ник DevDay. Каменский. Расширенный SQL в MySQL и PostgreSQL. Сравнение во...
SQL-ник DevDay. Каменский. Расширенный SQL в MySQL и PostgreSQL. Сравнение во...SQL-ник DevDay. Каменский. Расширенный SQL в MySQL и PostgreSQL. Сравнение во...
SQL-ник DevDay. Каменский. Расширенный SQL в MySQL и PostgreSQL. Сравнение во...
 
Vba 07
Vba 07Vba 07
Vba 07
 
бд шпора2
бд шпора2бд шпора2
бд шпора2
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
 
Access 04
Access 04Access 04
Access 04
 
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
 
Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8.
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
лабраб 3
лабраб 3лабраб 3
лабраб 3
 
34 - Базы данных. Рекомендации по составлению запросов
34 - Базы данных. Рекомендации по составлению запросов34 - Базы данных. Рекомендации по составлению запросов
34 - Базы данных. Рекомендации по составлению запросов
 
19 - Базы данных. Агрегирование и группировка
19 - Базы данных. Агрегирование и группировка19 - Базы данных. Агрегирование и группировка
19 - Базы данных. Агрегирование и группировка
 
My sql 0
My sql 0My sql 0
My sql 0
 
MySQL для высоконагруженных проектов
MySQL для высоконагруженных проектовMySQL для высоконагруженных проектов
MySQL для высоконагруженных проектов
 

More from Roman Brovko

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task NetworkingRoman Brovko
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3Roman Brovko
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernetRoman Brovko
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2Roman Brovko
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1Roman Brovko
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flashRoman Brovko
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2CRoman Brovko
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uartRoman Brovko
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorRoman Brovko
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwmRoman Brovko
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsRoman Brovko
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_worldRoman Brovko
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisitesRoman Brovko
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advancedRoman Brovko
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advancedRoman Brovko
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advancedRoman Brovko
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окруженияRoman Brovko
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advancedRoman Brovko
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basicsRoman Brovko
 

More from Roman Brovko (20)

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
 

22 - Базы данных. Представления

  • 1. Представление • Представление (VIEW) — объект базы данных, представляющий собой именованный сохраненный запрос, определенный с помощью оператора SELECT. • Представления могут основываться как на таблицах, так и на других представлениях.
  • 2. Создание представлений в MySQL CREATE   [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]
  • 3. Необязательные конструкции представлений • ALGORITM – определяет алгоритм, используемый при обращении к представлению; • column_list – задает имена полей представления; • WITH CHECK OPTION – используется для ограничений в редактируемых представлениях.
  • 4. Алгоритмы представлений В MySQL используются два алгоритма: • MERGE • TEMPTABLE
  • 5. Задание алгоритма [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] • UNDEFINED означает, что MySQL сам выбирает какой алгоритм использовать. • UNDEFINED используется по умолчанию.
  • 6. Пример: алгоритм MERGE • Определение предcтавления: CREATE VIEW V_EXAM_RESULT AS SELECT StudentId, Mark FROM EXAM_RESULT WHERE Mark = 5; • Обращение к представлению: SELECT StudentId, Mark FROM V_EXAM_RESULT WHERE StudentId = 345567; • Исполнение итогового запроса: SELECT StudentId, Mark FROM EXAM_RESULT WHERE Mark = 5 AND StudentId = 345567;
  • 7. Пример: алгоритм TEMPTABLE • Определение представления: CREATE VIEW V_STUDENT_EXAM_RESULT AS SELECT StudentId, COUNT(*) AS TheBestMarkCount FROM EXAM_RESULT WHERE Mark = 5 GROUP BY StudentId; • Обращение к представлению: SELECT MAX(TheBestMarkCount) FROM V_STUDENT_EXAM_RESULT; • Материализация представления: CREATE TEMPORARY TABLE tmp_table SELECT StudentId, COUNT(*) AS TheBestMarkCount FROM EXAM_RESULT WHERE Mark = 5 GROUP BY StudentId; • Получение итоговых результатов: SELECT MAX(TheBestMarkCount) FROM tmp_table; • Уничтожение временной таблицы: DROP TABLE tpm_table;
  • 8. Обновляемые представления Представление называется обновляемым, если к нему могут быть применимы операторы INSERT, UPDATE и DELETE.
  • 9. Условия для обновляемых представлений • Однозначное соответствие между строками представления и таблицами, на которых основано представление. • Поля представления должны быть простым перечислением полей таблиц, а не выражениями, построенными на основе полей.
  • 10. Использование CHECK OPTION • UPDATE: изменение данных будет происходить, только если строка с новыми значениями удовлетворяет условию WHERE в определении представления. • INSERT: добавление данных будет происходить, только если новая строка удовлетворяет условию WHERE в определении представления.
  • 11. Ключевые слова CASCADED и LOCAL • Для LOCAL происходит проверка условия WHERE только в собственном определении представления. • Для CASCADED происходит проверка для всех представлений, на которых основано данное представление. Значением по умолчанию является CASCADED.
  • 12. Пример: создание обновляемого представления с CHECK OPTION Определение представления: CREATE VIEW V_HOME_PHONE_LIST AS SELECT StudentId, PhoneType, Phone FROM PHONE_LIST WHERE PhoneType = 'дом' WITH CHECK OPTION;
  • 14. Пример: вставка в представление INSERT INTO V_HOME_PHONE_LIST (StudentId, PhoneType, Phone ) VALUES (345572, 'дом', 88127878780);