SQLite ( / ˌ ɛ s ˌ k Ju ˌ ɛ l aɪ t / , [4] [5] / s i k w ə ˌ l aɪ t / [6] ) es un sistema de gestión de base de datos relacional (RDBMS) que figura en un C biblioteca . A diferencia de muchos otros sistemas de administración de bases de datos, SQLite no es un motor de base de datos cliente-servidor . Más bien, está integrado en el programa final.
Desarrollador (es) | D. Richard Hipp |
---|---|
Versión inicial | 17 de agosto de 2000 |
Lanzamiento estable | 3.35.5 [1] (19 de abril de 2021 ) [±] |
Repositorio | |
Escrito en | C |
Sistema operativo | Multiplataforma |
Tamaño | 699 KiB |
Tipo | RDBMS ( integrado ) |
Licencia | Dominio público [2] |
Sitio web | sqlite |
Extensión de nombre de archivo | .sqlite3, .sqlite, .db |
---|---|
Tipo de medio de Internet | application/vnd.sqlite3 [3] |
número mágico | 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 ( ASCII de terminación cero "formato SQLite 3") |
Versión inicial | 2004-06-18 |
¿ Formato abierto ? | sí ( dominio público ) |
Sitio web | sqlite.org/fileformat2.html |
SQLite generalmente sigue la sintaxis de PostgreSQL . SQLite utiliza una sintaxis SQL de tipo dinámico y débil que no garantiza la integridad del dominio . [7] Esto significa que uno puede, por ejemplo, insertar una cadena en una columna definida como un número entero. SQLite intentará convertir datos entre formatos cuando sea apropiado, la cadena "123" en un número entero en este caso, pero no garantiza tales conversiones y almacenará los datos como están si tal conversión no es posible.
SQLite es una opción popular como software de base de datos integrado para almacenamiento local / cliente en software de aplicación como navegadores web . Podría decirse que es el motor de base de datos más ampliamente implementado , ya que lo utilizan hoy en día varios navegadores, sistemas operativos y sistemas integrados (como teléfonos móviles) generalizados , entre otros. [8] SQLite tiene enlaces a muchos lenguajes de programación.
Diseño
A diferencia de los sistemas de administración de bases de datos cliente-servidor, el motor SQLite no tiene procesos independientes con los que se comunica el programa de aplicación. En cambio, la biblioteca SQLite está vinculada y, por lo tanto, se convierte en una parte integral del programa de aplicación. La vinculación puede ser estática o dinámica . El programa de aplicación utiliza la funcionalidad de SQLite a través de simples llamadas a funciones , que reducen la latencia en el acceso a la base de datos: las llamadas a funciones dentro de un solo proceso son más eficientes que la comunicación entre procesos .
SQLite almacena toda la base de datos (definiciones, tablas, índices y los datos en sí) como un solo archivo multiplataforma en una máquina host. Implementa este diseño simple bloqueando todo el archivo de la base de datos durante la escritura. Las operaciones de lectura de SQLite pueden ser multitarea, aunque las escrituras solo se pueden realizar de forma secuencial.
Debido al diseño sin servidor, las aplicaciones SQLite requieren menos configuración que las bases de datos cliente-servidor. SQLite se llama zero-conf [9] porque no requiere gestión de servicios (como scripts de inicio) o control de acceso basado en GRANT y contraseñas. El control de acceso se maneja por medio de los permisos del sistema de archivos otorgados al archivo de la base de datos. Las bases de datos en los sistemas cliente-servidor utilizan permisos del sistema de archivos que dan acceso a los archivos de la base de datos sólo al proceso demonio.
Otra implicación del diseño sin servidor es que es posible que varios procesos no puedan escribir en el archivo de la base de datos. En las bases de datos basadas en servidor, varios escritores se conectarán todos al mismo demonio, que puede manejar sus bloqueos internamente. SQLite, por otro lado, tiene que depender de los bloqueos del sistema de archivos. Tiene menos conocimiento de los otros procesos que están accediendo a la base de datos al mismo tiempo. Por lo tanto, SQLite no es la opción preferida para implementaciones de escritura intensiva. [10] Sin embargo, para consultas simples con poca simultaneidad, el rendimiento de SQLite se beneficia al evitar la sobrecarga de pasar sus datos a otro proceso.
SQLite usa PostgreSQL como plataforma de referencia. "¿Qué haría PostgreSQL?" Se usa para darle sentido al estándar SQL. [11] [12] Una desviación importante es que, con la excepción de las claves primarias , SQLite no impone la verificación de tipos ; el tipo de un valor es dinámico y no está estrictamente limitado por el esquema (aunque el esquema activará una conversión al almacenar, si dicha conversión es potencialmente reversible). SQLite se esfuerza por seguir la regla de Postel . [13]
Historia
D. Richard Hipp diseñó SQLite en la primavera de 2000 mientras trabajaba para General Dynamics con un contrato con la Marina de los Estados Unidos . [14] Hipp estaba diseñando software utilizado para un sistema de control de daños a bordo de destructores de misiles guiados , que originalmente usaban HP-UX con un back-end de base de datos IBM Informix . SQLite comenzó como una extensión de Tcl . [15]
Los objetivos de diseño de SQLite eran permitir que el programa funcionara sin instalar un sistema de gestión de bases de datos o sin necesidad de un administrador de bases de datos . Hipp basó la sintaxis y la semántica en las de PostgreSQL 6.5. En agosto de 2000, se lanzó la versión 1.0 de SQLite, con almacenamiento basado en gdbm (GNU Database Manager). SQLite 2.0 reemplazó gdbm con una implementación personalizada de árbol B , agregando capacidad de transacción . SQLite 3.0, parcialmente financiado por America Online , agregó internacionalización , tipificación de manifiestos y otras mejoras importantes.
En 2011, Hipp anunció sus planes para agregar una interfaz NoSQL (gestión de documentos expresados en JSON ) a las bases de datos SQLite y desarrollar UnQLite , una base de datos orientada a documentos integrable . [dieciséis]
SQLite es uno de los cuatro formatos recomendados para el almacenamiento a largo plazo de conjuntos de datos aprobados para su uso por la Biblioteca del Congreso . [17] [18] [19]
Características
SQLite implementa la mayor parte del estándar SQL-92 para SQL , pero carece de algunas características. Por ejemplo, solo proporciona activadores parcialmente y no puede escribir en vistas (sin embargo, proporciona activadores EN LUGAR DE que proporcionan esta funcionalidad). Si bien proporciona consultas complejas, aún tiene una función ALTER TABLE limitada , ya que no puede modificar ni eliminar columnas. [20] Esto cambió en la versión 3.25.0 con soporte para ALTER TABLE RENAME COLUMN y la versión 3.35.0 con ALTER TABLE DROP COLUMN. [21]
SQLite utiliza un sistema de tipos inusual para un DBMS compatible con SQL: en lugar de asignar un tipo a una columna como en la mayoría de los sistemas de bases de datos SQL, los tipos se asignan a valores individuales; en términos de lenguaje, se escribe dinámicamente . Además, se escribe débilmente de la misma manera que Perl : se puede insertar una cadena en una columna de número entero (aunque SQLite intentará convertir la cadena en un número entero primero, si el tipo preferido de la columna es entero). Esto agrega flexibilidad a las columnas, especialmente cuando están vinculadas a un lenguaje de secuencias de comandos escrito dinámicamente. Sin embargo, la técnica no es transferible a otros productos SQL. Una crítica común es que el sistema de tipos de SQLite carece del mecanismo de integridad de datos proporcionado por las columnas escritas estáticamente en otros productos. El sitio web de SQLite describe un modo de "afinidad estricta", pero esta característica aún no se ha agregado. [13] Sin embargo, se puede implementar con restricciones como CHECK(typeof(x)='integer')
. [14]
Las tablas normalmente incluyen una columna de índice de identificador de fila oculta , que brinda un acceso más rápido. [22] Si una base de datos incluye una columna Integer Primary Key, SQLite normalmente la optimizará tratándola como un alias para rowid , haciendo que el contenido se almacene como un entero de 64 bits firmado estrictamente y cambiando su comportamiento para que sea algo así como una columna de incremento automático. Futuro [ ¿cuándo? ] versiones de SQLite pueden incluir un comando para introspectar si una columna tiene un comportamiento como el de rowid para diferenciar estas columnas de las claves primarias enteras de tipo débil que no aumentan automáticamente. [23] [ verificación fallida ]
SQLite con función Unicode completa es opcional. [24]
Varios procesos o subprocesos informáticos pueden acceder a la misma base de datos al mismo tiempo. Se pueden satisfacer varios accesos de lectura en paralelo. Un acceso de escritura solo puede satisfacerse si no se está dando servicio a otros accesos actualmente. De lo contrario, el acceso de escritura falla con un código de error (o se puede reintentar automáticamente hasta que expire un tiempo de espera configurable). Esta situación de acceso concurrente cambiaría cuando se trata de tablas temporales. Esta restricción se relaja en la versión 3.7 cuando el registro de escritura anticipada (WAL) está activado, lo que permite lecturas y escrituras simultáneas. [25]
La versión 3.6.19 publicada el 14 de octubre de 2009 agregó soporte para restricciones de clave externa. [26] [27]
La versión 3.7.4 de SQLite vio por primera vez la adición del módulo FTS4 (búsqueda de texto completo), que presenta mejoras sobre el módulo FTS3 anterior. [28] FTS4 permite a los usuarios realizar búsquedas de texto completo en documentos de forma similar a como los motores de búsqueda buscan páginas web. [29] La versión 3.8.2 agregó soporte para la creación de tablas sin rowid , [30] que puede proporcionar mejoras de espacio y rendimiento. [31] Se agregó compatibilidad con expresiones de tabla comunes a SQLite en la versión 3.8.3. [32]
En 2015, con la extensión json1 [33] y las nuevas interfaces de subtipo, la versión 3.9 de SQLite introdujo la gestión de contenido JSON .
Según la versión 3.33.0, el tamaño máximo de base de datos admitido es 281 TB.
Desarrollo y distribución
El código de SQLite está alojado en Fossil , un sistema de control de versiones distribuido que se basa en una base de datos SQLite. [34]
Se proporciona un programa de línea de comandos independiente en la distribución de SQLite. Se puede utilizar para crear una base de datos, definir tablas, insertar y cambiar filas, ejecutar consultas y administrar un archivo de base de datos SQLite. También sirve como ejemplo para escribir aplicaciones que usan la biblioteca SQLite.
SQLite utiliza pruebas de regresión automatizadas antes de cada lanzamiento. Más de 2 millones de pruebas [ cita requerida ] se ejecutan como parte de la verificación de una versión. A partir de la versión 3.6.17 de SQLite del 10 de agosto de 2009, las versiones de SQLite tienen una cobertura de prueba de rama del 100%, uno de los componentes de la cobertura del código . Las pruebas y los arneses de prueba son parcialmente de dominio público y parcialmente propietarios . [35]
Usos notables
Middleware
- El adaptador ADO.NET , desarrollado inicialmente por Robert Simpson, se mantiene junto con los desarrolladores de SQLite desde abril de 2010. [36]
- El controlador ODBC ha sido desarrollado y mantenido por separado por Christian Werner. [37] El controlador ODBC de Werner es el método de conexión recomendado para acceder a SQLite desde OpenOffice.org . [38]
- Contenedor COM ( ActiveX ) que hace que SQLite sea accesible en Windows para lenguajes de script como JScript y VBScript . Esto agrega capacidades de base de datos SQLite a aplicaciones HTML (HTA). [39]
navegadores web
- Los navegadores Google Chrome , Opera , Safari y el navegador de Android permiten almacenar información y recuperarla de una base de datos SQLite dentro del navegador, utilizando la tecnología de base de datos Web SQL , aunque esto se está volviendo rápidamente obsoleto (es decir, reemplazado por IndexedDB ) . Internamente, estos navegadores basados en Chromium utilizan bases de datos SQLite para almacenar datos de configuración como el historial de visitas al sitio, cookies, historial de descargas, etc. [40]
- Mozilla Firefox y Mozilla Thunderbird almacenan una variedad de datos de configuración (marcadores, cookies, contactos, etc.) en bases de datos SQLite administradas internamente. Hasta la versión 57 de Firefox ( "Firefox Quantum" ), había un complemento de terceros que usaba el código que respaldaba esta funcionalidad para proporcionar una interfaz de usuario para administrar bases de datos SQLite arbitrarias. [41]
- Varios complementos de terceros pueden hacer uso de las API de JavaScript para administrar bases de datos SQLite. [42] [43]
Marcos de aplicaciones web
- Laravel
- Bugzilla
- El sistema de administración de base de datos predeterminado de Django
- Drupal
- Trac
- Sistema de gestión de base de datos predeterminado de Ruby on Rails
- web2py
Varios
- Adobe Systems utiliza SQLite como formato de archivo en Adobe Photoshop Lightroom , una base de datos estándar en Adobe AIR , e internamente dentro de Adobe Reader . [15]
- Como ocurre con la mayoría del software de Apple, Apple Photos usa SQLite bajo el capó. [44]
- Audacity utiliza SQLite como formato de archivo, a partir de la versión 3.0.0. [45]
- Evernote usa SQLite para almacenar su repositorio de base de datos local en Windows.
- Skype [46]
- La utilidad de gestión de servicios , que se utiliza para la gestión de servicios dentro de los sistemas operativos Solaris y OpenSolaris .
- Flame (malware)
- Sistema de navegación por satélite BMW IDrive
- Sistemas GPS TomTom , para los datos de mapas NDS
Sistemas operativos
SQLite se incluye de forma predeterminada en: [15]
- BlackBerry 10 OS de Blackberry
- Sistema operativo Symbian
- Maemo de Nokia
- Android de Google
- MeeGo de la Fundación Linux
- WebOS de LG
- NetBSD
- FreeBSD, donde a partir de la versión 10-RELEASE en enero de 2014, es utilizado por el sistema central de gestión de paquetes.
- Ilumina
- Oracle Solaris 10, donde la base de datos de Service Management Facility se serializa para el arranque.
- Apple lo adoptó como una opción en la API Core Data de macOS desde la implementación original en Mac OS X 10.4 en adelante, y también para la administración de videos y canciones, y en iOS para el almacenamiento de mensajes de texto en el iPhone . [47]
- MorphOS desde la versión 3.10
- Tizen
- Windows 10 [48]
Soporte de lenguaje de programación
Existen enlaces de lenguaje a SQLite para una gran cantidad de lenguajes de programación , que incluyen:
- Ada [49]
- AutoIt [50]
- varios dialectos de BASIC incluyendo FreeBASIC , PureBasic , RFO BASIC! , Visual Basic y Xojo
- C
- C#
- C ++
- Clipper / Puerto
- Rizo
- D
- Delphi
- Elixir
- Emacs Lisp [51]
- F # [52]
- Ir
- Haskell
- Haxe
- Java (en JVM y DVM )
- JavaScript [53]
- Julia
- Dialectos Lisp como Common Lisp , newLisp , OpenLisp
- Transcripción (en LiveCode )
- LabVIEW
- Lua
- MATLAB
- Nim
- Objective-C (en macOS e iOS )
- OCaml
- varios sabores de Pascal, incluidos Free Pascal , Component Pascal y Delphi
- Perl [54]
- PHP
- Lucio
- Python [55]
- R
- Raqueta [56]
- REBOL
- Rubí [57]
- Óxido [58]
- Esquema
- Charla
- Swift (en macOS e iOS )
- Tcl
- Xojo
Ver también
- Comparación de sistemas de gestión de bases de datos relacionales
- Lista de sistemas de gestión de bases de datos relacionales
- SpatiaLite
- Cumplimiento de SQL
Referencias
Citas
- ^ "SQLite versión 3.35.5 el 19 de abril de 2021" . Consultado el 20 de abril de 2021 .
- ^ "Copyright de SQLite" . sqlite.org . Consultado el 17 de mayo de 2010 .
- ^ "Tipo de medio de formato de archivo de base de datos SQLite en IANA" . Autoridad de Números Asignados de Internet . IANA . Consultado el 8 de marzo de 2019 .
- ^ "Por qué SQLite tuvo éxito como base de datos - Richard Hipp, creador de SQLite" . El registro de cambios . Episodio 201. El evento ocurre a las 00:17:25.
¿Cómo pronuncio el nombre del producto? Digo SQL-ite, como un mineral.
- ^ D. Richard Hipp (presentador) (31 de mayo de 2006). Introducción a SQLite (video) . El evento de Google Inc. ocurre a las 00:01:14 . Consultado el 23 de marzo de 2010 .
[...] ess-kju-ellite [...]
- ^ D. Richard Hipp (presentador) (31 de mayo de 2006). Introducción a SQLite . El evento de Google Inc. ocurre a las 00:48:15 . Consultado el 23 de marzo de 2010 .
[...] secuela [...]
- ^ Owens, Michael (2006). "Capítulo 4: SQL". En Gilmore, Jason; Thomas, Keir (eds.). La guía definitiva de SQLite . D. Richard Hipp (prólogo), Preston Hagar (revisor técnico). Presione . pag. 133. ISBN 978-1-59059-673-9. Consultado el 30 de diciembre de 2014 .
- ^ "Estimaciones de bases de datos SQL más ampliamente implementadas" . SQLite.org . Consultado el 11 de mayo de 2011 .
- ^ "SQLite es una base de datos de configuración cero" . SQLite.org . Consultado el 3 de agosto de 2015 .
- ^ "Usos apropiados para SQLite" . SQLite.org . Consultado el 3 de septiembre de 2015 .
- ^ "PGCon 2014: Clustering y VODKA" . Lwn.net . Consultado el 6 de enero de 2017 .
- ^ "PGCon2014: SQLite: protegido de PostgreSQL" . Pgcon.org . Consultado el 6 de enero de 2017 .
- ^ a b "SQLite: StrictMode" . Sqlite.org . Consultado el 3 de septiembre de 2015 .
- ^ a b Owens, Michael (2006). La guía definitiva de SQLite . Presione . doi : 10.1007 / 978-1-4302-0172-4_1 . ISBN 978-1-59059-673-9.
- ^ a b c "Usuarios conocidos de SQLite" . SQLite . Consultado el 5 de agosto de 2015 .
- ^ "Entrevista: Richard Hipp sobre UnQL, un nuevo lenguaje de consulta para bases de datos de documentos" . InfoQ. 4 de agosto de 2011 . Consultado el 5 de octubre de 2011 .
- ^ "Formato de almacenamiento recomendado por LoC" . www.sqlite.org . Consultado el 9 de abril de 2020 .
- ^ "SQLite, versión 3" . www.loc.gov . 2017-03-28 . Consultado el 9 de abril de 2020 .
- ^ "Declaración de formatos recomendados - conjuntos de datos / bases de datos" . Biblioteca del Congreso . Consultado el 9 de abril de 2020 .
- ^ "Funciones SQL que SQLite no implementa" . SQLite.org. 1 de enero de 2009 . Consultado el 14 de octubre de 2009 .
- ^ https://www.sqlite.org/changes.html
- ^ "SQL entendido por SQLite" . SQLite . Consultado el 21 de mayo de 2018 .
La búsqueda de un registro con un identificador de fila específico, o de todos los registros con un identificador de fila dentro de un rango especificado, es aproximadamente el doble de rápido que una búsqueda similar realizada al especificar cualquier otra CLAVE PRIMARIA o valor indexado.
- ^ "SQLite: registro [2494132a]" . www.sqlite.org . 2017-11-28.
Agregue el comando "PRAGMA table_ipk (TABLE)" para fines de evaluación.
- ^ "La coincidencia de caracteres Unicode que no distingue entre mayúsculas y minúsculas no funciona" . Preguntas frecuentes sobre SQLite . Consultado el 3 de septiembre de 2015 .
- ^ "Escribir por adelantado el registro en SQLite 3.7" . SQLite.org . Consultado el 3 de septiembre de 2011 .
WAL proporciona más concurrencia ya que los lectores no bloquean a los escritores y un escritor no bloquea a los lectores. La lectura y la escritura pueden realizarse al mismo tiempo.
- ^ Karwin, Bill (mayo de 2010). Carter, Jacquelyn (ed.). Antipatrones SQL: evitar las trampas de la programación de bases de datos . La estantería pragmática. pag. 70. ISBN 978-1-934356-55-5.
A veces se ve obligado a usar una marca de base de datos que no admite restricciones de clave externa (por ejemplo, el motor de almacenamiento MyISAM de MySQL o SQLite antes de la versión 3.6.19).
- ^ "SQLite versión 3.6.19 el 14 de octubre de 2009" .
- ^ "Versión 3.7.4 de SQLite el 08-12-2010" . SQLite.org. 8 de diciembre de 2010 . Consultado el 3 de septiembre de 2015 .
- ^ "Extensiones SQLite FTS3 y FTS4" . SQLite.org . Consultado el 3 de septiembre de 2015 .
- ^ "SQLite Release 3.8.2 el 2013-12-06" . SQLite.org. 6 de diciembre de 2013 . Consultado el 3 de septiembre de 2015 .
- ^ "La optimización SIN ROWID" . SQLite.org . Consultado el 3 de septiembre de 2015 .
- ^ "Versión de SQLite 3.8.3 en 2014-02-03" . SQLite.org. 3 de febrero de 2014 . Consultado el 3 de septiembre de 2015 .
- ^ "La extensión JSON1" . SQLite.org .
- ^ "Fossil: Fossil Performance" . Fossil-scm.org. 23 de agosto de 2009 . Consultado el 12 de septiembre de 2009 .
- ^ "Cómo se prueba SQLite" . SQLite.org . Consultado el 12 de septiembre de 2009 .
- ^ "Inicio" . System.Data.SQLite . 2016-12-30 . Consultado el 6 de enero de 2017 .
- ^ "Controlador ODBC de SQLite" . Ch-werner.de . 2016-12-01 . Consultado el 6 de enero de 2017 .
- ^ "Uso de la base de datos SQLite con OpenOffice.org: versión 2.0" (PDF) . Documentation.openoffice.org . Consultado el 6 de enero de 2017 .
- ^ "sqlite - Contenedores de Sqlite" . SQLite.org. 7 de febrero de 2009 . Consultado el 7 de febrero de 2009 .
- ^ "Ubicación del historial de Google Chrome" . www.foxtonforensics.com . 2020-10-06 . Consultado el 6 de octubre de 2020 .
- ^ "Administrador de SQLite :: Complementos para Firefox" . Addons.mozilla.org . 2015-02-28 . Consultado el 6 de enero de 2017 .
- ^ "SQLite Manager - Obtenga esta extensión para 🦊 Firefox (en-US)" . Addons.mozilla.org . 2018-07-24 . Consultado el 5 de octubre de 2018 .
- ^ "SQLite Reader: obtenga esta extensión para 🦊 Firefox (en-US)" . Addons.mozilla.org . 2018-09-01 . Consultado el 5 de octubre de 2018 .
- ^ "Usando SQL para encontrar mi mejor foto de un pelícano según Apple Photo" . Weblog de Simon Willison . Consultado el 23 de mayo de 2020 .
- ^ "Lanzamiento de Audacity 3.0.0" . Consultado el 17 de marzo de 2021 .
- ^ Hinegardner, Jeremy (28 de agosto de 2007). "¿Cliente de Skype usando SQLite?" . sqlite-users (lista de correo). Archivado desde el original el 17 de noviembre de 2007 . Consultado el 14 de junio de 2010 .
- ^ "Mostrar lista de historial de descargas de todos los archivos descargados en Mac OS X" . Osxdaily.com . 2012-07-12 . Consultado el 6 de enero de 2017 .
- ^ "Bases de datos SQLite" . msdn.microsoft.com . 2016-09-19 . Consultado el 6 de enero de 2017 .
- ^ "Programación Ada / Bibliotecas / Base de datos" .
- ^ "Funciones definidas por el usuario" . Autoitscript.com . Consultado el 6 de enero de 2017 .
- ^ "API SQLite3 para GNU Emacs 25+" . github.com . Consultado el 2 de octubre de 2017 .
- ^ Ross McKinlay; Colin Bull. "SQLProvider" . Fsprojects.github.io . Consultado el 6 de enero de 2017 .
- ^ "Archivo de código de Google - almacenamiento a largo plazo para el alojamiento de proyectos de código de Google" . Code.google.com . Consultado el 6 de enero de 2017 .
- ^ Adam Kennedy. "DBD :: SQLite - RDBMS autónomo en un controlador DBI" . Metacpan.org . Consultado el 6 de enero de 2017 .
- ^ "Documentos de Python" . docs.python.org . Consultado el 3 de agosto de 2020 .
- ^ "DB: Conectividad de bases de datos" . docs.racket-lang.org . Consultado el 7 de abril de 2020 .
- ^ "RubyForge: SQLite-Ruby: información del proyecto" . Archivado desde el original el 17 de abril de 2010 . Consultado el 3 de abril de 2010 .
- ^ "Rusqlite - una envoltura ergonómica para usar SQLite de Rust" .
Fuentes
- Allen, Grant; Owens, Mike (5 de noviembre de 2010). La guía definitiva de SQLite (2ª ed.). Presione . pag. 368. ISBN 978-1-4302-3225-4.
- Kreibich, Jay A. (17 de agosto de 2010). Usando SQLite (1ª ed.). O'Reilly Media . pag. 528. ISBN 978-0-596-52118-9.
- Newman, Chris (9 de noviembre de 2004). SQLite (Biblioteca del desarrollador) (1ª ed.). Sams . pag. 336. ISBN 0-672-32685-X.
enlaces externos
- Página web oficial
- SQLite en Curlie
- Una introducción a SQLite en YouTube por D. Richard Hipp en Google
- Tutorial de SQLite
- SQLite en Devopedia
- Aprenda SQLite