# SQL CREATE TABLE: cómo crear una nueva tabla

SQL CREATE TABLE se utiliza para crear una nueva tabla. Ésta debe ser única dentro de la base de datos. Los parámetros importantes ya están definidos cuando se crea la tabla y es posible utilizar una tabla existente como base.

## ¿Qué es SQL CREATE TABLE?

Una vez hayas [creado una base de datos SQL](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-drop-database/) utilizando el [Structured Query Language](https://www.ionos.com/es-us/digitalguide/servidores/know-how/que-es-sql/), podrás crear una nueva tabla. Ésta se utiliza para almacenar tus registros de datos y especifica la estructura en la que se prepararán estos datos. Las tablas constan de **campos o columnas que pueden contener determinados tipos de datos** y **filas en las que se listan estos datos**. Para crear una nueva tabla, utiliza la sentencia SQL CREATE TABLE. Ésta no solo creará la nueva tabla, sino que también determinará cómo debe estructurarse. A continuación, se rellena con los datos correspondientes.

## Sintaxis y funcionalidad

Solo con mirar la sintaxis de SQL CREATE TABLE, se puede ver que los tipos de datos y los nombres son obligatorios para la correcta creación de una nueva tabla. La sintaxis es la siguiente:

```sql
CREATE TABLE nombre_de_la_tabla ( 
columna1 tipo de datos, 
columna2 tipo de datos, 
columna3 tipo de datos, 
… 
);
```

Con el [comando SQL](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/comandos-sql/) CREATE TABLE puedes crear una nueva tabla, cuyo nombre se especificará en la primera línea. Dentro de los paréntesis, se detallan las columnas de la tabla. Debes asignar un nombre a `columna1`, `columna2`, etc., y especificar **qué tipo de datos se pueden almacenar en cada columna**. Los tipos de datos comúnmente utilizados son, por ejemplo, `VARCHAR` (una cadena que puede contener letras, números o caracteres especiales), `BOOLEAN` (para valores booleanos true o false), `INT` (para valores numéricos) o `DATE` (para fechas).

## Ejemplo de nueva tabla

Para ilustrar cómo funciona SQL CREATE TABLE, utilizaremos un ejemplo sencillo que muestra el aspecto que podría tener una tabla de este tipo. Para ello, creamos un directorio de empleados que contiene un ID de empleado, apellido, nombre, dirección, ciudad y edad. Por tanto, necesitamos un total de **seis columnas** que puedan almacenar distintos tipos de datos. El código apropiado sería el siguiente:

```sql
CREATE TABLE Empleados ( 
ID INT NOT NULL, 
Apellido VARCHAR(50), 
Nombre VARCHAR(50), 
Dirección VARCHAR(50), 
Ciudad VARCHAR(50), 
Edad INT NOT NULL 
);
```

Para el ID y la edad, seleccionamos el tipo de datos `INT`, que contiene números. La adición `NOT NULL` especifica que estos campos no deben dejarse en blanco. El resto de columnas `Apellido`, `Nombre`, `Dirección` y `Ciudad` pueden contener letras, números y caracteres especiales.

## Combinación con el comando IF NOT EXISTS

Cada tabla debe ser **única** dentro de una base de datos para que el sistema pueda acceder a ella. Así que si intentas crear una nueva tabla con SQL CREATE TABLE y eliges un nombre que ya ha sido asignado, recibirás un mensaje de error como `Error: table already exists`. Para evitar esto, puedes añadir el comando opcional `IF NOT EXISTS`. Este comando comprueba primero si ya existe una tabla con el mismo nombre. Solo si no es el caso, puedes crear una nueva tabla con los parámetros almacenados. Para nuestro ejemplo, se haría de esta forma:

```sql
CREATE TABLE IF NOT EXISTS Empleados ( 
ID INT NOT NULL, 
Apellido VARCHAR(50), 
Nombre VARCHAR(50), 
Dirección VARCHAR(50), 
Ciudad VARCHAR(50), 
Edad INT NOT NULL 
);
```

## Crear una nueva tabla a partir de una tabla existente

Aunque la sentencia funciona de forma bastante sencilla, puede resultar tediosa si tienes que crear varias tablas similares. Por ello, `SQL CREATE DATABASE` también te ofrece la opción de **utilizar una tabla existente** para crear una nueva. Puedes elegir si quieres crear una copia exacta o solo tener en cuenta ciertos parámetros. Te mostraremos ambos procedimientos. En el primer caso, creamos una lista de empleados para otra sucursal. Por lo tanto, ésta debe configurarse de forma idéntica, pero requiere un nuevo nombre. Este sería el código:

```sql
CREATE TABLE Nueva_lista_de_empleados 
AS 
SELECT * 
FROM Empleados;
```

El asterisco indica al sistema que debe aceptar todas las columnas.

En el siguiente ejemplo, creamos una lista de clientes. Ésta debe contener también las columnas de ID, apellidos, nombre, dirección y ciudad, pero no debe crearse la fecha de nacimiento. Por tanto, especificamos exactamente qué columnas deben copiarse.

```sql
CREATE TABLE Lista_de_clientes 
AS 
SELECT ID, Apellido, Nombre, Dirección, Ciudad 
FROM Empleados;
```

## Comandos parecidos a SQL CREATE TABLE

Además de la ya mencionada CREATE DATABASE, hay otras sentencias que son importantes para trabajar con SQL CREATE TABLE. Estas incluyen [SQL DELETE](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-delete/), que se usa para borrar entradas de una tabla, y [SQL Aliases](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/alias-sql/), que se usa para renombrar temporalmente tablas o columnas.

Consejo Consigue tu propio servidor: con el [Hosting SQL Server](https://www.ionos.es/cloud/sql-server-hosting "Hosting SQL Server de IONOS") de IONOS, no solo podrás elegir entre MSSQL, MySQL y MariaDB, sino que también te beneficiarás de numerosas funciones útiles. Encuentra la solución que mejor se adapte a tus necesidades.


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-create-table/](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-create-table/) for AI/LLM consumption.