> ## 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 que o ClickHouse se conecte a bancos de dados externos via JDBC.

# Motor de tabela 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 contém código experimental e não recebe mais suporte. Ele pode apresentar problemas de confiabilidade e vulnerabilidades de segurança. Use por sua conta e risco.
  O ClickHouse recomenda usar funções de tabela nativas no ClickHouse, que oferecem uma alternativa melhor para cenários de consultas ad hoc (Postgres, MySQL, MongoDB etc.).
</Note>

Permite que o ClickHouse se conecte a bancos de dados externos via [JDBC](https://en.wikipedia.org/wiki/Java_Database_Connectivity).

Para implementar a conexão JDBC, o ClickHouse usa o programa separado [clickhouse-jdbc-bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge), que deve ser executado como um daemon.

Este motor oferece suporte ao tipo de dado [Nullable](/pt-BR/reference/data-types/nullable).

<div id="creating-a-table">
  ## Criar uma tabela
</div>

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

**Parâmetros do motor**

* `datasource` — URI ou nome de um SGBD externo.

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

* `external_database` — Nome de um banco de dados em um SGBD externo ou, alternativamente, um esquema de tabela definido explicitamente (veja os exemplos).

* `external_table` — Nome da tabela em um banco de dados externo ou uma consulta `select`, como `select * from table1 where column1=1`.

* Esses parâmetros também podem ser passados usando [coleções nomeadas](/pt-BR/concepts/features/configuration/server-config/named-collections).

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

Criando uma tabela no servidor MySQL conectando-se diretamente ao cliente de linha de comando:

```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)
```

Criando uma tabela no servidor ClickHouse e selecionando dados dessa tabela:

```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">
  ## Veja também
</div>

* [Função de tabela JDBC](/pt-BR/reference/functions/table-functions/jdbc).
