> ## 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.

> Permite a ClickHouse conectarse a bases de datos externas mediante JDBC.

# Motor de tabla JDBC

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Not supported in ClickHouse Cloud
        </div>;
};

<Note>
  clickhouse-jdbc-bridge contiene código experimental y ya no es compatible. Puede presentar problemas de fiabilidad y vulnerabilidades de seguridad. Úselo bajo su propia responsabilidad.
  ClickHouse recomienda usar las funciones de tabla integradas en ClickHouse, que ofrecen una mejor alternativa para escenarios de consultas ad hoc (Postgres, MySQL, MongoDB, etc.).
</Note>

Permite que ClickHouse se conecte a bases de datos externas mediante [JDBC](https://en.wikipedia.org/wiki/Java_Database_Connectivity).

Para implementar la conexión JDBC, ClickHouse utiliza el programa independiente [clickhouse-jdbc-bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge), que debe ejecutarse como un demonio.

Este motor admite el tipo de datos [Nullable](/es/reference/data-types/nullable).

<div id="creating-a-table">
  ## Crear una tabla
</div>

```sql theme={null}
CREATE TABLE [IF NOT EXISTS] [db.]table_name
(
    columns list...
)
ENGINE = JDBC(datasource, external_database, external_table)
```

**Parámetros del motor**

* `datasource` — URI o nombre de un SGBD externo.

  Formato de URI: `jdbc:<driver_name>://<host_name>:<port>/?user=<username>&password=<password>`.
  Ejemplo para MySQL: `jdbc:mysql://localhost:3306/?user=root&password=root`.

* `external_database` — Nombre de una base de datos en un SGBD externo o, alternativamente, un esquema de tabla definido explícitamente (consulta los ejemplos).

* `external_table` — Nombre de la tabla en una base de datos externa o una consulta como `select * from table1 where column1=1`.

* Estos parámetros también se pueden pasar mediante [colecciones con nombre](/es/concepts/features/configuration/server-config/named-collections).

<div id="usage-example">
  ## Ejemplo de uso
</div>

Creación de una tabla en el servidor MySQL conectándose directamente con su cliente de consola:

```text theme={null}
mysql> CREATE TABLE `test`.`test` (
    ->   `int_id` INT NOT NULL AUTO_INCREMENT,
    ->   `int_nullable` INT NULL DEFAULT NULL,
    ->   `float` FLOAT NOT NULL,
    ->   `float_nullable` FLOAT NULL DEFAULT NULL,
    ->   PRIMARY KEY (`int_id`));
Query OK, 0 rows affected (0,09 sec)

mysql> insert into test (`int_id`, `float`) VALUES (1,2);
Query OK, 1 row affected (0,00 sec)

mysql> select * from test;
+------+----------+-----+----------+
| int_id | int_nullable | float | float_nullable |
+------+----------+-----+----------+
|      1 |         NULL |     2 |           NULL |
+------+----------+-----+----------+
1 row in set (0,00 sec)
```

Creación de una tabla en el servidor ClickHouse y selección de datos de esta:

```sql theme={null}
CREATE TABLE jdbc_table
(
    `int_id` Int32,
    `int_nullable` Nullable(Int32),
    `float` Float32,
    `float_nullable` Nullable(Float32)
)
ENGINE JDBC('jdbc:mysql://localhost:3306/?user=root&password=root', 'test', 'test')
```

```sql theme={null}
SELECT *
FROM jdbc_table
```

```text theme={null}
┌─int_id─┬─int_nullable─┬─float─┬─float_nullable─┐
│      1 │         ᴺᵁᴸᴸ │     2 │           ᴺᵁᴸᴸ │
└────────┴──────────────┴───────┴────────────────┘
```

```sql theme={null}
INSERT INTO jdbc_table(`int_id`, `float`)
SELECT toInt32(number), toFloat32(number * 1.0)
FROM system.numbers
```

<div id="see-also">
  ## Ver también
</div>

* [Función de tabla JDBC](/es/reference/functions/table-functions/jdbc).
