Учебники

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

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

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

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

  • Структурируйте данные так, чтобы пользователи или классы пользователей находили естественные или интуитивно понятные.

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

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

Структурируйте данные так, чтобы пользователи или классы пользователей находили естественные или интуитивно понятные.

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

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

Представления SQLite доступны только для чтения, и поэтому вы не сможете выполнить оператор 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 VIEW с view_name . Основной синтаксис DROP VIEW выглядит следующим образом:

sqlite> DROP VIEW view_name;

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