> Manuales > Tutorial de SQL

Qué son los campos o columnas de las tablas en las bases de datos. Qué tipos de campos nos podemos encontrar en las tablas y consideraciones a tener en cuenta en función del sistema gestor de bases de datos.

Tipos de campo

En este artículo vamos a empezar a ver cómo están hechas las bases de datos y hablaremos de algo tan básico como los tipos de campos que contienen las tablas, pero antes de ello sería bueno dar algunas descripciones breves sobre algunos conceptos previos, que vamos a usar y que no hemos abordado todavía en el Manual de SQL.

En el artículo anterior donde explicamos qué es SQL ya vimos algunos primeros conceptos que debes conocer como qué son las bases de datos y los sistemas gestores de bases de datos.

Qué son las tablas

En los sistemas de bases de datos relacionales la información se almacena en tablas. Las tablas a veces también se las conoce por "esquemos" y básicamente vienen a ser lo mismo: colecciones de registros de una misma entidad. Por ejemplo, en una aplicación de facturación puedes tener una tabla para facturas y otra tabla para clientes.

Cada tabla almacena registros, de unos pocos a decenas o cientos de miles. Por ejemplo, la tabla de facturas almacena registros de facturas. A su vez, cada registro está especificado por una serie de campos, que son los datos que forman parte de esa entidad. Por ejemplo en una factura podemos tener cosas como el número, la fecha, si está pagada o no y asuntos así.

Qué son los campos

Ahora que sabemos que una base de datos esta compuesta de tablas donde almacenamos registros catalogados de un mismo tipo y sabemos que los registros tienen múltiples datos asociados, cada uno de ellos. Podemos definir lo que son los campos de las tablas.

Pues bien, los datos individuales que tienen todos los registros son los campos de las tablas. A veces a estos campos se les llama columnas porque generalmente las tablas se representan con filas que son cada uno de los registros almacenados y columnas que son cada uno de los datos que tienen los registros.

Como una imagen vale más que mil palabras puedes ver aquí una representación de una tabla de juegos de una aplicación web.

Estructura de una tabla de registros en filas y campos en columnas

Los tipos de campos

Un aspecto importante a considerar es la naturaleza de los valores que introducimos en esos campos. Dado que una base de datos trabaja con todo tipo de informaciones, es importante especificarle qué tipo de valor le estamos introduciendo en cada campo. Así conseguirmos:

Cada base de datos soporta un conjunto de tipos de valores de campo. Estos tipos puede que no necesariamente están presentes en todos los sistemas de bases de datos o incluso las distintas versiones de un mismo sistema gestor. Sin embargo, existe un conjunto de tipos que están representados en la totalidad de estas bases.

Estos tipos son comunes a todos los sistemas gestores y sería bueno que empezases a estar familiarizado con elos:

Como decimos, dependiendo del sistema gestor pueden haber otros tipos de campos e incluso subdivisiones de un mismo tipo, por ejemplo más tipos distintos de fechas, en los que puedes almacenar fechas y horas o solamente fechas. Además, puede haber sistemas gestores que no implementen uno de los tipos. Por ejemplo hasta la fecha MySQL no soporta los boleanos, sino que tenemos que usar un entero de tamaño reducido y almacenar el valor 1 cuando es true y el valor 0 cuando es false.

El mundo de los sistemas gestores es muy variable y a medida que se van sofisticando surgen muchos otros tipos de campos, como los campos JSON, los campos para geolocalización y muchos otros que usan solamente algunos tipos de aplicaciones más especializadas. Sin embargo, como decimos, la mayoría de los sistemas tienen los campos que hemos visto y en la mayoría de los proyectos estos son los más usados.

Es importante que sepas qué tipos de campos existen pero a la hora de crear las tablas de las bases de datos tendremos que indicar qué tipo es cada campo. Así que ahora vamos a ver los tipos de datos que tendrás que especificar al crear las tablas en un sistema gestor MySQL.

Tipos de datos

Hasta ahora hemos hablado de los tipos de campos, de una manera esencialmente conceptual. Esto quiere decir que sabes que a la hora de definir los esquemas de las tablas tienes que pensar qué tipos de campos necesitas. Sin embargo, de cada tipo de campo pueden existir diveros tipos de datos que podrían ajustarse.

Por ejemplo, tenemos los campos de núneros enteros. El concepto es ese y todos lo entendemos: números sin decimales. Pero dependiendo de lo que vas a guardar en un campo entero podrás escoger uno u otro tipo de datos. Principalmente la decisión la tendrás que tomar en vista de la magnitud o espacio que quieras reservar para ese entero. No es lo mismo guardar el número de asientos que tiene un vehículo que guardar los habitantes de un país, básicamente porque los asientos pueden ser solo unos pocos y los habitantes podrían llegar a ser miles de millones en algunos casos.

Así pues, cuando tengas que especificar las tabla tendrás que indicar tipos específicos para cada uno de los campos de las tablas. En esta lista puedes ver la mayoría e los tipos de datos que existe en el SQL, pero debes tener en cuenta que cada sistema gestor de base de datos puede tener su conjunto de tipos de datos propios o se pueden llamar de maneras distintas. Por tanto, no la tomes como una referencia completa y consulta la documentación de tu sistema gestor para saber por dónde se mueve. Paralelamente, a medida que surgen nuevas versiones de los sistemas gestores de bases de datos este listado tiende a crecer.

Cada tipo de expresa como:

nombre_del_tipo (longitud): descripción
  • BINARY (1 byte): Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario.
  • BIT (1 byte): Valores Si/No ó True/False
  • BYTE (1 byte): Un valor entero entre 0 y 255.
  • COUNTER (4 bytes): Un número incrementado automáticamente (de tipo Long)- CURRENCY (8) bytes Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807.
  • DATETIME (8 bytes): Un valor de fecha u hora entre los años 100 y 9999.
  • SINGLE (4 bytes): Un valor en punto flotante de precisión simple con un rango de - 3.4028231038 a -1.40129810-45 para valores negativos, 1.40129810- 45 a 3.4028231038 para valores positivos, y 0.
  • DOUBLE (8 bytes): Un valor en punto flotante de doble precisión con un rango de - 1.7976931348623210308 a -4.9406564584124710-324 para valores negativos, 4.9406564584124710-324 a 1.7976931348623210308 para valores positivos, y 0.
  • SHORT (2 bytes): Un entero corto entre -32,768 y 32,767.
  • LONG (4 bytes): Un entero largo entre -2,147,483,648 y 2,147,483,647.
  • LONGTEXT (1 byte): por carácter De cero a un máximo de 1.2 gigabytes.
  • LONGBINARY (Según se necesite): De cero 1 gigabyte. Utilizado para objetos OLE.
  • TEXT (1 byte): por carácter De cero a 255 caracteres.

La siguiente tabla recoge los sinónimos de los tipos de datos definidos:

  • BINARY - VARBINARY
  • BIT - BOOLEAN, LOGICAL, LOGICAL1, YESNO
  • BYTE - INTEGER1
  • COUNTER - AUTOINCREMENT
  • CURRENCY - MONEY
  • DATETIME - DATE, TIME, TIMESTAMP
  • SINGLE - FLOAT4, IEEESINGLE, REAL
  • DOUBLE - FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NUMERIC
  • SHORT - INTEGER2, SMALLINT
  • LONG - INT, INTEGER, INTEGER4
  • LONGBINARY - GENERAL, OLEOBJECT
  • LONGTEXT - LONGCHAR, MEMO, NOTE
  • TEXT - ALPHANUMERIC
  • CHAR - CHARACTER
  • STRING - VARCHAR

Rubén Alvarez

Rubén es doctor en química y programador principalmente en sus ratos libres con...

Manual