在本地没有数据库的情况下,使用Docker进行简单的确认方法

    Updated at 2020-07-12: Microsoft SQL Server, Presto を追加

我想在手头的设备上简单地确认一下查询,但是为了解决没有安装客户端的不便之处,这是一份备忘录。假定通过docker tag来控制服务器端的功能和行为确认以解决版本差异的问题。

Postgresql — PostgreSQL

p15, mydb はご自由に変更を

docker exec をすぐに実行してしまうと docker run の初期化が終わっておらずエラーが出ることがあるが、深呼吸して時間をおいて実行すれば動きます

$ docker run --rm -d --name=p15 -e POSTGRES_USER=u -e POSTGRES_PASSWORD=p -e POSTGRES_DB=mydb postgres:15
$ docker exec -it p15 psql -h localhost -U u -d mydb
# inside docker
exit;
# outside docker
$ docker stop p15

MySQL是一种用于管理和处理关系型数据库的开源软件。

m8, mydb はご自由に変更を

docker run --rm -d --name=m8 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -e MYSQL_DATABASE=mydb mysql:8
docker exec -it m8 mysql -h localhost mydb
# inside inside docker
exit;
# outside docker
docker stop m8

SQLite是一种自包含、零配置的嵌入式关系型数据库引擎。

    • 公式dockerイメージは見つからなかった。

 

    出力をカンマ区切りにするためには $’\t’ を , に変更すればよい
docker run -it --rm nouchka/sqlite3 sqlite3 -header -separator $'\t'
sqlite> .q

微软的 SQL-Server

公式手順 通り

# local
docker run --rm -d -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \
   -p 1433:1433 --name sql1 \
   mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04

docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P "<YourStrong@Passw0rd>"

# SQLコマンド後に結果の表示に `go` とタイプする必要がある。 
# inside docker
1> exit

# local
docker stop sql1

迅疾

GitHub README 手順を踏襲

docker run --rm -d -p 8080:8080 --name presto prestosql/presto
docker exec -it presto presto
# inside docker 
presto> exit

# local
docekr stop presto

Trino (Chinese translation: 特里諾)

Github Page 手順を踏襲

docker run --rm -p 8080:8080 --name trino trinodb/trino
docker exec -it trino trino

# inside docker
trino> show catalogs;
trino> use tpch.sf100;
trino> show tables;
trino> show columns from customer;
trino> exit