Red de conocimiento informático - Material del sitio web - Cómo usar SQLite en Android, mejores prácticas para SQLite

Cómo usar SQLite en Android, mejores prácticas para SQLite

SQLite3 es la última versión de SQLite. El código fuente de SQLite3 se puede descargar del sitio web (la versión utilizada en este libro es sqlite-3.6.12.tar.gz).

Después de la descompresión, ingrese al directorio raíz de sqlite-3.6.12, primero ejecute el comando "./configure" para generar el Makefile, luego ejecute el comando "make" para compilar el código fuente y finalmente Ejecute el comando "make install" para instalar SQLite3. Después de instalar SQLite3, puede ejecutar el comando sqlite3 para verificar si SQLite3 está funcionando correctamente, como se muestra a continuación:

[root@localhost ~]# sqlite3

SQLite versión 3.6.12

Ingrese ".help" para obtener instrucciones

Ingrese la instrucción SQL que termina en ";"

sqlitegt;

Como puede ver, después de que se inicie SQLite3, permanecerá en el indicador sqlitegt, esperando que el usuario ingrese una declaración SQL.

Antes de utilizar SQLite3, es necesario comprender los tipos de datos admitidos por SQLite3.

NULL

NUMÉRICO

INTEGER

REAL

TEXTO

SQLite3 automáticamente Convierta todos los datos en SQLite3 en un solo archivo.

SQLite3 convertirá automáticamente otros tipos de datos en los cinco tipos de datos básicos anteriores. Las reglas de conversión son las siguientes:

char, clob, test, varchar-gt

integer-gt; INTEGER<

real, double, float-gt; REAL

blob-gt

Los tipos de datos restantes son convertido a NUMÉRICO

A continuación se utiliza un ejemplo para demostrar cómo utilizar SQLite3.

Crear una nueva base de datos

Crear una nueva base de datos test.db (el sufijo .db se usa para identificar el archivo de la base de datos). Cree una nueva tabla test_table en test.db con tres columnas de nombre, sexo y edad. El funcionamiento de SQLite3 es el siguiente:

[root@localhost home]# sqlite3 test.db

SQLite versión 3.6.12

Ingrese ".help" para obtener instrucciones

Ingrese la declaración SQL que termina en "; "

sqlitegt; cree la tabla test_table(nombre, sexo, edad

Si la base de datos prueba); .db ya existe, entonces el comando "sqlite3"(root@localhost home)# sqlite3 test.db

El funcionamiento de SQLite3 es el siguiente. Si la base de datos test.db no existe, el comando ". sqlite3 test.db" abrirá la prueba en el directorio actual. .db. Para mejorar la eficiencia, SQLite3 no crea test.db inmediatamente, sino que espera hasta que se cree la primera tabla antes de crear físicamente la base de datos.

Debido a que SQLite3 puede cambiar dinámicamente el tipo de una columna según el tipo de datos realmente insertados, no es necesario proporcionar el tipo de columna en la declaración de creación.

Crear un índice

Para acelerar las búsquedas de tablas, los índices generalmente se agregan a la clave principal. A continuación se muestra el proceso de agregar un índice en la columna de nombre.

sqlitegt; crear índice test_index en test_table(name);

Manipulación de datos

A continuación se muestra el proceso de inserción, actualización y eliminación de datos en test_table:

sqlitegt.insert en valores test_table ('xiaoming', 'masculino', 20);

sqlitegt; inserte en valores test_table ('xiaohong', 'female', 18);

sqlitegt; seleccione * de test_table;

xiaoming|hombre|20

xiaohong|mujer|18

sqlitegt; actualizar test_table establecer edad = 19 donde nombre = ' xiaohong';

sqlitegt;select * from test_table;

xiaoming|masculino|20

xiaohong|female| 19

sqlitegt; eliminar de test_table donde nombre = 'xiaoming';

sqlitegt; seleccionar * de test_table;

xiaohong|female|19

Operaciones de base de datos por lotes

Las siguientes son operaciones por lotes en la base de datos test_table. Inserte dos registros consecutivos:

sqlitegt; comenzar;

sqlitegt; insertar en valores de test_table ('xiaoxue', 'female',

); sqlitegt; insertar en los valores de la tabla de prueba ('xiaoliu', 'masculino', 20);

sqlitegt;

xiaoxue|hombre|19

xiaoxue|hombre|18

xiaoliu|hombre|20

Antes de escribir los datos insertados en la base de datos, ejecute el comando de confirmación.

Importar y exportar base de datos

Como se muestra a continuación, test.db se exporta como un archivo SQL:

[root@localhost home]# sqlite3 test.db " .dump" gt; test.sql;

El contenido del archivo test.sql es el siguiente:

BEGIN TRANSACTION;

CREAR TABLA test_table(nombre, sexo, edad);

INSERT INTO "test_table" VALUES('xiaohong', 'female',

CREAR); INDEX test_index en test_table(name );

COMMIT;

A continuación se muestra el contenido del archivo test.sql importado (el contenido del archivo test.sql original se muestra a continuación) . archivo sql (elimine el test.db original antes de importar):

[root@localhost home]# sqlite3 test.db lt;

Importando y exportando test. Archivo SQL, que puede realizar la copia de seguridad de los archivos de la base de datos.

11.2.2 Interfaz SQLite3 C

Lo anterior describe cómo operar la base de datos SQLite3 a través de comandos. De hecho, suele ser la aplicación la que necesita acceder a la base de datos. Con este fin, SQLite3 proporciona interfaces para múltiples lenguajes de programación (este libro presenta la interfaz del lenguaje C). SQLite3 tiene docenas de interfaces en lenguaje C. A continuación se muestran algunas interfaces en lenguaje C de uso común.

sqlite_open

Función: Abrir base de datos SQLite3

Prototipo: int sqlite3_open(const char *dbname, sqlite3 **db)

Parámetros :

dbname: nombre de la base de datos

db: identificador de la base de datos;

sqlite_close

Propósito: cerrar la base de datos SQLite3

Prototipo: int sqlite_close(sqlite3 *db)

Ejemplo:

test.c:

#include lt; stdio.hgt;

#include lt;sqlite3.hgt;

static sqlite3 *db=NULL;

int main()

{

int rc;

rc= sqlite3 _open("test.db", amp;db);

if(rc)

{

printf("¡No se puede abrir la base de datos!\n");

}

else

{

printf ( "¡Abrir base de datos exitosa!\n");

}

sqlite3_close(db);

devuelve 0;

}< / p>

Ejecute el comando "gcc -o test test.c -lsqlite3 " para compilar. Los resultados de ejecutar la prueba son los siguientes:

[root@localhost home]# abrir base de datos exitosa. !

sqlite_exec

Rol: Ejecutar sentencias SQL

Prototipo: int sqlite3_exec(sqlite3 *db, const char *sql, int (*callback)(void* , int, char **, char**), void *, char **errmsg)

Parámetros:

db: base de datos

sql: SQL; declaración;

p>

devolución de llamada: reversión;

errmsg: mensaje de error

Ejemplo:

test.c:

#include lt;stdio.hgt;

# include lt;sqlite3.hgt;

sqlite3 estático *db=NULL;

carácter estático *errmsg=NULL;

int main()

{

int rc;

rc = sqlite3_open("test. db", amp;db);