Red de conocimiento informático - Conocimiento informático - Cómo configurar sqlite

Cómo configurar sqlite

¡Hola! Estaré feliz de responder preguntas como esta para usted. Consulte los siguientes métodos específicos:

1 Introducción. SQLite

SQLite es una base de datos ligera y un sistema de gestión de bases de datos relacionales que cumple con ACID. Está diseñado para uso integrado y actualmente se utiliza en muchos productos integrados. Ocupa recursos muy bajos. En dispositivos integrados, es posible que solo requiera unos pocos cientos de K de memoria.

Puede admitir sistemas operativos convencionales como Windows/Linux/Unix, y puede combinarse con una variedad de lenguajes de programación, como Tcl, PHP, Java, C++. Interfaces de red y ODBC. De manera similar, en comparación con Mysql y PostgreSQL, dos sistemas de administración de bases de datos de código abierto de fama mundial, su velocidad de procesamiento también es más rápida que ellos.

Características de 2.2. SQLite:

Reproductor liviano

A diferencia del software de base de datos en modo C/S, SQLite es un motor de base de datos en proceso, por lo que no hay un cliente o servidor de base de datos. Para utilizar SQLite, generalmente sólo necesitas traer una de sus bibliotecas dinámicas para disfrutar de todas sus funciones.

Además, el tamaño de la biblioteca dinámica es bastante pequeño. Tomando la versión 3.6.11 como ejemplo, tiene 487 KB en Windows y 347 KB en Linux.

No se requiere "instalación"

El motor central propio de SQLite no depende de software de terceros y no requiere "instalación". Es algo así como una aplicación portátil.

Fila única

Toda la información de la base de datos (como tablas, vistas, etc.) está contenida en un archivo. Este archivo se puede copiar a otros directorios u otras máquinas a voluntad.

Multiplataforma/portabilidad

Además de los principales sistemas operativos Windows y Linux, SQLite también admite algunos otros sistemas operativos poco comunes.

Campos débilmente tipificados

Los datos de una misma columna pueden ser de diferentes tipos.

Código fuente abierto

3.Tipo de datos SQLite

Los datos generales utilizan tipos de datos estáticos fijos, mientras que SQLite utiliza tipos de datos dinámicos, que se cambiarán según El valor almacenado. SQLite tiene los siguientes cinco tipos de datos comunes:

nulo: el valor es NULL.

VARCHAR(n): una cadena de longitud variable, con una longitud máxima de n, donde n no puede exceder 4000.

CHAR(n): una cadena de longitud fija n, n no puede exceder 254.

ENTERO: El valor se identifica como un número entero, el cual se puede almacenar como 1, 2, 3, 4, 5, 6, 7 u 8 según el tamaño del valor.

REAL: Todos los valores son valores de punto flotante, almacenados como números de secuencia de etiquetas de punto flotante IEEE de 8 bytes.

Texto: El valor es una cadena de texto, almacenada en la codificación de la base de datos (tutf-8, UTF-16be o UTF-16-le).

BLOB: El valor es un bloque de datos BLOB, almacenado en el formato de datos de entrada. Cómo ingresar, cómo almacenar, sin cambiar el formato.

Datos: Contiene año, mes y día.

Tiempo: incluye horas, minutos y segundos.

Dos. Introducción a SQLiteDatabase

Android proporciona una API para crear y utilizar bases de datos SQLite. SQLiteDatabase representa un objeto de base de datos y proporciona algunos métodos para operar la base de datos. Existe la herramienta sqlite3 en el directorio SDK de Android. Podemos usarla para crear bases de datos, crear tablas y ejecutar algunas declaraciones SQL. Los siguientes son métodos comunes de SQLiteDatabase.

Métodos comunes de SQLiteDatabase

Nombre del método

Método para expresar significado

openOrCreateDatabase(ruta de cadena, SQLiteDatabase.

CursorFactory factory)

Abrir o crear base de datos

Insertar (tabla de cadenas, cadena nullColumnHack, valor de valor de contenido)

Insertar registro

eliminar (tabla de cadenas, cláusula de cadena donde, cadena[] dondeArgs)

Eliminar registro

Consulta (tabla de cadenas, columna de cadena[], selección de cadena, cadena [] seleccione Args, agrupación de cadenas por, cadena teniendo, cadena ordenando por)

Registro de consulta

actualización (tabla de cadenas, valor de valor de contenido, cadena cláusula donde, cadena [] argumentos donde)

Correcto registrar

execSQL(String SQL)

Ejecutar sentencia SQL

Close()

Cerrar la base de datos

Google da a estos métodos nombres muy llamativos. Por ejemplo, openOrCreateDatabase, del significado literal en inglés, podemos ver que esta es una forma de abrir o crear una base de datos.

1. Abrir o crear una base de datos

Utilice el método estático OpenOrchestrated Database (ruta de cadena, SQLiteDatabase) para abrir o crear una base de datos en Android. Fábrica de cursores).

Detectará automáticamente si la base de datos existe, la abrirá si existe y creará una base de datos si no existe; si la creación es exitosa, devolverá el objeto SQLiteDatabase; de ​​lo contrario, arrojará un objeto. excepción FileNotFoundException.

El siguiente es el código para crear una base de datos llamada "stu.db":

openOrCreateDatabase(Ruta de cadena, fábrica SQLiteDatabae.CursorFactory)

Parámetro 1 base de datos Crear ruta

El parámetro 2 normalmente está vacío.

Por ejemplo: db = sqlitedatabase . openorcreatedatabase("/data/data/com . lingdu DuDu . db/databases/stu . db ", null

2.

Los pasos para crear una tabla son muy simples:

Escribe sentencias SQL para crear tablas.

Llame al método execSQL() de SQLiteDatabase para ejecutar la instrucción SQL.

El siguiente código crea una tabla de usuarios con las columnas de atributos: id (clave principal y aumento automático), sname (nombre del estudiante) y snumber (número de estudiante).

Ver código

3. Insertar datos

ContentValues ​​es un mecanismo de almacenamiento comúnmente utilizado en operaciones de bases de datos. Sólo se pueden almacenar tipos básicos.

Hay dos métodos para insertar datos:

①①Método de inserción de base de datos SQLite (tabla de cadenas, hack de columna nula de cadena, valores de contenido)

Nombre de la tabla del parámetro 1,

p>

El valor predeterminado de la columna vacía del parámetro 2

Un mapa; el parámetro de tipo 3 ContentValues ​​​​que encapsula el nombre de la columna y el valor de la columna;

Ver código

(2) Escriba una declaración SQL para insertar datos y llame directamente al método execSQL() de SQLiteDatabase para ejecutar.

Ver código

4. Eliminar datos

Hay dos formas de eliminar datos:

①Llamar a eliminar (tabla de cadenas) de SQLiteDatabase , cadena donde cláusula, cadena [] donde argumentos) método.

Nombre de la tabla del parámetro 1

Condición de eliminación del parámetro 2

Matriz de valores de la condición de eliminación del parámetro 3

Ver código

(2) Escriba una declaración SQL de eliminación y llame al método execSQL() de SQLiteDatabase para eliminarla.

Ver código

5. Modificar datos

Hay dos formas de modificar datos:

①Llamar a la actualización de SQLiteDatabase (tabla de cadenas, contenido). valores valores, cadena donde cláusula, cadena [] donde args) método.

Nombre de la tabla del parámetro 1

Parámetro 2 en filas y columnas y pares clave-valor de tipo ContentValues.

Condición de actualización del parámetro 3 (instrucción donde)

Matriz de condiciones de actualización del parámetro 4

Ver código

②Escriba una declaración SQL actualizada, llame ExecSQL de SQLiteDatabase para actualizar.

Ver código

6. Consultar datos

En Android, la consulta de datos se implementa a través de la clase Cursor. Cuando usamos el método SQLiteDatabase.query(), obtendremos un objeto de cursor que apunta a cada dato. Proporciona muchos métodos de consulta, los métodos específicos son los siguientes:

Consulta de cursor público (tabla de cadenas, columna de cadena [], selección de cadena, selección de cadena [] Args, cadena groupBy, cadena que tiene, cadena orderBy, límite de cadena);

Descripción del significado de cada parámetro:

Tabla de parámetros: nombre de la tabla.

Columna de parámetros: matriz de nombres de columnas.

Selección de parámetros: oración condicional, equivalente a dónde.

Argumentos de selección de parámetros: oración condicional, matriz de parámetros

Parámetro groupBy: columna de agrupación

Los parámetros incluyen: condición de agrupación

Parámetro orderBy: Ordenar columna.

Restricciones de parámetros: restricciones de consultas de paginación.

Cursor de parámetro: valor de retorno, equivalente a ResultSet.

Cursor es una interfaz de cursor que proporciona métodos para recorrer los resultados de una consulta, como el método de puntero de movimiento move() y el método de valor de columna getString().

Métodos comunes del cursor

Nombre del método

Descripción del método

getCount()

Obtener elementos de datos número total

isFirst()

Juzga si el primer registro es

islast()

Juzga el último registro.

moveToFirst()

Mover al primer registro

moveToLast()

Mover al último registro

Mover (desplazamiento entero)

Mover al registro especificado

moveToNext()

Mover al siguiente registro

moveToPrevious( )

Mover al registro anterior

getColumnIndexOrThrow(nombre de la columna de cadena)

Obtener el índice de la columna según el nombre de la columna

getInt( int Índice de columna)

Obtiene el valor int del índice de columna especificado.

getString(int columnIndex)

Obtiene el valor de cadena de la columna miniatura especificada.

El siguiente es un cursor utilizado para consultar datos en la base de datos. El código específico es el siguiente:

Ver código

7. Eliminar la tabla especificada

Escriba una declaración SQL para insertar datos y llame directamente a execSQL( ) método de SQLiteDatabase a ejecutar.

Ver código

3.

SQLiteOpenHelper

Esta clase es una clase auxiliar de SQLiteDatabase. Esta clase se utiliza principalmente para generar una base de datos y administrar la versión de la base de datos.

Al llamar al método getWritableDatabase() o getReadableDatabase() de esta clase en el programa, si no hay datos en ese momento, el sistema Android generará automáticamente una base de datos.

SQLiteOpenHelper es una clase abstracta. Normalmente necesitamos heredarla e implementar tres funciones en ella:

1.oncreate(base de datos SQLite)

Este método. Se llamará cuando la base de datos se genere por primera vez, lo que significa que solo se llamará cuando se cree la base de datos. Por supuesto, hay otras situaciones. Normalmente, utilizamos este método para generar tablas de bases de datos.

2.onUpgrade(SQLiteDatabase, int, int)

Cuando es necesario actualizar la base de datos, el sistema Android llamará activamente a este método. Por lo general, eliminamos la tabla de datos y creamos una nueva tabla de datos en este método. Por supuesto, si necesitamos realizar otras operaciones depende completamente de los requisitos de la aplicación.

3.onOpen(SQLiteDatabase):

Esta es la función de devolución de llamada al abrir la base de datos y no se usa comúnmente en programas.

Después de haber escrito tanto, utilizo ejemplos prácticos para ilustrar lo anterior.

Los siguientes ejemplos de operaciones de bases de datos implementan las operaciones de crear una base de datos, crear una tabla y agregar, eliminar y verificar una base de datos.

Esta instancia tiene dos clases:

Clase de depuración Com.lingdududu.testSQLite

com.lingdududu.testSQLiteDb clase auxiliar de base de datos

SQLiteActivity .java

Ver código

StuDBHelper.java

Ver código

main.xml

Ver código

Representación de la operación del programa:

Utilice el comando adb para ver la base de datos:

1. Ingrese adb shell enter en la ventana de línea de comando e ingresará el Comando de Linux OK. Ahora puedes usar los comandos de Linux.

2. Presione Enter para mostrar todo, incluido un dato.

3. Ingrese los datos del CD, luego ingrese ls, ingrese los datos del CD. Después de ingresar ls, verá muchos com............, que están activados. el sistema. El nombre del paquete de la aplicación. Busque el nombre del paquete del programa de base de datos e ingréselo.

4. Después de ingresar, verá una base de datos. Cuando ingresa a su base de datos y muestra todo, encontrará el nombre de su base de datos. Aquí se utiliza "stu_db".

5. Ingrese SQLite3Stu_DB para ingresar a su base de datos, y luego ".schema" verá todas las tablas y declaraciones de creación de tablas de la aplicación.

6. Luego, puede utilizar declaraciones SQL estándar para ver la base de datos recién generada y agregar, eliminar y consultar datos.

Nota: ls, cd y otros comandos son comandos básicos de Linux. Los estudiantes que no lo sepan pueden consultar esta información.

Los siguientes son varios comandos adb comúnmente utilizados en SQLite:

Examen

. La base de datos muestra información de la base de datos;

. tablas muestra el nombre de la tabla;

. Al crear una tabla de datos, el comando de esquema se puede utilizar para ver comandos SQL;

.

esquema nombre_tabla Ver el comando SQL al crear la tabla nombre_tabla;

Insertar registro

Insertar valor nombre_tabla (campo 1, campo 2, campo 3...);

Consulta

seleccione * de la tabla _ nombre para ver todos los registros en la tabla nombre_tabla;

seleccione * de la tabla _ nombre donde campo 1 = 'xxxxx'; condiciones especificadas Registro;

Eliminar

Eliminar nombre de tabla; eliminar tabla;

Eliminar nombre_índice eliminar índice;

-consultar, insertar, Eliminar etc , y recuerda no omitir sentencias que operen la base de datos -

# sqlite3 stu_db

sqlite3 stu_db

SQLite versión 3.6.22

Ingrese ".help" para obtener instrucciones

Ingrese una declaración SQL que termine en ";"

sqlite>. Un esquema de un plan o teoría

. (Plan o teoría) esquema

Crear tabla android_metadata (texto local);

Crear tabla stu_table (id int, sname varchar (20), sage int, ssex varchar (10)) );-& gt;Tabla creada

sqlite & gtselect * de stu_table

select* de stu_table

1 |Xiao Ming| Hombre

sqlite & gt

Insertar datos

sqlite & gt insertar en valor stu_table (2, 'Little Red', 20, 'Female'); /p>

Recuerde insertar datos que correspondan a los atributos de la tabla.

Insertar en stu_table valor (2, '小红', 20, 'female');

sqlite & gtselect * from stu_table

select * de stu_table

1 |Xiao Ming| 21 |Hombre

2 |Xiao Hong| 20 |Mujer-& gt;Datos insertados

sqlite & gt

Cuando haces clic en el botón para modificar los datos

sqlite & gtselect * from stu_table

select * from stu_table

1 |Xiao Ming| 23 |Hombre->La edad se cambia a 23 años.

2 |小红| 20 |Mujer

sqlite & gt

Cuando haces clic en el botón eliminar datos.

sqlite & gtselect * de stu _ table

select * de stu _ table

1 |Xiao Ming 23 |Los datos de male id=2 tienen sido eliminado.

En resumen, podemos agregar, eliminar, modificar y consultar la base de datos en el código, o podemos completarla bajo la línea de comando adb. Sin embargo, dado que SQLite no tiene un cliente y no puede ver directamente la información de cambios de la base de datos, la línea de comando adb se usa a menudo para ver la información de cambios de la base de datos.

Las bases de datos y tablas utilizadas anteriormente fueron creadas en código. A continuación se explica cómo utilizar una base de datos externa existente:

Primero utilice la herramienta de administración SQLite. El funcionamiento específico de sqliteadmin es muy simple y no se presentará en detalle aquí. Sin embargo, hay una cosa que vale la pena señalar.

Al crear una base de datos con sqliteadmin, la ruta para guardar la base de datos no puede ser una ruta china. Aparecerá el siguiente mensaje de error en la ruta china:

Creé la base de datos StuDB en sqliteadmin:

<. p>Haga clic en el nombre del paquete /Importar la base de datos creada a los datos/datos/programa de DDMS.