78 lines
7.2 KiB
Markdown
78 lines
7.2 KiB
Markdown
|
---
|
|||
|
title: SQL Create View Statement
|
|||
|
localeTitle: SQL Создать представление
|
|||
|
---
|
|||
|
## SQL Создать представление
|
|||
|
|
|||
|
### Что такое просмотр?
|
|||
|
|
|||
|
Просмотр представляет собой объект базы данных, который представляет данные, существующие в одной или нескольких таблицах. Представления используются аналогично таблицам, но они не содержат никаких данных. Они просто «указывают» на данные, которые существуют в другом месте (например, таблицы или представления).
|
|||
|
|
|||
|
### Почему они нам нравятся?
|
|||
|
|
|||
|
* Представления - это способ ограничить представленные данные. Например, данные отдела кадров были отфильтрованы только для предоставления информации, не содержащей информации. Чувствительной информацией в этом случае могут быть номера социального страхования, пол сотрудника, размер оплаты, домашний адрес и т. Д.
|
|||
|
* Сложные данные в более чем одной таблице могут быть объединены в один «вид». Это может сделать жизнь проще для ваших бизнес-аналитиков и программистов.
|
|||
|
|
|||
|
### Важные советы по безопасности
|
|||
|
|
|||
|
* Управление видами осуществляется системой. Когда данные в связанных таблицах изменяются, добавляются или обновляются, представление обновляется системой. Мы хотим использовать их только тогда, когда это необходимо для управления использованием системных ресурсов.
|
|||
|
* В MySQL изменения в дизайне таблицы (то есть новые или удаленные столбцы), созданные ПОСЛЕ создания представления, не обновляются в самом представлении. Представление должно быть обновлено или воссоздано.
|
|||
|
* Представления являются одним из четырех стандартных типов объектов базы данных. Остальные - это таблицы, хранимые процедуры и функции.
|
|||
|
* Обычно представления можно рассматривать как таблицу, но обновления ограничены или недоступны, если представление содержит более одной таблицы.
|
|||
|
* Есть много других подробностей о взглядах, выходящих за рамки этого вводного руководства. Проведите время с руководством по управлению базами данных и получайте удовольствие от этого мощного объекта SQL.
|
|||
|
|
|||
|
### Синтаксис инструкции Create View (MySQL)
|
|||
|
|
|||
|
```sql
|
|||
|
CREATE
|
|||
|
[OR REPLACE]
|
|||
|
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
|
|||
|
[DEFINER = { user | CURRENT_USER }]
|
|||
|
[SQL SECURITY { DEFINER | INVOKER }]
|
|||
|
VIEW view_name [(column_list)]
|
|||
|
AS select_statement
|
|||
|
[WITH [CASCADED | LOCAL] CHECK OPTION]
|
|||
|
```
|
|||
|
|
|||
|
_Это руководство будет охватывать эту часть заявления ...._
|
|||
|
|
|||
|
```sql
|
|||
|
CREATE
|
|||
|
VIEW view_name [(column_list)]
|
|||
|
AS select_statement
|
|||
|
```
|
|||
|
|
|||
|
### Образец создания вида из таблиц учеников
|
|||
|
|
|||
|
Заметки:
|
|||
|
|
|||
|
* Название представления имеет «v» в конце. Рекомендуется, чтобы имя вида указывало, что это как-то способ облегчить жизнь программистам и администраторам баз данных. Ваш ИТ-магазин должен иметь свои собственные правила для именования объектов.
|
|||
|
|
|||
|
* Столбцы в представлении ограничены SELECT и строками данных по предложению WHERE.
|
|||
|
|
|||
|
* символ «\` »вокруг имен вида требуется из-за« - »в именах. MySQL сообщает об ошибке без них.
|
|||
|
|
|||
|
|
|||
|
```sql
|
|||
|
create view `programming-students-v` as
|
|||
|
select FullName, programOfStudy
|
|||
|
from student
|
|||
|
where programOfStudy = 'Programming';
|
|||
|
|
|||
|
select * from `programming-students-v`;
|
|||
|
```
|
|||
|
|
|||
|
![Изображение-1](https://github.com/SteveChevalier/guide-images/blob/master/create-view-statement01.JPG?raw=true)
|
|||
|
|
|||
|
### Пример использования представления для объединения данных из нескольких таблиц
|
|||
|
|
|||
|
Для демонстрации этого использования в базу данных была добавлена таблица демографических данных учащихся. Это представление объединит эти таблицы.
|
|||
|
|
|||
|
Заметки:
|
|||
|
|
|||
|
* Для «объединения» таблиц таблицы должны иметь общие поля (обычно первичные ключи), которые однозначно идентифицируют каждую строку. В этом случае это идентификатор студента. (Подробнее об этом в руководстве по объединению [SQL](../sql-joins/index.md) .)
|
|||
|
* Обратите внимание на «псевдоним», данный каждой таблице («s» для ученика и «sc» для контакта со студентом). Это инструмент для сокращения имен таблиц и упрощения определения используемой таблицы. Это проще, чем повторять длинные имена таблиц. В этом примере это было необходимо, поскольку studentID - это то же имя столбца в обеих таблицах, и система представила бы «неоднозначную ошибку имени столбца» без указания используемой таблицы.
|
|||
|
|
|||
|
![Изображение-1](https://github.com/SteveChevalier/guide-images/blob/master/create-view-statement02.JPG?raw=true)
|
|||
|
|
|||
|
_Как со всеми этими вещами, МНОГО БОЛЬШЕ к представлениям. Пожалуйста, ознакомьтесь с руководством для своего менеджера баз данных и получайте удовольствие от различных вариантов._
|