# MariaDB Create Table: cómo crear una nueva tabla

CREATE TABLE te permite crear nuevas tablas en MariaDB. Cada tabla es única dentro de su base de datos, por lo que existen las cláusulas `OR REPLACE` y `IF NOT EXISTS` para evitar duplicaciones y mensajes de error.

## ¿Qué es `CREATE TABLE` en MariaDB?

Utiliza la sentencia `CREATE TABLE` de MariaDB para **crear una nueva tabla**, que luego puedes llenar con datos. Como MariaDB es un sistema de gestión de bases de datos relacional (DBMS), las tablas sirven como base para todas las operaciones de almacenamiento. Al crear una tabla, defines cada una de las columnas y, en particular, los tipos de datos que se pueden utilizar en ellas. Cada tabla debe ser única dentro de tu base de datos, por lo que aparece un mensaje de error si utilizas [MariaDB CREATE DATABASE](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/mariadb-create-database/) y ya existe una tabla con el mismo nombre. En los siguientes apartados te explicamos cómo utilizar `CREATE TABLE` en MariaDB y qué cláusulas puedes utilizar.

## Sintaxis y funcionamiento

La sintaxis general de `CREATE TABLE` en MariaDB es la siguiente:

```sql
CREATE TABLE Nombre_de_la_tabla(
	Nombre_de_la_primera_columna Tipo_de_dato_de_la_primera_columna,
	Nombre_de_la_segunda_columna Tipo_de_dato_de_la_segunda_columna,
	…
);
```

Las tablas nuevas en MariaDB se crean con la sentencia `CREATE TABLE`. Debes asignarles un nombre único en el lugar donde aparece el marcador de posición “Nombre\_de\_la\_tabla”. Puedes utilizar todos los caracteres del [código ASCII](https://www.ionos.es/digitalguide/servidores/know-how/ascii-american-standard-code-for-information-interchange/). A continuación, puedes definir cada columna individualmente, asignándole **su propio nombre y el tipo de datos** que pueden almacenarse en esa columna. Debes separar todas las columnas con comas.

## `OR REPLACE` y `IF NOT EXISTS`

Como las tablas deben ser únicas, recibirás un mensaje de error **si ya existe una tabla con el mismo nombre**. Tienes dos formas de evitar dicho problema: la cláusula `OR REPLACE` comprueba si ya existe una tabla con el mismo nombre en la base de datos. Si existe, la **tabla antigua se sustituye por la nueva**. Si no existe, se crea la nueva tabla. La sintaxis es la siguiente:

```sql
CREATE OR REPLACE TABLE Nombre_de_la_tabla(
	Nombre_de_la_primera_columna Tipo_de_dato_de_la_primera_columna,
	Nombre_de_la_segunda_columna Tipo_de_dato_de_la_segunda_columna,
	…
);
```

Ten en cuenta que la tabla antigua se sobrescribirá y, por lo tanto, se perderá todo su contenido. El comando anterior tiene obtiene el mismo resultado que este código más largo:

```sql
DROP TABLE IF EXISTS Nombre_de_la_tabla;
CREATE TABLE Nombre_de_la_tabla(
	Nombre_de_la_primera_columna Tipo_de_dato_de_la_primera_columna,
	Nombre_de_la_segunda_columna Tipo_de_dato_de_la_segunda_columna,
	…
);
```

La segunda forma de evitar duplicidades y los consiguientes mensajes de error es la cláusula `IF NOT EXISTS`. Es una cláusula que comprueba si ya existe una tabla con el mismo nombre en la base de datos. Si existe, recibirás un aviso y **no se sobrescribirá ninguna tabla**. Si no existe ninguna tabla con ese nombre, se creará una nueva. La sintaxis correspondiente es la siguiente:

```sql
CREATE TABLE IF NOT EXISTS Nombre_de_la_tabla(
	Nombre_de_la_primera_columna Tipo_de_dato_de_la_primera_columna,
	Nombre_de_la_segunda_columna Tipo_de_dato_de_la_segunda_columna,
	…
);
```

## Ejemplo de `CREATE TABLE` en MariaDB

La forma más sencilla de ilustrar el funcionamiento de `CREATE TABLE` en MariaDB es mediante un pequeño ejemplo. En él, se crea una tabla para una lista de proyectos ficticia con un total de ocho columnas. Tiene el siguiente aspecto:

```sql
CREATE TABLE Proyectos(
	numero_proyecto INT AUTO_INCREMENT,
	apellido VARCHAR(50) NOT NULL,
	nombre VARCHAR(50),
	inicio DATE,
	fin DATE,
	coste DOUBLE,
	tareas VARCHAR(255) NOT NULL,
	created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (numero_proyecto)
);
```

En el primer paso, se crea una nueva tabla llamada “Proyectos”. En las siguientes líneas se especifican las columnas individuales:

- **numero\_proyecto**: en esta columna se asigna un número individual a cada proyecto. Se trata de un número de referencia que sirve para identificar cada línea individual. Con `AUTO_INCREMENT` se indica al programa que vaya aumentando automáticamente el número de “numero\_proyecto” con el fin de garantizar una secuencia uniforme.
- **apellido**: en esta columna se introduce el apellido del cliente, puede contener una secuencia de hasta 50 caracteres. Se utiliza `NOT NULL` para especificar que una columna no puede quedar vacía.
- **nombre**: la columna “nombre” es muy similar a la columna anterior. Sin embargo, como el nombre no es imprescindible para la facturación, esta columna sí puede quedarse vacía, por lo que no se introduce la cláusula `NOT NULL`.
- **inicio**: esta columna contiene la fecha de inicio de un proyecto en curso. Admite valores de fecha en el formato de fecha establecido o el valor nulo.
- **fin**: la columna “fin” describe la fecha límite o la finalización efectiva de un proyecto. Sus valores también pueden tener el formato `DATE` o `NULL`.
- **coste**: la columna “costes” contiene el importe de la factura. Se almacena en el formato `DOBLE`.
- **tareas**: la columna “tareas” ofrece un espacio para describir brevemente los servicios prestados durante el proyecto. La columna tiene espacio para un máximo de 255 caracteres y no debe quedar en blanco.
- **created\_at**: la fecha de creación del proyecto correspondiente se almacena en la última columna. Obtiene la fecha y la hora directamente del sistema.

Consejo En nuestra Digital Guide puedes aprender todo lo que necesitas saber sobre MariaDB. Por ejemplo, te explicamos cómo utilizar el comando [MariaDB CREATE USER](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/mariadb-create-user/). También puedes encontrar una [comparación detallada entre MariaDB y MySQL](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/mariadb-vs-mysql/) y todo lo que necesitas saber para [instalar MariaDB](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/instalar-mysql/).


This is a markdown version of: [https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/mariadb-create-table/](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/mariadb-create-table/) for AI/LLM consumption.