SQLite: descripción general

Este capítulo le ayuda a comprender qué es SQLite, en qué se diferencia de SQL, por qué es necesario y la forma en que maneja la base de datos de aplicaciones.

SQLite es una biblioteca de software que implementa un motor de base de datos transaccional SQL autónomo, sin servidor, sin configuración. SQLite es uno de los motores de base de datos de más rápido crecimiento, pero eso es un crecimiento en términos de popularidad, no tiene nada que ver con su tamaño. El código fuente de SQLite es de dominio público.

¿Qué es SQLite?

SQLite es una biblioteca en proceso que implementa un motor de base de datos transaccional SQL autónomo, sin servidor, sin configuración. Es una base de datos, que no está configurada, lo que significa que, al igual que otras bases de datos, no necesita configurarla en su sistema.

El motor SQLite no es un proceso independiente como otras bases de datos, puede vincularlo estática o dinámicamente según sus requisitos con su aplicación. SQLite accede a sus archivos de almacenamiento directamente.

¿Por qué SQLite?

  • SQLite no requiere un proceso o sistema de servidor separado para operar (sin servidor).

  • SQLite viene con configuración cero, lo que significa que no se necesita configuración ni administración.

  • Una base de datos SQLite completa se almacena en un solo archivo de disco multiplataforma.

  • SQLite es muy pequeño y liviano, menos de 400 KB completamente configurado o menos de 250 KB con funciones opcionales omitidas.

  • SQLite es autónomo, lo que significa que no hay dependencias externas.

  • Las transacciones de SQLite son totalmente compatibles con ACID, lo que permite un acceso seguro desde múltiples procesos o subprocesos.

  • SQLite admite la mayoría de las funciones del lenguaje de consulta que se encuentran en el estándar SQL92 (SQL2).

  • SQLite está escrito en ANSI-C y proporciona una API simple y fácil de usar.

  • SQLite está disponible en UNIX (Linux, Mac OS-X, Android, iOS) y Windows (Win32, WinCE, WinRT).

SQLite Una breve historia

  • 2000 - D. Richard Hipp diseñó SQLite con el propósito de que no se requiriera administración para operar un programa.

  • 2000 - En agosto, SQLite 1.0 se lanzó con GNU Database Manager.

  • 2011 - Hipp anunció que agregará la interfaz UNQl a SQLite DB y desarrollará UNQLite (base de datos orientada a documentos).

Limitaciones de SQLite

Hay algunas características no compatibles de SQL92 en SQLite que se enumeran en la siguiente tabla.

No Señor. Característica y descripción
1

RIGHT OUTER JOIN

Solo se implementa LEFT OUTER JOIN.

2

FULL OUTER JOIN

Solo se implementa LEFT OUTER JOIN.

3

ALTER TABLE

Se admiten las variantes RENAME TABLE y ADD COLUMN del comando ALTER TABLE. No se admiten las opciones DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT.

4

Trigger support

Se admiten los disparadores FOR CADA FILA, pero no los disparadores FOR CADA DECLARACIÓN.

5

VIEWs

Las VIEWs en SQLite son de solo lectura. No puede ejecutar una instrucción DELETE, INSERT o UPDATE en una vista.

6

GRANT and REVOKE

Los únicos permisos de acceso que se pueden aplicar son los permisos de acceso a archivos normales del sistema operativo subyacente.

Comandos SQLite

Los comandos estándar de SQLite para interactuar con bases de datos relacionales son similares a SQL. Son CREAR, SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR y SOLTAR. Estos comandos se pueden clasificar en grupos según su naturaleza operativa:

DDL: lenguaje de definición de datos

No Señor. Comando y descripción
1

CREATE

Crea una nueva tabla, una vista de una tabla u otro objeto en la base de datos.

2

ALTER

Modifica un objeto de base de datos existente, como una tabla.

3

DROP

Elimina una tabla completa, una vista de una tabla u otro objeto de la base de datos.

DML - Lenguaje de manipulación de datos

No Señor. Comando y descripción
1

INSERT

Crea un registro

2

UPDATE

Modifica registros

3

DELETE

Elimina registros

DQL - Lenguaje de consulta de datos

No Señor. Comando y descripción
1

SELECT

Recupera ciertos registros de una o más tablas.