Skip to content

Tablas

Una tabla es un conjunto de datos organizados en filas y columnas. Cada fila de una tabla representa un registro y cada columna representa un campo. Las tablas son la estructura básica de una base de datos relacional. En SQL, se utilizan para almacenar y organizar datos de manera eficiente.

Mientras que para Microsoft SQL Server, MySQL, Oracle y PostgreSQL, las tablas son el objeto más importante, en SQLite, las tablas son solo una parte de la base de datos. En SQLite, las tablas son solo un tipo de objeto que se puede almacenar en una base de datos. Otros objetos que se pueden almacenar en una base de datos SQLite incluyen vistas, índices, procedimientos almacenados y funciones definidas por el usuario.

Crear una tabla

Para crear una tabla en una base de datos, se utiliza la instrucción CREATE TABLE. La sintaxis básica para crear una tabla es la siguiente:

CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
...
);

Donde table_name es el nombre de la tabla que se va a crear y column1, column2, column3, etc., son los nombres de las columnas de la tabla. datatype es el tipo de datos que se va a almacenar en la columna.

Por ejemplo, para crear una tabla llamada customers con las columnas id, name, email y phone, se puede utilizar la siguiente instrucción SQL:

CREATE TABLE customers (
id INT,
name VARCHAR(50),
email VARCHAR(100),
phone VARCHAR(15)
);

En este ejemplo, la tabla customers tiene cuatro columnas: id, name, email y phone. La columna id es de tipo INT, que se utiliza para almacenar números enteros. Las columnas name, email y phone son de tipo VARCHAR, que se utiliza para almacenar cadenas de texto de longitud variable.

Tipos de datos

En SQL, cada columna de una tabla debe tener un tipo de datos asociado que define el tipo de valores que se pueden almacenar en esa columna. Algunos de los tipos de datos más comunes en SQL son los siguientes:

Números enteros

INT

El tipo de datos INT se utiliza para almacenar números enteros. En la mayoría de los sistemas de bases de datos, un INT se almacena como un número entero de 4 bytes que puede contener valores en el rango de -2,147,483,648 a 2,147,483,647.

SMALLINT

El tipo de datos SMALLINT se utiliza para almacenar números enteros más pequeños. En la mayoría de los sistemas de bases de datos, un SMALLINT se almacena como un número entero de 2 bytes que puede contener valores en el rango de -32,768 a 32,767.

BIGINT

El tipo de datos BIGINT se utiliza para almacenar números enteros más grandes. En la mayoría de los sistemas de bases de datos, un BIGINT se almacena como un número entero de 8 bytes que puede contener valores en el rango de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807.

Números de punto flotante

FLOAT

El tipo de datos FLOAT se utiliza para almacenar números de punto flotante de precisión simple. En la mayoría de los sistemas de bases de datos, un FLOAT se almacena como un número de 4 bytes que puede contener valores en el rango de -3.402823466E+38 a -1.175494351E-38, 0 y 1.175494351E-38 a 3.402823466E+38.

DOUBLE

El tipo de datos DOUBLE se utiliza para almacenar números de punto flotante de precisión doble. En la mayoría de los sistemas de bases de datos, un DOUBLE se almacena como un número de 8 bytes que puede contener valores en el rango de -1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y 2.2250738585072014E-308 a 1.7976931348623157E+308.

Cadenas de texto

CHAR

El tipo de datos CHAR se utiliza para almacenar cadenas de texto de longitud fija. Cuando se define una columna de tipo CHAR, se debe especificar la longitud máxima de la cadena de texto. Por ejemplo, CHAR(10) se utiliza para almacenar cadenas de texto de hasta 10 caracteres de longitud.

VARCHAR

El tipo de datos VARCHAR se utiliza para almacenar cadenas de texto de longitud variable. Cuando se define una columna de tipo VARCHAR, se debe especificar la longitud máxima de la cadena de texto. Por ejemplo, VARCHAR(255) se utiliza para almacenar cadenas de texto de hasta 255 caracteres de longitud.

Fechas y horas

DATE

El tipo de datos DATE se utiliza para almacenar fechas en formato YYYY-MM-DD.

TIME

El tipo de datos TIME se utiliza para almacenar horas en formato HH:MM:SS.

DATETIME

El tipo de datos DATETIME se utiliza para almacenar fechas y horas en formato YYYY-MM-DD HH:MM:SS.

Otros tipos de datos

Además de los tipos de datos mencionados anteriormente, SQL admite muchos otros tipos de datos, como BOOLEAN, BLOB, CLOB, XML, JSON, etc. Cada sistema de bases de datos tiene sus propios tipos de datos específicos, por lo que es importante consultar la documentación del sistema de bases de datos que se está utilizando para obtener información detallada sobre los tipos de datos compatibles.

Restricciones de columna

Además de especificar el tipo de datos de una columna, se pueden aplicar restricciones a una columna para garantizar la integridad de los datos almacenados en la tabla. Algunas de las restricciones más comunes que se pueden aplicar a una columna son las siguientes:

NOT NULL

La restricción NOT NULL se utiliza para garantizar que una columna no contenga valores nulos. Cuando se aplica esta restricción a una columna, se debe proporcionar un valor para esa columna en cada fila de la tabla.

Por ejemplo, para crear una tabla llamada employees con las columnas id, name y email, donde la columna id no puede contener valores nulos, se puede utilizar la siguiente instrucción SQL:

CREATE TABLE employees (
id INT NOT NULL,
name VARCHAR(50),
email VARCHAR(100)
);

En este ejemplo, la columna id tiene la restricción NOT NULL, lo que significa que cada fila de la tabla employees debe tener un valor para la columna id.

UNIQUE

La restricción UNIQUE se utiliza para garantizar que los valores de una columna sean únicos en la tabla. Cuando se aplica esta restricción a una columna, no se pueden insertar dos filas en la tabla con el mismo valor en esa columna.

Por ejemplo, para crear una tabla llamada products con las columnas id y name, donde la columna id debe contener valores únicos, se puede utilizar la siguiente instrucción SQL:

CREATE TABLE products (
id INT UNIQUE,
name VARCHAR(50)
);

En este ejemplo, la columna id tiene la restricción UNIQUE, lo que significa que no se pueden insertar dos filas en la tabla products con el mismo valor en la columna id.

PRIMARY KEY

La restricción PRIMARY KEY se utiliza para definir una columna como clave primaria de la tabla. Una clave primaria es un conjunto de una o más columnas cuyos valores identifican de forma única cada fila de la tabla. Solo se puede definir una clave primaria en una tabla y no puede contener valores nulos.

Por ejemplo, para crear una tabla llamada orders con las columnas id, customer_id y order_date, donde la columna id es la clave primaria de la tabla, se puede utilizar la siguiente instrucción SQL:

CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
order_date DATE
);

En este ejemplo, la columna id tiene la restricción PRIMARY KEY, lo que significa que es la clave primaria de la tabla orders.

FOREIGN KEY

La restricción FOREIGN KEY se utiliza para definir una relación entre dos tablas. La columna que contiene la restricción FOREIGN KEY se denomina clave externa y hace referencia a la clave primaria de otra tabla. La clave externa garantiza que los valores de la columna coincidan con los valores de la clave primaria de la otra tabla.

Por ejemplo, para crear una tabla llamada order_items con las columnas order_id, product_id y quantity, donde la columna order_id es una clave externa que hace referencia a la columna id de la tabla orders, se puede utilizar la siguiente instrucción SQL:

CREATE TABLE order_items (
order_id INT,
product_id INT,
quantity INT,
FOREIGN KEY (order_id) REFERENCES orders(id)
);

En este ejemplo, la columna order_id tiene la restricción FOREIGN KEY, que hace referencia a la columna id de la tabla orders.

Ejemplo

A continuación, se muestra un ejemplo completo de cómo crear una tabla llamada employees con las columnas id, name, email y phone, donde la columna id es la clave primaria de la tabla:

CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
phone VARCHAR(15)
);

En este ejemplo, la tabla employees tiene cuatro columnas: id, name, email y phone. La columna id es la clave primaria de la tabla, lo que significa que identifica de forma única cada fila de la tabla. La columna name tiene la restricción NOT NULL, lo que significa que no puede contener valores nulos. La columna email tiene la restricción UNIQUE, lo que significa que los valores de la columna deben ser únicos en la tabla.

Conclusión

Las tablas son la estructura básica de una base de datos relacional y se utilizan para almacenar y organizar datos de manera eficiente. Al crear una tabla en una base de datos, se deben especificar las columnas de la tabla, los tipos de datos de las columnas y las restricciones de las columnas para garantizar la integridad de los datos almacenados en la tabla. Al comprender cómo crear tablas en SQL y cómo definir columnas y restricciones, se puede diseñar una base de datos eficiente y fácil de mantener.

Referencias