SQLite Introducción
Este tutorial le ayuda a comprender qué es SQLite, las diferencias entre SQLite y SQL, por qué es necesario y cómo maneja las bases de datos de sus aplicaciones.
SQLite es una biblioteca de software que implementa un motor de base de datos SQL transaccional, autónomo, sin servidor y de configuración cero. SQLite es el motor de base de datos de más rápido crecimiento, un crecimiento en popularidad, no relacionado con su tamaño. El código fuente de SQLite no está sujeto a derechos de autor.
¿Qué es SQLite?
SQLite es una biblioteca en proceso que implementa un motor de base de datos SQL transaccional, autónomo, sin servidor y de configuración cero. Es una base de datos de configuración cero, lo que significa que, a diferencia de otras bases de datos, no necesita configurarla en el sistema.
Al igual que otras bases de datos, el motor de SQLite no es un proceso independiente; se puede vincular estática o dinámicamente según los requisitos de la aplicación. SQLite accede directamente a sus archivos de almacenamiento.
¿Por qué usar SQLite?
No requiere un proceso de servidor separado ni un sistema operativo (sin servidor).
SQLite no requiere configuración, lo que significa que no necesita instalación ni administración.
Una base de datos SQLite completa se almacena en un único archivo de disco multiplataforma.
SQLite es muy pequeño y ligero: menos de 400 KiB con configuración completa y menos de 250 KiB cuando se omiten las características opcionales.
SQLite es autónomo, lo que significa que no requiere ninguna dependencia externa.
Las transacciones de SQLite son totalmente compatibles con ACID, lo que permite el acceso seguro desde múltiples procesos o hilos.
SQLite admite la mayoría de las funcionalidades del lenguaje de consulta del estándar SQL92 (SQL2).
SQLite está escrito en ANSI-C y proporciona una API simple y fácil de usar.
SQLite puede ejecutarse en UNIX (Linux, Mac OS-X, Android, iOS) y Windows (Win32, WinCE, WinRT).
Historia
2000 -- D. Richard Hipp diseñó SQLite para poder operar programas sin necesidad de administración.
2000 -- En agosto, SQLite 1.0 lanzó el Administrador de Bases de Datos GNU (GNU Database Manager).
2011 -- Hipp anunció la adición de una interfaz UNQL a SQLite DB, desarrollando UNQLite (una base de datos orientada a documentos).
Limitaciones de SQLite
En SQLite, las características de SQL92 que no se admiten son las siguientes:
| Característica | Descripción |
|---|---|
| RIGHT OUTER JOIN | Solo se implementa LEFT OUTER JOIN. |
| FULL OUTER JOIN | Solo se implementa LEFT OUTER JOIN. |
| ALTER TABLE | Se admiten los comandos RENAME TABLE y las variantes ADD COLUMN de ALTER TABLE, pero no se admiten DROP COLUMN, ALTER COLUMN ni ADD CONSTRAINT. |
| Soporte de triggers | Se admiten disparadores FOR EACH ROW, pero no se admiten disparadores FOR EACH STATEMENT. |
| VIEWs | En SQLite, las vistas son de solo lectura. No puede ejecutar sentencias DELETE, INSERT ni UPDATE en una vista. |
| GRANT y REVOKE | El único permiso de acceso que se puede aplicar es el permiso normal de acceso a archivos del sistema operativo subyacente. |
Comandos de SQLite
Los comandos estándar de SQLite para interactuar con bases de datos relacionales son similares a SQL. Los comandos incluyen CREATE, SELECT, INSERT, UPDATE, DELETE y DROP. Según su naturaleza operativa, estos comandos se pueden clasificar en las siguientes categorías:
DDL - Lenguaje de definición de datos
| Comando | Descripción |
|---|---|
| CREATE | Crea una nueva tabla, una vista de tabla u otro objeto en la base de datos. |
| ALTER | Modifica un objeto existente en la base de datos, como una tabla. |
| DROP | Elimina una tabla completa, una vista de tabla u otro objeto en la base de datos. |
DML - Lenguaje de manipulación de datos
| Comando | Descripción |
|---|---|
| INSERT | Crea un registro. |
| UPDATE | Modifica un registro. |
| DELETE | Elimina un registro. |
DQL - Lenguaje de consulta de datos
| Comando | Descripción |
|---|---|
| SELECT | Recupera ciertos registros de una o más tablas. |