Una de las características principales de los campos, además de su nombre, es el tipo de datos que va a guardar. Esto define los posibles valores que se permitirán almacenar, la forma de guardarlos y hasta el espacio requerido para cada columna.
Si bien cada SGBD tiene sus propios tipos de datos (con nombres ligeramente diferentes) podemos clasificarlos en los siguientes tipos:
- Números
- Textos
- Fechas
- Booleanos o lógicos
- Otros (particulares de cada SGBD)
Tipos de datos numéricos
Permite almacenar un número. Dependiendo de el espacio que ocupan y la precisión que tiene se pueden a su vez desglosar en
- Enteros. Solo permiten valores -positivos o negativos- sin punto decimal. De los números, son los que ocupan menos espacio y son excelentes para guardar datos que no necesitan fracciones (número de hijos, número de autos, mes de nacimiento, etc.)
- Reales. Son números, pero a diferencia de los enteros, que permiten valores fraccionarios. Ocupan más espacio y se guardan en un formato diferente a los enteros. Son útiles cuando el campo a guardar si puede contener fracciones decimales (y tiene sentido guardarlos así) como podría ser sueldo, porcentaje de faltas, promedio de temperatura, etc. Dependiendo del espacio que guardan será la precisión o el rango de valores que pudieran guardar.
- Numeric, Decimal o Money son otro tipo de datos, muy parecidos a los reales (por que pueden guardar valores decimales) pero donde se tiene un poco más de control sobre la precisión. Si se quiere trabajar con valores estándar que puedan migrarse fácilmente entre motores de bases de datos, sería recomendable solo utilizar enteros o reales.
Textos
Permiten guardar caracteres de texto, desde un caracter hasta textos muy grandes. No tiene formato y se pueden dividir básicamente en
- Textos de longitud fija (CHAR por ejemplo) cuya longitud siempre será la definida en el campo, Si un campo «nombre» es de longitud fija de 100, por ejemplo, y se guarda simplemente un «Juan» (de 4 caracteres) los otros 96 no se ocupan, pero se apartan siempre 10 caracteres para guardar el nombre.
- Textos de longitud variable (VARCHAR por ejemplo) cuya longitud máxima será definida ene l campo. Esto quiere decir, en el mismo ejemplo del punto anterior, que «Juan» solo ocupará 4 caracteres, y aunque el campo «nombre» se haya definido como de longitud máxima 100, de se desperdiciarán 96 caracteres para llegar a 100. Aunque pareciera que los textso de longitud variable, no siempre lo son.
- Textos muy grandes, capaces de contener un libro completo. Este tipo de datos permite guardar textos muy extensos, pero se pierde en funcionalidades de búsqueda si los comparamos con los dos anteriores.
Fechas
Permiten guardar un dato que no es número (aunque podría serlo) y que tampoco es un texto (aunque también podría serlo) y son las fechas. Las fechas dependiendo de si se guardan con horas, minutos o segundo, o incluso por el rango de fechas que pueden contener, serán de un tipo de fecha o de otro.
Otros tipos de dato
Dependiendo del motor de base de datos, se implementarán otros tipos de dato, además de los tres anteriores (números, textos o fechas). Algunos de los más comunes son:
- Imágenes
- Posición geográfica
- Espaciales
- Que contienen XML