docs/sql-reference/statements/create-view.mdx
Create a named view that encapsulates a SELECT statement.
CREATE [TEMPORARY] VIEW [IF NOT EXISTS] [schema-name.]view-name
AS select-statement;
A view is a virtual table defined by a SELECT statement. It does not store data on disk -- every time you query the view, Turso executes the underlying SELECT. Views simplify complex queries, provide a stable interface over evolving table schemas, and restrict which columns or rows are visible.
| Parameter | Description |
|---|---|
TEMPORARY | Creates the view in a temporary database. The view is visible only to the current connection and is dropped when the connection closes. TEMP is accepted as a synonym. |
IF NOT EXISTS | Prevents an error if a view with the same name already exists. The statement is a no-op when the view is present. |
schema-name | The name of the attached database in which to create the view. Defaults to the main database if omitted. Cannot be used with TEMPORARY. |
view-name | A unique name for the view within the database. |
select-statement | The SELECT query that defines the view's contents. |
sqlite_schema table and parsed each time the view is referenced.CREATE VIEW active_users AS
SELECT id, name, email
FROM users
WHERE status = 'active';
-- Use the view like a table
SELECT * FROM active_users WHERE name LIKE 'A%';
CREATE VIEW department_stats AS
SELECT
department,
COUNT(*) AS employee_count,
AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
SELECT * FROM department_stats ORDER BY avg_salary DESC;
CREATE TEMP VIEW my_tasks AS
SELECT id, title, due_date
FROM tasks
WHERE assignee = 'alice';