> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Creación de tablas en ClickHouse

> Aprende a crear tablas en ClickHouse

Como la mayoría de las bases de datos, ClickHouse agrupa lógicamente las tablas en **bases de datos**. Usa el comando `CREATE DATABASE` para crear una base de datos nueva en ClickHouse:

```sql theme={null}
CREATE DATABASE IF NOT EXISTS helloworld
```

De manera similar, usa `CREATE TABLE` para definir una tabla nueva. Si no especificas el nombre de la base de datos, la tabla estará en la
base de datos `default`.

La siguiente tabla, llamada `my_first_table`, se crea en la base de datos `helloworld`:

```sql theme={null}
  CREATE TABLE helloworld.my_first_table
  (
      user_id UInt32,
      message String,
      timestamp DateTime,
      metric Float32
  )
  ENGINE = MergeTree()
  PRIMARY KEY (user_id, timestamp)
```

En el ejemplo anterior, `my_first_table` es una tabla `MergeTree` con cuatro columnas:

* `user_id`: un entero sin signo de 32 bits
* `message`: un tipo de dato `String` que sustituye a tipos como `VARCHAR`, `BLOB`, `CLOB` y otros de otros sistemas de bases de datos
* `timestamp`: un valor `DateTime` que representa un momento concreto en el tiempo
* `metric`: un número de coma flotante de 32 bits

<Note>
  El motor de tabla determina:

  * Cómo y dónde se almacenan los datos
  * Qué consultas se admiten
  * Si los datos se replican o no

  Hay muchos motores entre los que elegir, pero para una tabla sencilla en un servidor ClickHouse de un solo nodo, [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree) suele ser la opción más adecuada.
</Note>

<div id="a-brief-intro-to-primary-keys">
  ## Una breve introducción a las claves primarias
</div>

Antes de continuar, es importante entender cómo funcionan las claves primarias en ClickHouse (¡la implementación
de las claves primarias puede parecer inesperada!):

* las claves primarias en ClickHouse ***no son únicas*** para cada fila de una tabla

La clave primaria de una tabla de ClickHouse determina cómo se ordenan los datos al escribirse en disco. Cada 8.192 filas o 10 MB de
datos (lo que se conoce como la **granularidad del índice**) crea una entrada en el archivo de índice de la clave primaria. Este concepto de granularidad
crea un **índice disperso** que cabe fácilmente en memoria, y los gránulos representan la franja mínima de
datos de columna que se procesa durante las consultas `SELECT`.

La clave primaria puede definirse mediante el parámetro `PRIMARY KEY`. Si define una tabla sin especificar una `PRIMARY KEY`,
la clave pasa a ser la tupla especificada en la cláusula `ORDER BY`. Si especifica tanto una `PRIMARY KEY` como un `ORDER BY`, la clave primaria debe ser un prefijo del orden de clasificación.

La clave primaria también es la clave de ordenación, que es una tupla de `(user_id, timestamp)`. Por lo tanto, los datos almacenados en cada
archivo de columna se ordenarán por `user_id` y luego por `timestamp`.

<Tip>
  Para obtener más información, consulte el [módulo de formación Modeling Data](https://learn.clickhouse.com/visitor_catalog_class/show/1328860/?utm_source=clickhouse\&utm_medium=docs) de ClickHouse Academy.
</Tip>
