[转帖]USQL:支持SQL/NoSQL数据库的通用命令行工具

usql,支持,sql,nosql,数据库,通用,命令行,工具 · 浏览次数 : 0

小编点评

**数据库连接** ```sql CREATE DATABASE 1my:root@localhost=> use test; ``` **SQL 语句** ```sql select *my:root@localhost-> from testmy:root@localhost-> \\pselect *from testmy:root@localhost-> \\gtest_id | name+---------+-------+   1 | hello(1 rows)4.快速切换到另一个数据库连接5.使用变量进行条件查询# 设置变量my:root@localhost/wordpress=> \\echo Welcome `echo $USER` -- 'currently:' \"(\" `date` \")\"Welcome root -- currently: ( Jul 18 11:47:31 CST 2018 )反引号参数的执行结果也可以直接设置为一个变量的值: 相关主题NoSQL:如何在Ubuntu 16.04上安装OrientDB。归纳总结以上内容,生成内容时需要带简单的排版

正文

https://ywnz.com/linuxysjk/2342.html

 

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 用法

1.USQL 命令行语法

$ usql --help

usql, the universal command-line interface for SQL databases.

usql 0.7.0

Usage: usql [--command COMMAND] [--file FILE] [--output OUTPUT] [--username USERNAME] [--password] [--no-password] [--no-rc] [--single-transaction] [--set SET] DSN

Positional arguments:

DSN                    database url

Options:

--command COMMAND, -c COMMAND  run only single command (SQL or internal) and exit

--file FILE, -f FILE   execute commands from file and exit

--output OUTPUT, -o OUTPUT output file

--username USERNAME, -U USERNAME database user name [default: mike]

--password, -W         force password prompt (should happen automatically)

--no-password, -w      never prompt for password

--no-rc, -X            do not read start up file

--single-transaction, -1  execute as a single transaction (if non-interactive)

--set SET, -v SET      set variable NAME=VALUE

--help, -h             display this help and exit

--version              display version and exit

2.USQL 支持的反斜杠命令

$ usql

Type "help" for help.

(not connected)=> \?

General

\q                    quit usql

\copyright            show usql usage and distribution terms

\drivers              display information about available database drivers

\g [FILE] or ;        execute query (and send results to file or |pipe)

\gexec                execute query and execute each value of the result

\gset [PREFIX]        execute query and store results in usql variables

Help

\? [commands]         show help on backslash commands

\? options            show help on usql command-line options

\? variables          show help on special variables

Query Buffer

\e [FILE] [LINE]      edit the query buffer (or file) with external editor

\p                    show the contents of the query buffer

\raw                  show the raw (non-interpolated) contents of the query buffer

\r                    reset (clear) the query buffer

\w FILE               write query buffer to file

Input/Output

\echo [STRING]        write string to standard output

\i FILE               execute commands from file

\ir FILE              as \i, but relative to location of current script

Transaction

\begin                begin a transaction

\commit               commit current transaction

\rollback             rollback (abort) current transaction

Connection

\c URL                connect to database with url

\c DRIVER PARAMS...   connect to database with SQL driver and parameters

\Z                    close database connection

\password [USERNAME]  change the password for a user

\conninfo             display information about the current database connection

Operating System

\cd [DIR]             change the current working directory

\setenv NAME [VALUE]  set or unset environment variable

\! [COMMAND]          execute command in shell or start interactive shell

Variables

\prompt [TEXT] NAME   prompt user to set internal variable

\set [NAME [VALUE]]   set internal variable, or list all if no parameters

\unset NAME           unset (delete) internal variable

3.USQL 目前支持的数据库类型

Database (scheme/driver)Protocol Aliases [real driver]
Microsoft SQL Server (mssql) ms, sqlserver
MySQL (mysql) my, mariadb, maria, percona, aurora
Oracle (ora) or, oracle, oci8, oci
PostgreSQL (postgres) pg, postgresql, pgsql
SQLite3 (sqlite3) sq, sqlite, file
Amazon Redshift (redshift) rs [postgres]
CockroachDB (cockroachdb) cr, cockroach, crdb, cdb [postgres]
MemSQL (memsql) me [mysql]
TiDB (tidb) ti [mysql]
Vitess (vitess) vt [mysql]
Google Spanner (spanner) gs, google, span (not yet public)
MySQL (mymysql) zm, mymy
PostgreSQL (pgx) px
Apache Avatica (avatica) av, phoenix
Apache Ignite (ignite) ig, gridgain
Cassandra (cql) ca, cassandra, datastax, scy, scylla
ClickHouse (clickhouse) ch
Couchbase (n1ql) n1, couchbase
Cznic QL (ql) ql, cznic, cznicql
Firebird SQL (firebirdsql) fb, firebird
Microsoft ADODB (adodb) ad, ado
ODBC (odbc) od
OLE ODBC (oleodbc) oo, ole, oleodbc [adodb]
Presto (presto) pr, prestodb, prestos, prs, prestodbs
SAP HANA (hdb) sa, saphana, sap, hana
Snowflake (snowflake) sf
VoltDB (voltdb) vo, volt, vdb

 

USQL 使用实例

1.连接到不同数据库

这里演示几个常用数据库连接方法,其它数据库也类似:

2.连接到一个 MySQL 数据库

# 使用默认信息连接到数据库

$ usql my://

# 使用用户名和密码连接到指定的数据库

$ usql my://user:pass@host/dbname

# 使用用户名、密码和端口连接到指定的数据库

$ usql mysql://user:pass@host:port/dbname

# 使用指定的套接字连接数据库

$ usql /var/run/mysqld/mysqld.sock

3.连接到一个 PostgreSQL 数据库

# 使用默认信息连接到数据库

$ usql pg://

# 使用用户名和密码连接到指定的数据库

$ usql pg://user:pass@host/dbname

# 使用用户名、密码和端口连接到指定的数据库

$ usql postgres://user:pass@host:port/dbname

# 使用指定的套接字连接数据库

$ usql /var/run/postgresql

4.连接到一个 Oracle 数据库

# 使用默认信息连接到数据库

$ usql or://

# 使用用户名和密码连接到指定的数据库

$ usql or://user:pass@host/sid

# 使用用户名、密码和端口连接到指定的数据库

$ usql oracle://user:pass@host:port/sid

5.连接到一个 SQL Server 数据库

# 使用默认信息连接到数据库

$ usql ms://

# 使用用户名和密码连接到指定的数据库

$ usql ms://user:pass@host/dbname

# 使用用户名、密码和端口连接到指定的数据库

$ usql mssql://user:pass@host:port/dbname

# 使用用户名和密码连接到指定实例的数据库

$ usql ms://user:pass@host/instancename/dbname

 

执行查询和命令

以下例子均在 MySQL 数据库环境以执行。

1.创建一个名为 test 的数据库,并在这个数据库中建立的名为 test 的表中新增一行数据。

$ usql my://root:000000@localhost

Connected with driver mysql (5.7.18-log)

Type "help" for help.

my:root@localhost=> create database test;

CREATE DATABASE 1

my:root@localhost=> use test;

USE

my:root@localhost=> CREATE TABLE IF NOT EXISTS `test`(

my:root@localhost(>    `test_id` INT,

my:root@localhost(>    `name` VARCHAR(100) NOT NULL

my:root@localhost(> )ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE

my:root@localhost=> insert into test (test_id, name) values (1, 'hello');

INSERT 1

my:root@localhost=> select * from test;

test_id | name

+---------+-------+

   1 | hello

(1 rows)

2.连接到一个 MySQL 数据库并运行一个名为 script.sql 的脚本

USQL:支持SQL/NoSQL数据库的通用命令行工具

接下来我们再举几个使用内置命令进行操作的例子。

3.打印并执行缓充区中的 SQL 语句

my:root@localhost=> select *

my:root@localhost-> from test

my:root@localhost-> \p

select *

from test

my:root@localhost-> \g

test_id | name

+---------+-------+

   1 | hello

(1 rows)

4.快速切换到另一个数据库连接

USQL:支持SQL/NoSQL数据库的通用命令行工具

5.使用变量进行条件查询

# 设置变量

my:root@localhost/wordpress=> \set meta 2179

# 查看当前已设置的变量

my:root@localhost/wordpress=> \set

meta = '2179'

# 使用变量做为条件进行查询

USQL:支持SQL/NoSQL数据库的通用命令行工具

变量调用支持 :NAME、:’NAME’、和 :”NAME” 这三种方式进行调用。

6.使用反引号参数

my:root@localhost/wordpress=> \echo Welcome `echo $USER` -- 'currently:' "(" `date` ")"

Welcome root -- currently: ( Jul 18 11:47:31 CST 2018 )

反引号参数的执行结果也可以直接设置为一个变量的值:

USQL:支持SQL/NoSQL数据库的通用命令行工具

 

相关主题

NoSQL:如何在Ubuntu 16.04上安装OrientDB

与[转帖]USQL:支持SQL/NoSQL数据库的通用命令行工具相似的内容:

[转帖]USQL:支持SQL/NoSQL数据库的通用命令行工具

https://ywnz.com/linuxysjk/2342.html USQL 是一款使用 Go 语言开发的支持 SQL/NoSQL 数据库的通用命令行工具,它支持多种主流的数据库软件,目前最新版本是usql 0.7.0。比如 PostgreSQL、MySQL、Oracle Database、S

[转帖]数据库命令行工具USQL、mycli、litecli、pgcli

https://www.cnblogs.com/-wenli/p/11239042.html USQL USQL 是一款使用 Go 语言开发的支持 SQL/NoSQL 数据库的通用命令行工具,它支持多种主流的数据库软件,目前最新版本是usql 0.7.0。比如 PostgreSQL、MySQL、Or

[转帖]USQL

usql is a universal command-line interface for PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, and many other databases including N

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打