Представление - это немного больше, чем хранимый оператор SELECT
, но с точки зрения клиента они в основном эквивалентны реальным таблицам. Чтобы взаимодействовать с созданным вами представлением, вы можете просто выпустить SELECT
заявления против него.
-- Regular SELECT statements, no different
-- from querying against a real table.
-- Get all rows from the view
SELECT * FROM View1
-- Get the MAX() value from a column
SELECT MAX(paidPrice) AS maxprice FROM View1
Вы также можете создавать виды, которые представляют собой несколько соединенных таблиц. Это общий прецедент, в котором многие таблицы часто объединяются для запросов. Вы можете использовать представление для обработки объединений и выставлять только определенные столбцы определенным пользователям базы данных, а не предоставлять полный доступ к вашей схеме.
CREATE VIEW joinview AS (
SELECT
t1.id,
t1.col1,
t1.col2,
-- The view will only expose the alias
t1.col3 AS aliased_name,
-- Use an alias to avoid a column name collision
t2.col1 AS t2c1,
-- The view will expose the column name without the table name
t2.col99
FROM
t1 INNER JOIN t2 ON t1.id = t2.t1_id
);
Теперь вид только разоблачить столбцы как SELECT
запрос будет. Вам больше не нужно будет ссылаться на отдельные таблицы, поскольку он создает плоский выход.
-- Retrieve 2 columns from the join view
SELECT col99, aliased_name FROM joinview
Наконец, поскольку представления действуют так же, как и обычные таблицы, вы можете присоединить их к другим таблицам или представлениям. Соблюдайте осторожность при сборке представлений с помощью соединений, чтобы убедиться, что базовые таблицы соответствующим образом проиндексированы. В противном случае представления могут работать плохо (как и для обычных SELECT
запросов, выполненных без соответствующей индексации).
Неясно, что вы имеете в виду в первой части. Вы хотите, чтобы результат аналогичен описанию 'DESCRIBE tablename'? Эта же команда будет работать для представлений 'DESCRIBE View1'. Кроме того, представление работает точно так же, как и реальная таблица, если вы выберете запрос SELECT для получения максимального значения ('SELECT MAX (paidPrice) FROM View1'). Просьба уточнить, какой результат вы хотите получить в первой части вашего вопроса. –
Привет, извините за любую путаницу. На самом деле все, о чём я спрашиваю, есть, если есть способ поднять представление, как вы можете за столом. Например, можете ли вы отобразить все содержимое вида, аналогичное представлению таблицы? –
EDIT: Я просто попытался выбрать * из View1 и, похоже, работает. Это верно? –