一个 Go 工具包揽一切 SQL 数据库客户端

共 2828字,需浏览 6分钟

 ·

2021-08-10 00:31

今天发现了一个超级棒的工具:通用的 SQL 数据库命令行工具。如果你喜欢通过命令行操作数据库,这个工具绝对值的拥有。为什么?

第一、它跨平台,支持 Windows、Mac 和 Linux 等平台,相应可以通过 Scoop、Homebrew 等安装,或者通过预编译好的二进制安装。如果你有 Go 开发环境,可以通过源码安装。因为这个工具是用 Go 语言实现的。

第二、支持众多 SQL 数据库,比如常见的 PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server。源码安装默认支持它们。如果要支持更多,可以通过 build tags 编译。详细的支持列表如下:

DriverBuild TagDriver Used
Microsoft SQL Servermssqlgithub.com/denisenkom/go-mssqldb
MySQLmysqlgithub.com/go-sql-driver/mysql
Oracle Databaseoraclegithub.com/sijms/go-ora
PostgreSQLpostgresgithub.com/lib/pq
SQLite3sqlite3github.com/mattn/go-sqlite3



MySQLmymysqlgithub.com/ziutek/mymysql/godrv
Oracle Databasegodrorgithub.com/godror/godror
PostgreSQLpgxgithub.com/jackc/pgx/stdlib



Alibaba MaxComputemaxcomputesqlflow.org/gomaxcompute
Apache Avaticaavaticagithub.com/Boostport/avatica
Apache H2h2github.com/jmrobles/h2go
Apache Hivehivesqlflow.org/gohive
Apache Igniteignitegithub.com/amsokol/ignite-go-client
Apache Impalaimpalagithub.com/bippio/go-impala
AWS Athenaathenagithub.com/uber/athenadriver/go
Azure Cosmoscosmosgithub.com/btnguyen2k/gocosmos
Cassandracassandragithub.com/MichaelS11/go-cql-driver
ClickHouseclickhousegithub.com/kshvakov/clickhouse
Couchbasecouchbasegithub.com/couchbase/go_n1ql
Cznic QLqlmodernc.org/ql
Firebird SQLfirebirdgithub.com/nakagami/firebirdsql
Genjigenjigithub.com/genjidb/genji/sql/driver
Google BigQuerybigquerygorm.io/driver/bigquery/driver
Google Spannerspannergithub.com/rakyll/go-sql-driver-spanner
Microsoft ADODBadodbgithub.com/mattn/go-adodb
ModernC SQLitemoderncsqlitemodernc.org/sqlite
ODBCodbcgithub.com/alexbrainman/odbc
Prestoprestogithub.com/prestodb/presto-go-client/presto
SAP ASEtdsgithub.com/thda/tds
SAP HANAhdbgithub.com/SAP/go-hdb/driver
Snowflakesnowflakegithub.com/snowflakedb/gosnowflake
Trinotrinogithub.com/trinodb/trino-go-client/trino
Verticaverticagithub.com/vertica/vertica-sql-go
VoltDBvoltdbgithub.com/VoltDB/voltdb-client-go/voltdbclient



MOST DRIVERSmostall drivers excluding ODBC (requires CGO and additional dependencies)
ALL DRIVERSallall drivers

实话说,真的不要太强大。

而且,虽然支持这么多数据库,但连接和使用却是类似的。

如何连接数据库

usql 命令接上 DSN 就可以连上对应的数据库了。DSN 的语法如下(三种形式):

driver+transport://user:pass@host/dbname?opt1=a&opt2=b
driver:/path/to/file
/path/to/file

比如连接到 MySQL 数据库的例子:

$ usql my://user:pass@host/dbname
$ usql mysql://user:pass@host:port/dbname
$ usql my://
$ usql /var/run/mysqld/mysqld.sock

链接到 SQLite3:

$ usql dbname.sqlite3

此外,还支持直接使用 usql 进入交互界面,然后通过 \c + dsn 的方式连接。这样可以随时切换数据库。

此外,该工具还支持语法高亮,执行外部 shell 命令等。这么好的工具,赶紧试试吧!

对了,项目地址:https://github.com/xo/usql,Star 数 6.1k+。


文末「阅读原文」可直达项目首页。



推荐阅读


福利

我为大家整理了一份从入门到进阶的Go学习资料礼包,包含学习建议:入门看什么,进阶看什么。关注公众号 「polarisxu」,回复 ebook 获取;还可以回复「进群」,和数万 Gopher 交流学习。

浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报