Что такое представления в MySQL? Какая точка зрения и как часто они используются в реальном мире.
Я после объяснения непрофессионала, пожалуйста, пример, если это возможно, чтобы помочь моему пониманию!
Заранее благодарю вас, -)
Что такое представления в MySQL? Какая точка зрения и как часто они используются в реальном мире.
Я после объяснения непрофессионала, пожалуйста, пример, если это возможно, чтобы помочь моему пониманию!
Заранее благодарю вас, -)
Нормальные представления - это не более чем запрашиваемые запросы.
Пример:
У вас есть две таблицы, заказы и клиенты, у заказов есть идентификаторы полей, 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
Одним преимуществом является абстракция, вы можете изменить способ хранения имени клиента, например, введя среднее имя и просто изменить запрос просмотров. Все приложения, которые использовали представление, продолжают делать это, но теперь включают в себя второе имя.
Посмотрите:
Учебник по представлениям MySQL
Представления и многое другое в MySQL 5.0
Это просто: представления представляют собой виртуальные таблицы.
Представления основаны на 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
В более широком масштабе вы можете составить представление, которое рассчитывает среднюю зарплату сотрудников и списки, у которых зарплата меньше средней заработной платы. В реальной жизни такие запросы намного сложнее.
В mysql представление представляет собой хранимый оператор select
Посмотрите на этот ответ: Представления MySQL - когда использовать и когда не в
Вы можете рассматривать представление как созданную на лету таблицу. В ваших запросах он ведет себя как обычная таблица, но вместо того, чтобы храниться на диске, он создается "на лету", когда это необходимо из оператора SQL, который определяется при создании представления.
Чтобы создать представление, используйте:
CREATE VIEW first_names AS SELECT first_name FROM people WHERE surname='Smith'
Затем вы можете использовать этот вид, как обычную таблицу. Фокус в том, что когда вы обновляете людей таблицы, представление first_names также будет обновляться, потому что это результат результата инструкции SELECT.
Этот запрос:
SELECT * FROM first_names
вернет все имена людей с именем Смит в таблице людей. Если вы обновите таблицу people и заново запустите запрос, вы увидите обновленные результаты.
В принципе, вы можете заменить представления вложенными операторами SELECT. Однако взгляды имеют некоторые преимущества:
Они являются сокращением для обычных фильтров.
Скажите, что у вас есть таблица записей с удаленным столбцом. Обычно вас не интересовали удаленные записи, и поэтому вы могли бы сделать так называемые записи, которые отфильтровывают удаленные записи из таблицы AllRecords.
Это очистит ваш код, поскольку вам не нужно добавлять/добавлять deleted != 1
в каждое утверждение.
SELECT * FROM Records
вернет все не удаленные записи.
Простыми словами
В SQL представление представляет собой виртуальную таблицу на основе набора результатов SQL утверждение.
В представлении содержатся строки и столбцы, только как настоящая таблица. Поля в view - поля из одного или нескольких реальных таблицы в базе данных.
Вы можете добавить SQL-функции, WHERE и ПРИСОЕДИНИТЕСЬ к заявлению и представить данные, как будто данные приближаются из одной таблицы.
В дополнение к этому вы можете вставлять строки в базовый table
из view
при условии, что только одна таблица ссылается на представление и столбцы, которые не указаны в разрешении, допускают значения null.
Вид - это способ предварительного определения определенных запросов. Он может быть запрошен точно так же, как таблица, определяется запросом, а не набором данных на диске. Запрос запроса позволяет запросить результаты таблицы.
В большинстве случаев запрос к представлению можно рассматривать как эквивалент использования определения представления запроса как подзапроса в основном запросе. Представления позволяют коротким и более модульным запросам (поскольку общие части определяются отдельно в представлении). Они также предоставляют возможность для оптимизации (хотя не все базы данных делают это, я не уверен, что MySQL предоставляет любую оптимизацию, чтобы сделать просмотры быстрее или нет).
Если вы обновляете базовые таблицы, запросы к представлению автоматически отражают эти изменения.
В этой небольшой статье довольно хорошо объясняются взгляды в MySQL: Представления и многое другое в MySQL 5.0