Разница между представлением и таблицей в sql

136

Возможный дубликат:
разница между представлениями и таблицами в производительности

В чем основное отличие представления от таблицы в SQL. Есть ли преимущество в использовании представлений вместо таблиц.

Махеш КП
источник
1
Возможный дубликат разницы между представлениями и таблицами в производительности
Брайан Томпсетт - 莱恩
6
Не похоже на дубликат. Связанный пост конкретно спрашивает о производительности / эффективности. Этот пост спрашивает больше о том, чем они различаются как типы данных, как представляет выбранный ответ.
Ð ..

Ответы:

198

Таблица содержит данные, представление - это просто SELECTинструкция, которая была сохранена в базе данных (более или менее, в зависимости от вашей базы данных).

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

Вместо того, чтобы постоянно отправлять сложный запрос к базе данных, вы можете сохранить запрос как представление, а затем SELECT * FROM view

Аарон Дигулла
источник
11
Таким образом, представление - это таблица, созданная оператором select. Представление сохраняется, и к нему можно получить доступ, поэтому в чем будет разница между созданием новой таблицы с этой информацией вместо представления.
Дуг Хауф
23
Вы можете думать о представлении как о «сохраненном операторе выбора», который вы можете повторять. На самом деле это не стол; хотя некоторые базы данных позволяют создавать представления с реальной таблицей внизу, на самом деле это просто SELECTоператор, возвращающий результаты.
Аарон Дигулла
1
кое-что отметить: некоторые представления списков системы баз данных вместе с таблицами в "show tables"; команда.
Декстер
1
@ShwetabhShekhar Это зависит от вашей базы данных и типа представления. В самом простом виде база данных выполнит SQL, как если бы вы только что отправили все это целиком. В этом случае вы просто сохраняете отправку большого количества байтов снова и снова. Некоторые базы данных могут выполнять запрос и сохранять результат в (реальной) таблице. Тогда вам нужно как-то решить проблемы, о которых вы упомянули. Проверьте документацию БД, как это сделать.
Аарон Дигулла
1
@FoxDeploy Да, поскольку это представление никоим образом не помогает. Полезными сценариями могут быть представление с ограниченными разрешениями или представление, которое выбирает таблицу из другой схемы в той же базе данных или другой базе данных (удаленная таблица).
Аарон Дигулла
34

Таблица: Таблица - это предварительное хранилище для хранения данных и информации в СУБД. Таблица - это набор связанных записей данных, состоящий из столбцов и строк.

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

  • Мы можем объединить столбцы / строки из нескольких таблиц или другого представления и получить консолидированное представление.
  • Представления могут использоваться как механизмы безопасности, позволяя пользователям получать доступ к данным через представление без предоставления пользователям разрешений на прямой доступ к базовым таблицам представления.
  • Он действует как абстрактный уровень для нижестоящих систем, поэтому любые изменения в схеме не отображаются, и, следовательно, нижестоящие системы не затрагиваются.
Senthil_Arun
источник
16

Представление - это виртуальная таблица. Представление состоит из строк и столбцов, как таблица. Разница между представлением и таблицей состоит в том, что представления - это определения, построенные поверх других таблиц (или представлений), и не содержат самих данных. Если данные в базовой таблице изменяются, то же изменение отражается в представлении. Представление может быть построено поверх одной или нескольких таблиц. Его также можно построить поверх другого вида. На странице создания представления SQL мы увидим, как можно построить представление.

Виды имеют следующие преимущества:

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

  2. Экономия места: представления занимают очень мало места для хранения, поскольку не хранят фактических данных.

  3. Дополнительная безопасность данных: представления могут включать в себя только определенные столбцы в таблице, поэтому конечному пользователю будут доступны только нечувствительные столбцы. Кроме того, некоторые базы данных позволяют представлениям иметь разные настройки безопасности, таким образом скрывая конфиденциальные данные от посторонних глаз.

Ответ от: http://www.1keydata.com/sql/sql-view.html

SuperGuy10
источник
4

Ввиду отсутствия прямой или физической связи с базой данных. И изменение через представление (например, вставка, обновление, удаление) не разрешено. Это просто логический набор таблиц.

Харис
источник
1
В SQL Server вы можете изменить базовую таблицу через представление, если оно ссылается только на одну базовую таблицу. см. здесь
Кристен Хаммак
3

Представление помогает нам избавиться от постоянного использования пространства базы данных. Если вы создаете таблицу, она сохраняется в базе данных и занимает некоторое пространство на протяжении всего своего существования. Вместо этого при выполнении запроса используется представление, что экономит место в БД. И мы не можем создавать большие таблицы все время, соединяя разные таблицы, хотя мы могли бы, но это зависит от размера таблицы, чтобы сэкономить место. Поэтому просто временно создайте таблицу с присоединением к другой таблице во время выполнения. Знатоки, поправьте меня, если я ошибаюсь.

Дипак Ранджан Моханти
источник
2

Стол:

Таблица хранит данные в базе данных и содержит данные.

Посмотреть:

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

Хари
источник
2

Представления SQL:

Представление - это виртуальная таблица, основанная на наборе результатов оператора SQL, которая хранится в базе данных под некоторым именем.

Таблица SQL:

Таблица SQL - это экземпляр базы данных, состоящий из полей (столбцов) и строк.

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

https://codechef4u.com/post/2015/09/03/sql-views-vs-tables

nagnath
источник