SQLコマンドまとめ

SQLコマンド

接続

操作項目共通・MySQLPostgreSQL備考
RDBMSへの接続mysql -u ユーザー名 -ppsql -u ユーザー名 -p[-p データベース名] で指定したデータベースにそのまま接続できる。
特定のホストサーバへの接続mysql -u ユーザー名 -h ホスト名 -ppsql -u ユーザー名 -h ホスト名 -p
接続終了\qまたは [quit]

便利

操作項目共通・MySQLPostgreSQL備考
コマンド一覧表示mysql -?psql -?または [mysql –help]
コマンドの詳細を表示[ヘルプを表示したいコマンド] -?
取り消し\c¥rまたは [clear]

データベース設定

操作項目共通・MySQLPostgreSQL備考
データベース一覧表示SHOW DATABASES;\l
データベースへの接続USE データベース名;\c データベース名
データベースの作成CREATE DATABASE データベース名;[DEFAULT CHARACTER SET utf8]で文字コードを指定できる。
データベースの削除DROP DATABASE データベース名;

テーブル設定

操作項目共通・MySQLPostgreSQL備考
テーブルの一覧表示SHOW TABLES;\dt
テーブルの作成CREATE TABLE テーブル名(
    フィールド名1 型1,
    フィールド名2 型2,
    フィールド名3 型3,
    PRIMARY KEY(フィールド名n)
);
型やPRIMARY KEY以外にも属性を設定可。
テーブルの変更ALTER TABLE テーブル名 RENAME TO 新しいテーブル名;
テーブルの削除DROP TABLE テーブル名;
フィールドの変更ALTER TABLE テーブル名 CHANGE 変更前のフィールド名
    変更後のフィールド名 型 属性;
フィールドの追加ALTER TABLE テーブル名 ADD
    フィールド名4 型4 NOT NULL,
    フィールド名5 型5 AFTER フィールド名,
    フィールド名6 型6 DEFAULT ‘初期値’;
カラムの削除ALTER TABLE テーブル名 DROP 削除するフィールド名;
テーブルのフィールド一覧表示DESC テーブル名;\d テーブル名または [SHOW COLUMNS(またはFIELDS) FROM テーブル名]

データ入力

操作項目共通・MySQLPostgreSQL備考
テーブルへのデータ新規入力INSERT INTO テーブル名(
    フィールド名1,
    フィールド名2
)
VALUES(
    値1,
    値2
);
全てのカラムに対応した順番で値を入力するのであれば、フィールド名は省略可。
テーブルのデータ変更UPDATE テーブル名 SET
    フィールド名1=値1,
    フィールド名2=値2
WHERE
    変更したいデータに対応するフィールド名=対応する値;

データ削除

操作項目共通・MySQLPostgreSQL備考
テーブルのデータ削除DELETE FROM
    テーブル名
WHERE
    変更したいデータに対応するフィールド名=対応する値;

データ閲覧

操作項目共通・MySQLPostgreSQL備考
全レコードの一覧表示SELECT
    *
FROM
    テーブル名;
頭に [EXPLAIN] を付けると、SQL文のパフォーマンスを確認できる。
内部結合SELECT
    a.フィールド名1,
    a.フィールド名2
テーブル名1 AS a
    INNER JOIN テーブル名2 AS b ON (a.フィールド名3 = b.フィールド名3);
外部結合SELECT
    a.フィールド名1,
    a.フィールド名2
テーブル名1 AS a
    LEFT OUTER JOIN テーブル名2 AS b ON (a.フィールド名3 = b.フィールド名3);

データベースのバックアップ

操作項目共通・MySQLPostgreSQL備考
全てのデータベースのエクスポートmysqldump -u root -p -x –all-databases > dump.sql(任意のファイル名.sql)DBのバックアップに使える。
特定のデータベースのエクスポートmysqldump -u ユーザー名 -h -p データベース名 > dump.sql(任意のファイル名.sql)
全てのデータべースのインポートmysql -u root -p < dump.sql(任意のファイル名.sql)
特定のデータべースのインポートmysql -u ユーザー名 -h -p データベース名 < dump.sql(任意のファイル名.sql)

インデックス

操作項目共通・MySQLPostgreSQL備考
インデックスの追加ALTER TABLE テーブル名 ADD INDEX インデックス名(フィールド名);カラム名を複数指定すると、複合インデックスになる。
インデックスの削除ALTER TABLE テーブル名 DROP INDEX インデックス名;

一意の識別子

操作項目共通・MySQLPostgreSQL備考
AUTO_INCREMENTの設定例CREATE TABLE テーブル名(
    id INT(8) NOT NULL  AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    PRIMARY KEY(id)
);
例えば、
INSERT INTO テーブル名(name) VALUES(‘名前1’, ‘名前2’, ‘名前3’);
と入力するとidに一意の番号が付与される。
タイトルとURLをコピーしました