В этой главе описывается, как создавать и управлять представлением в HCatalog. Представления базы данных создаются с помощью оператора CREATE VIEW . Представления могут быть созданы из одной таблицы, нескольких таблиц или другого представления.
Чтобы создать представление, пользователь должен иметь соответствующие системные привилегии в соответствии с конкретной реализацией.
Создать представление заявления
CREATE VIEW создает вид с заданным именем. Выдается ошибка, если таблица или представление с таким именем уже существует. Вы можете использовать IF NOT EXISTS, чтобы пропустить ошибку.
Если имена столбцов не указаны, имена столбцов представления будут автоматически получены из определяющего выражения SELECT .
Примечание. Если в SELECT содержатся ненасыщенные скалярные выражения, такие как x + y, имена столбцов полученного представления будут сгенерированы в виде _C0, _C1 и т. Д.
При переименовании столбцов также могут быть предоставлены комментарии к столбцам. Комментарии не наследуются автоматически от нижележащих столбцов.
Оператор CREATE VIEW завершится ошибкой, если определяющее представление выражение SELECT недопустимо.
Синтаксис
CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ] [COMMENT view_comment] [TBLPROPERTIES (property_name = property_value, ...)] AS SELECT ...;
пример
Ниже приведены данные таблицы сотрудников. Теперь давайте посмотрим, как создать представление с именем Emp_Deg_View, содержащее поля id, name, Designation и оклад сотрудника с зарплатой, превышающей 35 000.
+------+-------------+--------+-------------------+-------+ | ID | Name | Salary | Designation | Dept | +------+-------------+--------+-------------------+-------+ | 1201 | Gopal | 45000 | Technical manager | TP | | 1202 | Manisha | 45000 | Proofreader | PR | | 1203 | Masthanvali | 30000 | Technical writer | TP | | 1204 | Kiran | 40000 | Hr Admin | HR | | 1205 | Kranthi | 30000 | Op Admin | Admin | +------+-------------+--------+-------------------+-------+
Ниже приведена команда для создания представления на основе приведенных выше данных.
./hcat –e "CREATE VIEW Emp_Deg_View (salary COMMENT ' salary more than 35,000') AS SELECT id, name, salary, designation FROM employee WHERE salary ≥ 35000;"
Выход
OK Time taken: 5.3 seconds
Отбросить заявление
DROP VIEW удаляет метаданные для указанного представления. При отбрасывании представления, на которое ссылаются другие представления, предупреждение не выводится (зависимые представления остаются висящими как недействительные и должны быть удалены или воссозданы пользователем).
Синтаксис
DROP VIEW [IF EXISTS] view_name;
пример
Следующая команда используется для удаления представления с именем Emp_Deg_View .