MySQL
PostgreSQL
oracle
DB
MSSQL

色々DBを使っているとコマンドのパラメータ等を忘れることがあるのでメモ
対象のDBは以下
Oracle
SQL Server
MySQL
PostgreSQL

内容は以下
サービス起動・停止
接続コマンド
ネットワーク設定
DB作成・ユーザ作成
管理情報取得のSQL
その他SQL
ODBC・JDBC接続
その他メモ
参考リンク

Oracle

サービス起動・停止

接続コマンド

コマンド

sqlplus <ユーザ名>/<パスワード>
sqlplus <ユーザ名>/<パスワード>@<ホスト名>:<ポート番号>/<サービス名>

ヘルプ

sqlplus /?

ネットワーク設定

DB作成・ユーザ作成

DBの作成は「dbca」コマンドで行う。

ユーザ作成
CREATE USER <ユーザ名>
IDENTIFIED BY "<パスワード>"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
/

GRANT DBA TO <ユーザ名>;

管理情報取得のSQL

接続しているデータベースの確認(12c用)
show con_name;
文字コード確認
SELECT PARAMETER,VALUE FROM NLS_DATABASE_PARAMETERS where parameter = 'NLS_CHARACTERSET';

その他SQL

文字列の16進表示
select rawtohex(列名) from テーブル名;

ODBC・JDBC接続

http://apis.jpn.ph/fswiki/wiki.cgi?page=Oracle%2FInstantClient
Windows版のインストールは管理者モードで実行する必要がある。
また、64bitOSでも32bitのODBCドライバを使う場合は32bit版のBasic ODBC Updated を使うこと。
環境変数にNLS_LANGの指定をしないと、インストール時にJAを付けても日本語化されない。

その他メモ

コンテナとプラガブルについて

コンテナ・データベースが12cから導入され、1つのコンテナデータベースに複数のプラガブル・データベースを作成できるようになった。

文字型のbyte数について

char(5)、varchar(5) 5byte。UTF8環境で「あああああ」とやったら『値が大きすぎます(実際: 15、最大: 5)』となった。
nchar(5)、nvarchar2(5) 5文字。rawtohexで確認したら「30423042304230423042」だったのでUTF16で格納されている。lengthbでバイト数を確認したら10byt。

NLS_LANG

●UTF8
$export NLS_LANG=Japanese_Japan.AL32UTF8

●SJIS
$export NLS_LANG=Japanese_Japan.JA16SJIS

参考リンク

ORA-28040

サーバ側のsqlnet.oraに以下の内容を記載する。
SQLNET.ALLOWED_LOGON_VERSION=8
特にサービスを再起動する必要もなかった。

SQL Server

サービス起動・停止

Windowsのサービスか、「SQL Server Configration Manager」を使用する。

接続コマンド

コマンド

sqlcmd -U <ユーザ名> -P <パスワード>
sqlcmd -U <ユーザ名> -P <パスワード> -d <データベース名>

ヘルプ

sqlcmd /?

管理者ユーザー

sa

メモ

SQL文の後に「go」を入力する必要がある。

ネットワーク設定

「SQL Server Configration Manager」を起動し、ネットワークの構成でTCP/IPを有効にする。
既定のインスタンスの場合は,ポート番号は1433

DB作成・ユーザ作成

create database <データベース名>;
GO
USE master;
CREATE LOGIN <ユーザ名>
WITH PASSWORD = N'<パスワード文字列>' ,
DEFAULT_DATABASE = <デフォルトの接続データベース名>;
GO
USE <データベース名>;
CREATE USER <ユーザ名>;
exec sp_addrolemember db_owner,<ユーザ名>;
GO

管理情報取得のSQL

接続しているデータベースの確認
select DB_NAME()
バージョン確認
select @@version;

ODBC・JDBC接続

その他メモ

ユーザー削除でdrop userを実行すると「存在しないか、権限がありません。」
が表示される。管理ツールでは削除可能。

参考リンク

https://blogs.yahoo.co.jp/hogesql/70749718.html

MySQL

PostgreSQL

Port番号

Oracle

SQL Server

既定のインスタンスの場合は1433

MySQL

PostgreSQL

接続コマンド

Oracle

SQL Server

コマンド

sqlcmd -U <ユーザ名> -P <パスワード>

管理者ユーザ

sa

備考

切断

quit

MySQL

PostgreSQL