Что такое представления в MySQL?

Что такое представления в MySQL? Какая точка зрения и как часто они используются в реальном мире.

Я после объяснения непрофессионала, пожалуйста, пример, если это возможно, чтобы помочь моему пониманию!

Заранее благодарю вас, -)

Ответ 1

Нормальные представления - это не более чем запрашиваемые запросы.

Пример:

У вас есть две таблицы, заказы и клиенты, у заказов есть идентификаторы полей, customer_id, performance_date, а клиенты имеют id, first_name, last_name.

Теперь скажем, что вы хотите показать идентификатор заказа, дату выполнения и имя клиента вместе вместо этого запроса:

SELECT    o.id as order_id, c.first_name + ' ' + c.last_name as customer_name,
          o.performance_date 
FROM      orders o inner join customers c

вы могли бы создать этот запрос в виде представления и называть его order_with_customers, в своем приложении теперь вы можете отправить запрос

SELECT   *
FROM     orders_with_customer

Одним преимуществом является абстракция, вы можете изменить способ хранения имени клиента, например, введя среднее имя и просто изменить запрос просмотров. Все приложения, которые использовали представление, продолжают делать это, но теперь включают в себя второе имя.

Ответ 3

Это просто: представления представляют собой виртуальные таблицы.

Представления основаны на SELECT-запросах на "реальных" таблицах, но разница в том, что представления не хранят информацию в отличие от реальных таблиц. Просмотр только ссылок на таблицы и объединяет их так, как говорит SELECT. Это делает часто используемые запросы намного более упрощенными.

Вот простой пример для вас. Предположим, у вас есть таблица сотрудников и таблица отделов, и вы хотели бы видеть их зарплату. Сначала вы можете создать представление о зарплатах.

CREATE VIEW SALARIES
AS  
SELECT e.name,
       e.salary,
       d.name
FROM employees AS e, deparments as d
WHERE e.depid = d.depid
ORDER BY e.salary DESC

В этом запросе указывается имя сотрудника, его зарплата и отдел и заказывается по зарплате в порядке убывания. Когда вы это сделаете, вы можете использовать такие запросы, как:

 SELECT * from SALARIES

В более широком масштабе вы можете составить представление, которое рассчитывает среднюю зарплату сотрудников и списки, у которых зарплата меньше средней заработной платы. В реальной жизни такие запросы намного сложнее.

Ответ 5

Вы можете рассматривать представление как созданную на лету таблицу. В ваших запросах он ведет себя как обычная таблица, но вместо того, чтобы храниться на диске, он создается "на лету", когда это необходимо из оператора SQL, который определяется при создании представления.

Чтобы создать представление, используйте:

CREATE VIEW first_names AS SELECT first_name FROM people WHERE surname='Smith'

Затем вы можете использовать этот вид, как обычную таблицу. Фокус в том, что когда вы обновляете людей таблицы, представление first_names также будет обновляться, потому что это результат результата инструкции SELECT.

Этот запрос:

SELECT * FROM first_names

вернет все имена людей с именем Смит в таблице людей. Если вы обновите таблицу people и заново запустите запрос, вы увидите обновленные результаты.

В принципе, вы можете заменить представления вложенными операторами SELECT. Однако взгляды имеют некоторые преимущества:

  • Более короткие запросы - вложенные операторы SELECT делают запрос длиннее
  • Улучшенная читаемость - если представление имеет разумное имя, запрос гораздо проще понять
  • Лучшая скорость - оператор SELECT представления хранится в механизме базы данных и предварительно анализируется, поэтому его не нужно переносить с клиента и анализировать снова и снова.
  • Кэширование и оптимизация - механизм базы данных может кэшировать представление и выполнять другие оптимизации

Ответ 6

Они являются сокращением для обычных фильтров.

Скажите, что у вас есть таблица записей с удаленным столбцом. Обычно вас не интересовали удаленные записи, и поэтому вы могли бы сделать так называемые записи, которые отфильтровывают удаленные записи из таблицы AllRecords.

Это очистит ваш код, поскольку вам не нужно добавлять/добавлять deleted != 1 в каждое утверждение.

SELECT * FROM Records

вернет все не удаленные записи.

Ответ 7

Простыми словами

В SQL представление представляет собой виртуальную таблицу на основе набора результатов SQL утверждение.

В представлении содержатся строки и столбцы, только как настоящая таблица. Поля в view - поля из одного или нескольких реальных таблицы в базе данных.

Вы можете добавить SQL-функции, WHERE и ПРИСОЕДИНИТЕСЬ к заявлению и представить данные, как будто данные приближаются из одной таблицы.

Источник

В дополнение к этому вы можете вставлять строки в базовый table из view при условии, что только одна таблица ссылается на представление и столбцы, которые не указаны в разрешении, допускают значения null.

Ответ 8

Вид - это способ предварительного определения определенных запросов. Он может быть запрошен точно так же, как таблица, определяется запросом, а не набором данных на диске. Запрос запроса позволяет запросить результаты таблицы.

В большинстве случаев запрос к представлению можно рассматривать как эквивалент использования определения представления запроса как подзапроса в основном запросе. Представления позволяют коротким и более модульным запросам (поскольку общие части определяются отдельно в представлении). Они также предоставляют возможность для оптимизации (хотя не все базы данных делают это, я не уверен, что MySQL предоставляет любую оптимизацию, чтобы сделать просмотры быстрее или нет).

Если вы обновляете базовые таблицы, запросы к представлению автоматически отражают эти изменения.