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

Представление — это не что иное, как инструкция SQLite, хранящаяся в базе данных со связанным именем. Фактически представление — это комбинация таблиц в виде предопределённого запроса SQLite.

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

Представление — это виртуальная таблица, которая позволяет пользователям выполнять следующее:

  • Пользователи или группы пользователей могут находить структурированные данные более естественным или интуитивным способом.

  • Ограничивать доступ к данным, чтобы пользователи могли видеть только ограниченные данные, а не всю таблицу.

  • Обобщать данные из различных таблиц для формирования отчётов.

Представления SQLite доступны только для чтения, поэтому вы можете не иметь возможности выполнять операторы DELETE, INSERT или UPDATE для представления. Однако вы можете создать триггер для представления, который срабатывает при попытке выполнить DELETE, INSERT или UPDATE представления, а действия, которые должны быть выполнены, определяются в теле триггера.

Создание представления

Представления SQLite создаются с помощью оператораCREATE VIEW. Представления SQLite можно создавать из одной таблицы, нескольких таблиц или других представлений.

Базовый синтаксис CREATE VIEW выглядит следующим образом:

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

Вы можете включить несколько таблиц в оператор SELECT способом, очень похожим на обычный SQL-запрос SELECT. Если используется необязательное ключевое слово TEMP или TEMPORARY, представление будет создано во временной базе данных.

Примеры

Предположим, таблица COMPANY содержит следующие записи:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Теперь приведем пример создания представления из таблицы COMPANY. Представление выбирает только несколько столбцов из таблицы COMPANY:

sqlite> CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

Теперь вы можете выполнять запросы к COMPANY_VIEW так же, как к обычной таблице. Ниже приведен пример:

sqlite> SELECT * FROM COMPANY_VIEW;

Это даст следующий результат:

ID          NAME        AGE
----------  ----------  ----------
1           Paul        32
2           Allen       25
3           Teddy       23
4           Mark        25
5           David       27
6           Kim         22
7           James       24

Удаление представления

Чтобы удалить представление, просто используйте инструкцию DROP VIEWview_name. Базовый синтаксис DROP VIEW выглядит следующим образом:

sqlite> DROP VIEW view_name;

Следующая команда удалит представление COMPANY_VIEW, которое мы создали ранее:

sqlite> DROP VIEW COMPANY_VIEW;
Другие расширения