Tecnología

Inicio

Tipos ENUM en SQLite

Tipos ENUM en SQLite


El gestor de bases de datos SQLite viene equipado con un amplio conjunto de características en una biblioteca de software pequeña - menos de 350KB. Esto se logra la eficiencia, en parte, a través de compromisos en sus tipos de datos; por ejemplo, se apoya entero, carácter y campos BLOB pero no ENUM. Puede solucionar la limitación ENUM y lograr gran parte de la misma funcionalidad mediante la explotación de otras características de SQLite y por medio de programas de aplicación cuidadosa.

Tipo de datos ENUM

Cuando se crea un enumerado, o ENUM, tipo de datos, se define una lista de valores de datos aprobados. Por ejemplo, una tabla de datos de clasificación de las películas incluye un número de estrellas, de cero a cuatro - no es una película para crear una calificación de diez estrella, no importa lo bueno que es, y ninguno recibe una calificación negativa, no importa lo malo que es . Se puede utilizar un ENUM para el campo de categoría de la mesa, dándole los valores de los números enteros de cero a cuatro. Algunos lenguajes de programación, como Java y los administradores de bases de datos SQL como MySQL y Oracle incluyen el tipo de datos ENUM, aunque no es una parte del estándar SQL 92.

Restricciones de campos de SQL

Aunque SQLite no ofrece un tipo de datos ENUM, se puede añadir una propiedad llamada una restricción de comprobación a un campo, obligando con ello a aceptar los valores de una lista restringida. Por ejemplo, supongamos que configura un campo de estado y desea restringir sus valores al conjunto de abreviaturas de los estados de Estados Unidos de dos caracteres. Cuando se crea la tabla en SQLite, se configura el ámbito estatal como un tipo CHAR y luego agrega una restricción de comprobación que enumera las 50 abreviaturas de los estados. SQLite es compatible con las restricciones de comprobación partir de la versión 3.3.0; antes de esa versión, SQLite analiza las limitaciones, pero no las hizo cumplir. Si se agrega una restricción a una tabla que ya tiene datos, SQLite no comprueba los valores existentes. Si un usuario intenta añadir valores a la tabla que no están incluidos en las restricciones, SQLite genera una condición de error, el bloqueo de la transacción.

sentencias SQL

Como una prueba más para garantizar que las tablas de datos obtienen los valores de la derecha, crear sentencias SQL SELECT que buscan estos valores. Por ejemplo, la siguiente instrucción SELECT busca registros de clasificación de películas que tienen un número incorrecto de estrellas:

SELECT COUNT (*) DE DONDE NO movie_ratings Estrellas en (0,1,2,3,4)

Se devuelve un valor distinto de cero si encuentra registros que tienen grados de la estrella se encuentran fuera del rango de cero a cuatro. Use pruebas como esta para verificar que las tablas tienen valores correctos. Si encuentra registros con datos incorrectos, examinar las restricciones de comprobación de valores que faltan o extra.

La lógica del programa

Además de las instrucciones SQL, la lógica de los programas de aplicación también puede comprobar los valores de los datos que van a bases de datos SQLite. Por ejemplo, como los usuarios escriben información en un formulario de pantalla de entrada de datos, la lógica de la pantalla pone a prueba cada valor y muestra un mensaje que pide al usuario para fijar datos incorrectos.