| --- | |
| title: SQL Database Drivers | |
| --- | |
| The database/sql and database/sql/driver packages are designed for using databases from Go and implementing database drivers, respectively. | |
| See the design goals doc: | |
| > http://golang.org/src/pkg/database/sql/doc.txt | |
| ## Drivers | |
| Drivers for Go's sql package include: | |
| - **Amazon AWS Athena**: https://github.com/uber/athenadriver | |
| - **AWS Athena**: https://github.com/segmentio/go-athena | |
| - **AWS DynamoDB**: https://github.com/btnguyen2k/godynamo | |
| - **Apache Avatica/Phoenix**: https://github.com/apache/calcite-avatica-go | |
| - **Apache H2**: https://github.com/jmrobles/h2go | |
| - **Apache Hive**: https://github.com/sql-machine-learning/gohive | |
| - **Apache Ignite/GridGain**: https://github.com/amsokol/ignite-go-client | |
| - **Apache Impala**: https://github.com/bippio/go-impala | |
| - **Azure Cosmos DB**: https://github.com/btnguyen2k/gocosmos | |
| - **ClickHouse** (uses [HTTP API](https://clickhouse.tech/docs/en/interfaces/http/)): https://github.com/mailru/go-clickhouse | |
| - **ClickHouse** (uses [native TCP interface](https://clickhouse.tech/docs/en/interfaces/tcp/)): https://github.com/ClickHouse/clickhouse-go | |
| - **CockroachDB**: Use any PostgreSQL driver | |
| - **Couchbase N1QL**: https://github.com/couchbase/go_n1ql | |
| - **DB2 LUW** (uses cgo): https://github.com/asifjalil/cli | |
| - **DB2 LUW** and **DB2/Z with DB2-Connect**: https://bitbucket.org/phiggins/db2cli (Last updated 2015-08) | |
| - **DB2 LUW, z/OS, iSeries and Informix**: https://github.com/ibmdb/go_ibm_db | |
| - **Databricks**: https://github.com/databricks/databricks-sql-go | |
| - **DuckDB**: https://github.com/marcboeker/go-duckdb | |
| - **Exasol**: (pure Go): https://github.com/exasol/exasol-driver-go | |
| - **Firebird SQL**: https://github.com/nakagami/firebirdsql | |
| - **Genji** (pure go): https://github.com/genjidb/genji | |
| - **Google Cloud BigQuery**: https://github.com/solcates/go-sql-bigquery | |
| - **Google Cloud Spanner**: https://github.com/googleapis/go-sql-spanner | |
| - **Google Cloud Spanner**: https://github.com/rakyll/go-sql-driver-spanner | |
| - **MS ADODB**: https://github.com/mattn/go-adodb | |
| - **MS SQL Server** (pure go): https://github.com/microsoft/go-mssqldb | |
| - **MS SQL Server** (uses cgo): https://github.com/minus5/gofreetds | |
| - **MaxCompute**: https://github.com/sql-machine-learning/gomaxcompute | |
| - **MySQL**: https://github.com/go-sql-driver/mysql/ `[*]` | |
| - **MySQL**: https://github.com/go-mysql-org/go-mysql `[**]` (also handles replication) | |
| - **MySQL**: https://github.com/ziutek/mymysql `[*]` | |
| - **ODBC**: https://bitbucket.org/miquella/mgodbc (Last updated 2016-02) | |
| - **ODBC**: https://github.com/alexbrainman/odbc | |
| - **Oracle** (pure go): https://github.com/sijms/go-ora | |
| - **Oracle** (uses cgo): https://github.com/godror/godror | |
| - **Oracle** (uses cgo): https://github.com/mattn/go-oci8 | |
| - **Oracle** (uses cgo): https://gopkg.in/rana/ora.v4 | |
| - **Postgres** (pure Go): https://github.com/jackc/pgx `[*]` | |
| - **Postgres** (pure Go): https://github.com/lib/pq `[*]` | |
| - **Postgres** (uses cgo): https://github.com/jbarham/gopgsqldriver | |
| - **Presto**: https://github.com/prestodb/presto-go-client | |
| - **QL**: https://pkg.go.dev/modernc.org/ql | |
| - **SAP ASE** (pure go): https://github.com/SAP/go-ase | |
| - **SAP ASE** (uses cgo): https://github.com/SAP/cgo-ase | |
| - **SAP HANA** (pure go): https://github.com/SAP/go-hdb | |
| - **SAP HANA** (uses cgo): https://help.sap.com/viewer/0eec0d68141541d1b07893a39944924e/2.0.03/en-US/0ffbe86c9d9f44338441829c6bee15e6.html | |
| - **SQL over REST**: https://github.com/adaptant-labs/go-sql-rest-driver | |
| - **SQLite** (uses cgo): https://github.com/gwenn/gosqlite - Supports SQLite dynamic data typing | |
| - **SQLite** (uses cgo): https://github.com/mattn/go-sqlite3 `[*]` | |
| - **SQLite** (uses cgo): https://github.com/mxk/go-sqlite | |
| - **SQLite**: (pure go): https://modernc.org/sqlite | |
| - **SQLite**: (pure go): https://github.com/ncruces/go-sqlite3 | |
| - **SQLite**: (uses cgo): https://github.com/rsc/sqlite | |
| - **SingleStore**: Use any MySQL driver | |
| - **Snowflake** (pure Go): https://github.com/snowflakedb/gosnowflake | |
| - **Sybase ASE** (pure go): https://github.com/thda/tds | |
| - **Sybase SQL Anywhere**: https://github.com/a-palchikov/sqlago | |
| - **TiDB**: Use any MySQL driver | |
| - **Trino**: https://github.com/trinodb/trino-go-client | |
| - **Vertica**: https://github.com/vertica/vertica-sql-go | |
| - **Vitess**: https://pkg.go.dev/vitess.io/vitess/go/vt/vitessdriver | |
| - **YDB** (pure go): https://github.com/ydb-platform/ydb-go-sdk | |
| - **YQL (Yahoo! Query Language)**: https://github.com/mattn/go-yql | |
| Drivers marked with `[*]` are both included in and pass the compatibility test suite at https://github.com/bradfitz/go-sql-test. | |
| Drivers marked with `[**]` pass the compatibility test suite but are not currently included in it. |