>> i's SQUARE >> Webサービス構築ガイド >> MySQLコマンドリファレンス

MySQLコマンドリファレンス

MySQLを使用するにあたって基本的なコマンドを紹介します。 尚、基本的なSQLについてはこちらを参照してみてください☆



■データベースの作成・削除

CREATE DATABASE データベース名;
DROP DATABASE データベース名;
作成したデータベースを使用するには以下のコマンドを打ちます
USE 作成したデータベース名;


■テーブルの作成・削除のサンプル

CREATE TABLE テーブル名 (カラム名1 VARCHAR(5), カラム名2 INT);
DROP TABLE テーブル名
作成したテーブル情報をみるには以下のコマンドを打ちます
SHOW TABLES;
DESC 作成したテーブル名;
以下はMySQLで使用できるカラムの基本的なデータ型です。

【数値型】
内容
TINYINT1バイト(符号あり:-128〜127、符号なし:0〜255)
SMALLINT2バイト
MEDIUMINT3バイト
INT4バイト(符号あり:約−21億〜21億、符号なし:約42億)
BIGINT8バイト

他には浮動小数点として、FLOATやDOUBLEやREAL
文字列として格納される数値としてDECIMALやDECやNUMERICやFIXED等があります

【日付型】
内容
DATETIMEYYYY-MM-DD HH:MM:SSで1000-01-01 00:00:00〜9999-12-31 23:59:59の範囲
DATEYYYY-MM-DDで1000-01-01〜9999-12-31の範囲
TIMESTAMPYYYY-MM-DD HH:MM:SSで1970-01-01 00:00:00〜2037-12-31 23:59:59の範囲
(レコードの作成・更新時に現在の日時が自動的に格納される)
TIMEHH:MM:SS形式
YEARYYYYで1901〜2155まで


【文字列型】
内容
CHAR(L)固定長文字列で0〜255バイト
VARCHAR(L)可変長文字列で0〜255バイト
TINYBLOB最大長255バイトで大文字小文字の区別をする
TINYTEXT最大長255バイトで大文字小文字の区別をしない
BLOB最大長65535バイトで大文字小文字の区別をする
TEXT最大長65535バイトで大文字小文字の区別をしない
MEDIUMBLOB最大長16777215バイトで大文字小文字の区別をする
MEDIUMTEXT最大長16777215バイトで大文字小文字の区別をしない
LONGBLOB最大長4294967295バイトで大文字小文字の区別をする
LONGTEXT最大長4294967295バイトで大文字小文字の区別をしない


▼カラムの数値型に負の数が入らないように制限する
INT UNSIGNED
▼デフォルト値を設定する
カラム名 VARCHAR(10) DEFAULT 'テスト'
▼NULLを禁止する
カラム名 INT NOT NULL
▼オートインクリメント機能を付加する
カラム名 INT AUTO_INCREMENT


■テーブル名やカラムを変更・削除する

テーブル名を変更する方法は以下の2つがあります

ALTER TABLE 元テーブル名 RENAME 新テーブル名;
RENAME TABLE 元テーブル名 TO 新テーブル名;
▼カラム名やデータ型を変更する
ALTER TABLE テーブル名 CHANGE カラム名 新カラム名 新データ型;
ALTER TABLE テーブル名 MODIFY カラム名 新データ型;
▼カラムを追加する
ALTER TABLE テーブル名 ADD 追加カラム定義;
デフォルトではテーブルの最後にカラムが追加されますが、 「追加カラム定義 FIRST」や「追加カラム定義 AFTER カラム名」で追加する場所を指定する事も可能です

▼カラムやキーを削除する
ALTER TABLE テーブル名 DROP COLUMN カラム名;
ALTER TABLE テーブル名 DROP PRIMARY KEY;
ALTER TABLE テーブル名 ALTER カラム名 DROP DEFAULT;


■インデックスを作成・削除する

CREATE INDEX インデックス名 ON テーブル名(インデックス用の指定カラム名);
ALTER TABLE テーブル名 ADD INDEX インデックス名(インデックス用の指定カラム名);

DROP INDEX インデックス名 ON テーブル名;
ALTER TABLE テーブル名 DROP INDEX インデックス名;
尚、インデックスはテーブル作成時に同時に作成する事も可能です。
以下はテーブル作成時にプライマリーキーやインデックスを作成するサンプル
CREATE TABLE TEST(id INT, aa VARCHAR(200), bb VARCHAR(50), PRIMARY KEY (id), INDEX test_idx(aa, bb) );
また、インデックスを作成した後は、そのインデックスがどの程度有効かどうか 以下のコマンドでSELECT文を解析した方が良いです
EXPLAIN SELECT文;


■データのインポート・エクスポート

「/home/test.csv」ファイル(「"」で囲まれたカンマ区切り)を「aho」テーブルにインポートするサンプル (1行目はカラムタイトルなので「IGNORE 1 LINES」で無視して改行コードは「CR+LF」)

LOAD DATA INFILE "/home/test.csv" INTO TABLE aho
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES
TERMINATED BY "\r\n" IGNORE 1 LINES;
「aho」テーブルのデータを「/home/test2.csv」ファイルにタブ区切りでエクスポートするサンプル
SELECT * INTO OUTFILE '/home/test2.csv'
LINES TERMINATED BY '\r\n' FROM aho;


■データベースのバックアップと復元

データベースのバックアップはLINUX上から以下のコマンドを打ちます

mysqldump データベース名 > "保存ファイル名" -u ユーザ名 -pパスワード
全てのデータベースのバックアップはLINUX上から以下のコマンドを打ちます
mysqldump --all-databases > "保存ファイル名" -u ユーザ名 -pパスワード
複数のデータベースのバックアップはLINUX上から以下のコマンドを打ちます
mysqldump --databases データベース名1 データベース名2 > "保存ファイル名" -u ユーザ名 -pパスワード
尚、復元はLINUX上から以下のコマンドを打ちます
mysql データベース名 < "保存ファイル名" -u ユーザ名 -pパスワード
テーブル単位のバックアップの場合はMySQLに接続して以下のコマンドを打ちます
BACKUP TABLE テーブル名 TO "保存ファイル名";
テーブルの復元はMySQLに接続して以下のコマンドを打ちます
RESTORE TABLE テーブル名 FROM "保存ファイル名";


■その他(良く使うコマンドや便利な関数等)

SELECT文の結果、先頭から5件のみデータを取得するサンプル

SELECT * FROM aho LIMIT 5;
NULLを条件に値を変える(ORACLEのNVL関数)サンプル(ccの項目がNULLなら0、NULL以外ならccを出力する)
SELECT IFNULL(cc,0) FROM aho;
指定の文字数で文字列を切り出すサンプル(「あいうえお」の2文字目から3文字分切り出し「いうえ」を出力する)
SELECT SUBSTRING('あいうえお',2,3);
日付を指定の形式で表示する(ORACLEのTO_CHAR関数相当)サンプル
SELECT DATE_FORMAT('日付','形式');
形式は例えば「YYYY-MM-DD」で表示したい場合は「%Y-%m-%d」、 「YY/MM/DD HH:MM:SS」で表示したい場合は「%y/%m/%d %H:%m:%s」



プログラマーに必要なスキルは、交渉・スケジュール管理・業務分析・提案・設計・言語・構築・保守・運用
SEに必要な能力は、これから言語・構築・保守・運用を引く
マネージャーに必要な能力は、さらに業務分析・提案・設計を引く
営業に必要な能力は、さらにスケジュール管理を引く
by プログラマーの格言