共通
Oracle Database 21 Express Edition
- コマンドラインクライアントによるデフォルトインスタンスへのログインは
sqlplus system/(インストーラーで設定したパスワード)@xe
- インスタンスの起動・停止はスタートメニューの Oracle Instance Manager より(OS Boot の際、自動的に起動される)
- SQL*Plus の中で、テーブルの仕様を確認するコマンドは
desc テーブル名
、テーブル一覧を保有する簡単なテーブル(もしかしたらビューかも)としてTAB
がある- 列の詳細はテーブル
all_tab_columns
で確認できる
- 列の詳細はテーブル
- Go言語のドライバーとして、今回は https://github.com/sijms/go-ora を使用
- 接続文字列の仕様は
oracle://ユーザ名:パスワード@ホスト名:1521/xe
- 接続文字列の仕様は
- 位置指定のプレースホルダーは
:1
,:2
,…
DatabaseTypeName() | ScanType().String() |
---|---|
NCHAR | string |
NUMBER | float64 |
PostgreSQL
scoop install postgresql
だけでインストールできた。さすが OSS- コマンドラインクライアントによるデフォルトインスタンスへのログインは
psql "host=127.0.0.1 port=5432 user=postgres dbname=postgres sslmode=disable"
- インスタンスの起動・停止は
pg_ctl start
/pg_ctl stop
(OSブートで勝手に立ち上がらなかった。よし) - PostgreSQL ではトランザクション内でエラーが一度でも起きると、以後、ロールバックを行うまで、ずっとエラーになる1
- psql の中で、テーブルの仕様を確認するコマンドは
\d テーブル名
、テーブル一覧は\d
で確認できる- 詳細を確認は pg_attribute(テーブルの列情報)、pg_class(テーブルの名前などの情報)、pg_type(データの型情報)などのテーブルを参照する。
- Go言語のドライバーとして、今回は https://github.com/lib/pq を使用
- 接続文字列の仕様は(例)
host=127.0.0.1 port=5432 user=postgres dbname=postgres sslmode=disable
- 接続文字列の仕様は(例)
- 位置指定のプレースホルダ―は
$1
,$2
…
DatabaseTypeName() | ScanType().String() |
---|---|
NAME | interface{} |
INT2 | int16 |
INT4 | int32 |
BOOL | bool |
_TEXT | interface{} |
VARCHAR | string |
NUMERIC | interface {} |
Microsoft SQL Server
- コマンドラインクライアントによるデフォルトインスタンスへのログインは
sqlcmd -S (自分のPC名) -E
(-S は接続先サーバー、-E は Windows認証を使うことを表す) - インスタンスの起動・停止はスタートメニューの SqlServer Configuration Manager より
- sqlcmd の中で、テーブル一覧を見るコマンドは不明
- sys.objects(テーブルやビューなど)、sys.columns(列情報)、sys.types (型情報)などのテーブルを参照する。
- Go言語のドライバーとして、今回は https://github.com/microsoft/go-mssqldb を使用
- PostgreSQL のようにエラーがあると、トランザクションが壊れるということはなかった。
- 位置指定のプレースホルダ―は
@p1
,@p2
, ...
DatabaseTypeName() | ScanType().String() |
---|---|
NVARCHAR | string |
INT | int64 |
DATETIME | time.Time |
BIT | bool |
CHAR | string |
DECIMAL | []uint8 |
VARCHAR | string |
MySQL
scoop install mysql
だけでインストール可能- コマンドライン栗案とは
mysql
- データベースへの接続は
mysql
→use データベース名
- データベースは
create database データベース名
だけで作れる
- データベースへの接続は
- インスタンスの起動は
mysqld --standalone
。停止は Ctrl-C で、いいのかな - Go言語のドライバーとして https://github.com/go-sql-driver/mysql を使用
- テーブル一覧は
information_schema.tables
、カラム一覧はinformation_schema.columns
で - 接続文字列は
username:password@protocol(address)/dbname?param=value
だが、デフォルトならroot:@/dbname
でいける(dbname
はmysql
→show databases
で確認できる)
DatabaseTypeName() | ScanType().String() |
---|---|
DECIMAL | sql.RawBytes |
VARCHAR | sql.RawBytes |
- おせっかいの変態仕様め↩
- SQL Server 認証にするのは簡単だが、後々、プログラムのサポートでWindows 認証でログインできないという問い合わせが来たときに調べなければいけないことを考えると、今調べておいた方がよいと考えた。↩