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

> JDBCドライバー経由で接続されたテーブルを返します。

# jdbc

<Note>
  clickhouse-jdbc-bridge には実験的なコードが含まれており、現在はサポートされていません。信頼性の問題やセキュリティ脆弱性が存在する可能性があります。使用は自己責任で行ってください。
  ClickHouse では、アドホックなクエリの用途 (Postgres、MySQL、MongoDB など) では、より適した代替手段として ClickHouse に組み込まれているテーブル関数の使用を推奨しています。
</Note>

JDBCテーブル関数は、JDBCドライバー経由で接続されたテーブルを返します。

このテーブル関数を使用するには、別途 [clickhouse-jdbc-bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge) プログラムを実行しておく必要があります。
Nullable 型をサポートしています (クエリ対象のリモートテーブルの DDL に基づきます) 。

<div id="syntax">
  ## 構文
</div>

```sql theme={null}
jdbc(datasource, external_database, external_table)
jdbc(datasource, external_table)
jdbc(named_collection)
```

<div id="examples">
  ## 例
</div>

外部データベース名の代わりに、スキーマを指定することもできます。

```sql theme={null}
SELECT * FROM jdbc('jdbc:mysql://localhost:3306/?user=root&password=root', 'schema', 'table')
```

```sql theme={null}
SELECT * FROM jdbc('mysql://localhost:3306/?user=root&password=root', 'select * from schema.table')
```

```sql theme={null}
SELECT * FROM jdbc('mysql-dev?p1=233', 'num Int32', 'select toInt32OrZero(''{{p1}}'') as num')
```

```sql theme={null}
SELECT *
FROM jdbc('mysql-dev?p1=233', 'num Int32', 'select toInt32OrZero(''{{p1}}'') as num')
```

```sql theme={null}
SELECT a.datasource AS server1, b.datasource AS server2, b.name AS db
FROM jdbc('mysql-dev?datasource_column', 'show databases') a
INNER JOIN jdbc('self?datasource_column', 'show databases') b ON a.Database = b.name
```
