Uno de los principios fundamentales de las bases de datos SQL
es el esquema: una declaración formal de la manera en la que la
base de datos está organizada.
El esquema se refleja en las instrucciones de
SQL que utilizas para crear la base de datos.
La clase de contratos es un
contenedor de constantes que
definen nombres de URI, tablas y
columnas.
Esta clase te permite utilizar las mismas
constantes en todas las otras clases del
mismo paquete
Puedes cambiar el nombre de una columna en un lugar
Puedes propagar ese cambio en todo el código.
Una forma adecuada de organizar una clase de
contratos consiste en incluir definiciones que sean
globales para toda la base de datos en el nivel raíz
de la clase.
se debe crear una clase interna para cada tabla.
Cómo crear una base de datos con un asistente de SQL
Una vez que hayas definido el aspecto de tu base de datos, debes implementar
métodos que creen y mantengan la base de datos y las tablas.
Android almacena tu base de datos en la carpeta privada de tu app.
Los datos están seguros porque, de forma predeterminada, esta área
no es accesible para otros usuarios y apps.
La clase SQLiteOpenHelper contiene un conjunto útil de API para administrar
tu base de datos. Lo único que debes hacer es llamar a
getWritableDatabase() o getReadableDatabase().
Si deseas usar SQLiteOpenHelper, crea una subclase que
anule los métodos de devolución de llamada onCreate() y
onUpgrade(). También puedes implementar los métodos
onDowngrade() o onOpen(), pero no son obligatorios.
Cómo ingresar información en una base de datos
El primer argumento de insert() es
simplemente el nombre de la tabla.
El segundo argumento le
indica al framework qué
hacer en caso de que
ContentValues esté vacío
(es decir, si no incluiste
ningún valor con put). Si
especificas el nombre de
una columna, el
framework inserta una
fila y establece el valor
de esa columna como
nulo. Si especificas null,
como en esta muestra de
código, el framework no
insertará una fila cuando
no haya valores
Cómo leer información de una base de datos
Para leer desde una base de datos, usa el método query(), pasando los
criterios de selección y columnas deseadas. El método combina
elementos de insert() y update(), excepto que la lista de columnas define
los datos que deseas recuperar (la "proyección") en lugar de datos para
insertar. Los resultados de la consulta se muestran en un objeto Cursor.
El tercer y el cuarto argumento (selection y selectionArgs) se combinan para crear
una cláusula WHERE. Como los argumentos se proporcionan por separado de la
consulta de selección, se escapan antes de combinarse, lo que hace que tus
instrucciones de selección sean inmunes a la inserción SQL
Cómo borrar información de una base
de datos
Debes proporcionar criterios de selección que identifiquen las filas para
el método delete(). El mecanismo funciona igual que los argumentos de
selección del método query(). Divide la especificación de selección en
una cláusula de selección y argumentos de selección. La cláusula define
las columnas que se comprobarán y también permite combinar
pruebas de columnas. Los argumentos son valores para probar que
están vinculados a la cláusula. Como el resultado no se controla del
mismo modo que una instrucción SQL normal, es inmune a la inyección
de SQL.