MR.NiNi About Log Tech Graph Memo Books Twitter

About
Log
Tech
Graph
Memo
Books
Twitter

MySQLコマンド集

MySQLはオープンソースのSQLデータベースです。
ここではMySQLのコマンド及びMySQLで使用出来るSQLコマンドを掲載します。

【MySQLへのアクセス】
% mysql -u USERNAME -p

USERNAMEにはMySQLの有効なユーザ名を指定します。
-pはアクセス時にパスワードを指定するオプションです。
ちなみに対象ユーザにパスワードが設定されていない場合、「-p」を使用するとエラーになります。


【データベース一覧の表示】
mysql> show databases;


【使用するデータベースの指定】
mysql> use DATABASENAME


【テーブル一覧の表示】
mysql> show tables;


【カラム一覧の表示】
mysql> describe TABLENAME;


【対象テーブルのインデックス一覧の表示】
mysql> show index from TABLENAME;


【データベースの作成】
mysql> create database DATABASENAME character set CHARACTER

「character set CHARACTER」は、文字コードを指定する際に記述します。
指定出来る文字コードは環境に依存します。EUCの場合は「euc」、UTF-8の場合は「utf8」と記述します。


【データベースの削除】
mysql> drop database DATABASENAME


【データベース用ユーザの作成】
mysql> grant all on DATABASENAME* to USERNAME@'%' identified by 'PASSWORD';

「USERNAME@'%'」はユーザ名とアクセス元の対応となります。
localhostからのみ許可する場合は「USERNAME@localhost」と記述し、特定のIPアドレスからのみ許可する場合は「USERNAME@192.168.0.1」等のように記述します。


【権限設定の反映】
mysql> flush privileges;
ユーザの新規作成等を行なった場合に忘れずに実行します。


【データベースのバックアップ】
# mysqldump -u USERNAME -p DATABASE > DUMPFILE.dmp

上記のコマンドを実行した場合、データベース名「DATABASE」の内容を「DUMPFILE.dmp」に保存します。
なお、環境によっては様々なオプションを付与する必要があります。

# mysqldump -u root -p --default-character-set=utf8 --extended-insert \
    --hex-blob DATABASE > DUMPFILE.dmp


上記のコマンドでは、文字コードを「UTF-8」に指定(--default-character-set=utf8)し、複数の値を1分に与えるINSERT構文を編集(--extended-insert)し、バイナリ型のデータをエスケープ処理せずに16進数表記でバックアップ(--hex-blob)します。
なお、--hex-blobと--extended-insertは必ず一緒に使用します。


【データベースの文字コードの表示】
mysql> show variables like 'character\_set\_%';


【インデックスの新規作成】
mysql> create index INDEXNAME on TABLENAME (COLUMNAME);


【フルテキストインデックスの新規作成】
mysql> create fulltext index INDEXNAME on TABLENAME (COLUMNAME);

なお、MySQLにてフルテキストインデックスを作成する場合、テーブルがMyISAM形式で作成されている必要があります。例えばInnoDB形式で作成されているテーブルに対してフルテキストインデックスを作成しようとするとエラーになるのでご注意下さい。


【フルテキストインデックスの新規作成(パーサ指定)】
mysql> create fulltext index INDEXNAME on TABLENAME (COLUMNAME) with parser PARSERNAME;


【インデックスの削除】
mysql> drop index INDEXNAME on TABLENAME;


【インデックス情報の再生成】
mysql> repair table TABLENAME quick;


【プラグインのインストール】
mysql> install plugin PLUGINAME soname 'LIBRARYFILENAME';


【プラグインのアンインストール】
mysql> uninstall plugin PLUGINAME;


【インストール済みプラグイン一覧表示】
mysql> show plugin;


【インストール済みプラグイン情報表示】
mysql> show status like "PLUGINNAME_info";


【レコードの挿入】
mysql> insert into TABLENAME(COLUMNNAME) values(VALUE);

COLUMNAMEは省略可能。ただし省略した場合は必要なデータをすべてVALUEに記述する必要があります。
複数の内容を記述する場合は「table(id,name,content) values("1","ichiro","hogehoge")」というようにカンマ区切りで記述します。


【レコードの更新】
mysql> update TABLENAME set COLUMNNAME=VALUE where WHERECOLUM = WHEREVALUE;

where以降は省略可能。ただし、省略した場合はTABLENAMEのテーブル上のすべてのデータが上書きされます。


【カラムの削除】
mysql> alter table TABLENAME drop column COLUMNNAME;

一度にひとつのカラムしか削除出来ませんので注意。


【カラム名の変更】
mysql> alter table TABLENAME change column COLUMNNAME NEWCOLUMNNAME COLUMNTYPE;

名称を変更するだけではなく「型」も同時に指定します。
ここで型が違うとデータ破損のリスクがありますので、予めdescribe TABLENAME等で現在の型を確認して下さい。



【掲載日:2010.05.10 / 最終更新日:2013.07.08】

メモ書きトップに戻る / トップページに戻る