[DBMS] DBMSごとのチートシート

この記事は3年以上前に書かれた記事です。情報が古い可能性があります。

DBMSごとに操作が異なりいつも混乱するので、よく使う操作を以下にメモ。

Oracle

接続
sqlplus ユーザ名/パスワード@SID
トランザクション

“commit” でコミット。

テーブル一覧表示 
select table_name from user_tables;

または

select table_name from all_tables;
カラム一覧表示
desc テーブル名
フィールド型変更
alter table テーブル名 modify (列名 型名);
カラム追加
alter table テーブル名 add ( カラム名1 型名1 [default デフォルト値] [not null], ... );
主キー変更

Oracleは既存の主キーは変更できないので、一度削除してから追加という手順になる。

alter table テーブル名 drop constraint キー名;
alter table テーブル名 add constraint キー名 primary key ( カラム名1, ... );
制約名を調べる
select constraint_name from user_constraint where table_name ='テーブル名';
not null 制約をつける
alter table テーブル名 modify ( カラム名 not null );

はずすときは

alter table テーブル名 modify ( カラム名 null );

Microsoft SQL Server

接続
osql -S"ホスト名" -d"DB名" -U"ユーザ名" -P"パスワード"
トランザクション 

“go” でステートメントを完了すると、オートコミット。(既定)

テーブル一覧表示
select name from sysobjects where xtype = 'S' or xtype = 'U' or xtype = 'V'
カラム一覧表示
sp_columns テーブル名

MySQL

接続 
mysql -u"ユーザ名" -p"パスワード" [DB名]
データベース切替
USE データベース名
テーブル一覧表示
SHOW TABLES;
カラム一覧表示
DESC テーブル名

または

SHOW columns FROM テーブル名
トランザクション

MySQLは既定で(ステートメントにエラーがなければ)オートコミット(設定で変更可)

Oracleのようにトランザクションを制御したい場合は、

START TRANSACTION;

もしくは

BEGIN;

で開始。

完了する場合は、

COMMIT;

ロールバックする場合は、

ROLLBACK;

PostgreSQL

psql -h "ホスト名" -U "ユーザ名" -d "DB名"

続けてパスワード入力。

トランザクション

PostgreSQLは既定で(ステートメントにエラーがなければ)オートコミット(設定で変更可)

Oracleのようにトランザクションを制御したい場合は、

START TRANSACTION;

で開始して、完了する場合は、

COMMIT;
テーブル一覧表示
\d select * from pg_tables;
カラム一覧表示
\d テーブル名

参考サイト

タイトルとURLをコピーしました