Edited at

DB接続

色々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