USQL
USQL 是一款使用 Go 语言开发的支持 SQL/NoSQL 数据库的通用命令行工具,它支持多种主流的数据库软件,目前最新版本是usql 0.7.0。比如 PostgreSQL、MySQL、Oracle Database、SQLite3、Microsoft SQL Server 以及许多其它的数据库(包括 NoSQL 和非关系型数据库)。
USQL 的灵感来自 PostgreSQL 的 PSQL,USQL 支持大多数 PSQL 的核心特性,比如:设置变量、反引号参数。并具有 PSQL 不支持的其它功能,如语法高亮、基于上下文的自动补全和多数据库支持等。
USQL项目地址
安装 USQL
由于 USQL 使用 Go 语言开发,具备了良好的Linux、Windows等跨平台特性。USQL 安装非常简单,官方也提供二进制、Homebrew、Scoop等多种安装方式。这里我们就使用最具通用性的二进制方式安装,以 Linux 平台为例:
$ wget https://github.com/xo/usql/releases/download/v0.7.0/usql-0.7.0-linux-amd64.tar.bz2
$ tar xjvf usql-0.7.0-linux-amd64.tar.bz2
$ sudo mv usql /usr/local/bin
如果你使用其它平台,可根据实际情况在官方下载页面下载对应版本。
USQL 用法
USQL:支持SQL/NoSQL数据库的通用命令行工具
mycli
mycli 是基于MySQL的命令行工具,直接使用 pip install mycli
安装,
具体介绍见 https://github.com/dbcli/mycli
$ mycli --help Usage: mycli [OPTIONS] [DATABASE] A MySQL terminal client with auto-completion and syntax highlighting. Examples: - mycli my_database - mycli -u my_user -h my_host.com my_database - mycli mysql://my_user@my_host.com:3306/my_database Options: -h, --host TEXT Host address of the database. -P, --port INTEGER Port number to use for connection. Honors $MYSQL_TCP_PORT. -u, --user TEXT User name to connect to the database. -S, --socket TEXT The socket file to use for connection. -p, --password TEXT Password to connect to the database. --pass TEXT Password to connect to the database. --ssh-user TEXT User name to connect to ssh server. --ssh-host TEXT Host name to connect to ssh server. --ssh-port INTEGER Port to connect to ssh server. --ssh-password TEXT Password to connect to ssh server. --ssh-key-filename TEXT Private key filename (identify file) for the ssh connection. --ssl-ca PATH CA file in PEM format. --ssl-capath TEXT CA directory. --ssl-cert PATH X509 cert in PEM format. --ssl-key PATH X509 key in PEM format. --ssl-cipher TEXT SSL cipher to use. --ssl-verify-server-cert Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default. -V, --version Output mycli's version. -v, --verbose Verbose output. -D, --database TEXT Database to use. -d, --dsn TEXT Use DSN configured into the [alias_dsn] section of myclirc file. --list-dsn list of DSN configured into the [alias_dsn] section of myclirc file. -R, --prompt TEXT Prompt format (Default: "\t \u@\h:\d> "). -l, --logfile FILENAME Log every query and its results to a file. --defaults-group-suffix TEXT Read MySQL config groups with the specified suffix. --defaults-file PATH Only read MySQL options from the given file. --myclirc PATH Location of myclirc file. --auto-vertical-output Automatically switch to vertical output mode if the result is wider than the terminal width. -t, --table Display batch output in table format. --csv Display batch output in CSV format. --warn / --no-warn Warn before running a destructive query. --local-infile BOOLEAN Enable/disable LOAD DATA LOCAL INFILE. --login-path TEXT Read this path from the login file. -e, --execute TEXT Execute command and quit. --help Show this message and exit. λ mycli -u root Password: mysql 5.5.53 mycli 1.19.0 Chat: https://gitter.im/dbcli/mycli Mail: https://groups.google.com/forum/#!forum/mycli-users Home: http://mycli.net Thanks to the contributor - Jialong Liu mysql root@localhost:(none)> show data databases create database
注:进入MySQL命令行后如果想执行Linux命令怎么办,先退出执行然后再登录MySQL?麻烦,其实可以直接用system。
mysql> system pwd /root mysql> system ll sh: ll: command not found mysql> system ls -al total 40160 dr-xr-x---. 39 root root 4096 Jul 10 14:47 . dr-xr-xr-x. 29 root root 4096 May 5 18:55 ..
litecli
litecli 是基于 sqlite 的命令行工具,直接用 pip install -U litecli
安装,具体介绍见
https://github.com/dbcli/litecli
$ litecli --help Usage: litecli [OPTIONS] [DATABASE] A SQLite terminal client with auto-completion and syntax highlighting. Examples: - litecli lite_database Options: -V, --version Output litecli's version. -D, --database TEXT Database to use. -R, --prompt TEXT Prompt format (Default: "\d> "). -l, --logfile FILENAME Log every query and its results to a file. --liteclirc PATH Location of liteclirc file. --auto-vertical-output Automatically switch to vertical output mode if the result is wider than the terminal width. -t, --table Display batch output in table format. --csv Display batch output in CSV format. --warn / --no-warn Warn before running a destructive query. -e, --execute TEXT Execute command and quit. --help Show this message and exit. λ litecli Version: 1.0.0 Mail: https://groups.google.com/forum/#!forum/litecli-users Github: https://github.com/dbcli/litecli (none)> .tables Not connected to database. (none)> .databases Not connected to database. (none)> use test You are now connected to database "test" Time: 0.001s test> .tables Time: 0.000s test> CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ); Query OK, 0 rows affected Time: 0.077s test> .tables +---------+ | name | +---------+ | COMPANY | +---------+ Time: 0.040s
pgcli
pgcli 是一个基于 PostgreSQL 的命令行工具,支持自动补全和语法高亮,直接使用pip install -U pgcli
安装,具体介绍见 https://github.com/dbcli/pgcli
$ pgcli --help Usage: pgcli [OPTIONS] [DATABASE] [USERNAME]Options: -h, --host TEXT Host address of the postgres database. -p, --port INTEGER Port number at which the postgres instance is listening. -U, --user TEXT User name to connect to the postgres database. -W, --password Force password prompt. -w, --no-password Never prompt for password. -v, --version Version of pgcli. -d, --dbname TEXT database name to connect to. --pgclirc TEXT Location of pgclirc file. --help Show this message and exit.