この記事は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 テーブル名