2015-11-17 2 views
2

Это вопрос двух частей.Показать содержимое VIEW в MySQL

Первый: Мне было интересно, есть ли способ отобразить информацию в виде, которое я только что создал. Я не мог найти что-либо в Интернете, которое было похоже на запрос таблицы DISPLAY Tables, который можно было бы использовать для представлений.

Запрос, чтобы создать мой взгляд это:

CREATE VIEW View1 AS SELECT * FROM CustOrder WHERE shipToName = 'Jim Bob'

Во-вторых после того, как я узнаю, как отобразить что конкретный вид сверху, как мне найти самый высокий «paidPrice» (столбец в таблице CustOrder)?

Спасибо вам заранее!

+0

Неясно, что вы имеете в виду в первой части. Вы хотите, чтобы результат аналогичен описанию 'DESCRIBE tablename'? Эта же команда будет работать для представлений 'DESCRIBE View1'. Кроме того, представление работает точно так же, как и реальная таблица, если вы выберете запрос SELECT для получения максимального значения ('SELECT MAX (paidPrice) FROM View1'). Просьба уточнить, какой результат вы хотите получить в первой части вашего вопроса. –

+0

Привет, извините за любую путаницу. На самом деле все, о чём я спрашиваю, есть, если есть способ поднять представление, как вы можете за столом. Например, можете ли вы отобразить все содержимое вида, аналогичное представлению таблицы? –

+0

EDIT: Я просто попытался выбрать * из View1 и, похоже, работает. Это верно? –

ответ

1

Представление - это немного больше, чем хранимый оператор 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 запросов, выполненных без соответствующей индексации).

Смежные вопросы