¿Qué se considera una vista en SQLite?

Una vista SQLite es una tabla virtual de solo lectura en concepto, que en realidad es solo una instrucción SELECT con un nombre:

CREAR VER AUTH_info AS
SELECCIONE user.login, shadow.passwd
DESDE el usuario JOIN shadow ON id;

SELECCIONE passwd DESDE auth_info WHERE login = ‘dannyboy’;

Debido a que es de solo lectura, no puede hacer un INSERT , UPDATE o DELETE directamente en una vista, pero puede configurar los desencadenadores INSTEAD OF que “atrapan” estas operaciones y hacen la Cosa Sensible bajo el capó. Un ejemplo de la propia documentación de SQLite:

CREAR TABLA cliente (
cust_id INTEGER PRIMARY KEY,
cust_name TEXT,
cust_addr TEXT
);

CREAR VISTA customer_address AS
SELECCIONE cust_id, cust_addr FROM customer;

CREAR GATILLO cust_addr_chng
EN LUGAR DE ACTUALIZACIÓN DE cust_addr EN customer_address
EMPEZAR
ACTUALIZAR cliente SET cust_addr = NEW.cust_addr
WHERE cust_id = NEW.cust_id;
FIN;

Personalmente, prefiero que la lógica de mi base de datos sea un poco menos “oculta”, por lo que casi nunca uso disparadores, pero la capacidad de hacer “vistas de escritura” está ahí si la necesita.