MySQLはWeb制作では欠かせないツールの一つです。ホームページやWebアプリの開発でも使われていますし、WordPressやMovable Type、EC-CUBEなどの大手CMSでもMySQLが採用されています。
本記事のテーマは、MySQLの基本的な使い方です。MySQLのインストール手順から、基本的な文法、代表的なGUIツールについても併せてご紹介しています。
MySQLの基礎知識
はじめにMySQLの基礎知識について簡単にまとめておきましょう。公式サイトにも解説があるので、併せてご覧いただければと思います。
» MySQL
MySQLとは?
MySQLは日本を含む世界中で使われているデータベース(データベース管理システム、RDBMS)です。世界中で最も普及しているオープンソースのRDBMSで、Web関連の制作物ではスタンダードとも言われるほど頻繁に採用されています。
もともとはスウェーデンの企業が保有していたいのですが、2010年よりOracleがMySQLの商標権と著作権を所有しています。GNU GPLライセンスと商用ライセンスの2つの製品が提供されています。
MySQLの特徴
MySQLの特徴としては、マルチユーザーに対応していることでしょう。Webアプリケーションのように、大量のユーザーが短時間でアクセスしてくる場合でもMySQLなら耐えられるのです。
さらに、軽快に動作することやシンプルな使い勝手、PHPとの親和性もMySQLの魅力です。スケーラビリティにも優れていることから、規模の大きなWebアプリケーションやWebサイトにも適しています。
MySQLの基本的な使い方
ここからはMySQLの基本的な使い方について解説していきます。まずはMySQLのインストール方法から。
インストールから動作確認、初期設定まで(Mac)
Macのローカル環境にMySQLをインストールする手順からご紹介します。いくつかの方法があるのですが、ここではHomebrewを使った方法で進めていきましょう。
※なお、MySQLを手動でインストールしたい場合もあるかもしれません。その場合は、下のリンクよりインストーラーをダウンロードしてインストールを行ってください。
» MySQL :: Download MySQL Community Server
MySQLをインストールする(Homebrew)
Homebrewとは、Mac向けのパッケージ管理システムのこと。MySQLのインストールも、Homebrewから行うことができます。Homebrewがインストールしてある状態で、下記のコマンドを入力してください。
$ brew update $ brew install mysql
MySQLのインストールがはじまるので、終了するまで待ちます。インストールが終わったら、下記のコマンドで正常にインストールができているか確認しておきましょう。
$ brew info mysql
インストールができていれば、MySQLの基本情報(バージョン番号など)が表示されるはずです。筆者のMacでは、下のバージョン情報から続く基本情報が表示されています。
mysql: stable 5.7.10 (bottled) Open source relational database management system https://dev.mysql.com/doc/refman/5.7/en/ (以下、省略)
MySQLを起動/停止する
MySQLを手動で起動/停止する方法です。下のコマンドで、MySQLの起動ができます。
$ mysql.server start
正常に起動できれば、下のように表示されるかと思います。
Starting MySQL SUCCESS!
MySQLを停止する場合は、下のコマンドを実行します。
$ mysql.server stop
rootにパスワードを設定する
MySQLをインストールしたての状態では、rootユーザーにパスワードがかかっていません。下のように、パスワードなしでもログインできてしまいます。
$ mysql -uroot
下記のコマンドを打って、rootユーザーのパスワード設定などの初期セットアップを行います。
$ mysql_secure_installation
パスワードを設定した後は、下記のコマンドでMySQLにログインできるか確認しておきましょう。
$ mysql -uroot -p
MySQLの基本文法
MySQLの基本的な文法について見ていきましょう。
データベース関連
まずは、データベース関連のSQLコマンドです。データベースを作るにはCREATE DATABASE文を使います。
CREATE DATABASE データベース名;
データベースの削除はDROPを使います。DROPを使うと、そのデータベースに格納されている情報が全て削除されてしまいます。使用する際は十分に注意しましょう。
DROP DATABASE データベース名;
使用するデータベースを変更する場合は、USE文を使って対象のデータベースを指定します。
USE データベース名;
なお、データベースの一覧を見たいときはSHOW文を使います。MySQLサーバー内のデータベースがリスト形式で表示されます。
SHOW DATABASES;
テーブル関連
テーブル関連のSQLコマンドです。USE文でデータベースを指定したあと、CREATE TABLEでテーブルが作成できます。テーブルを作成する際は、テーブル名と一緒に列名やデータ型、オプション(省略可)も併せて指定します。オプションには、PRIMARY KEYやUNIQUEなどが指定できます。
CREATE TABLE テーブル名 ( 列名 データ型 [オプション], 列名 データ型 [オプション], 列名 データ型 [オプション], … );
MySQLで使える主なデータ型について、下にまとめておきましょう。格納したいデータの内容や扱い方によって、それぞれの列に使うデータ型を決めていきます。
整数型 | INT(INTEGER)などの整数をあらわす型です。 |
---|---|
浮動小数点型 | FLOATやDOUBLEなどの浮動小数点のことです。 |
固定小数点型 | DECIMALやNUMERICなど、固定小数点をあらわします。 |
文字列型 | CHARやVARCHARなどの文字列をあらわします。 |
日付型、時刻型 | DATEやTIMESTAMPなど、日付や時刻をあらわす型です。 |
作成したテーブルの内容(テーブル定義)を確認したい場合は、SHOW FIELDS文を使います。FIELDとは、テーブルの列のことです。SHOW FIELDS文を使うと、テーブルに含まれている列名やデータ型、列のオプションなどが一覧形式で表示されます。
SHOW FIELDS FROM テーブル名;
データベースと同じく、テーブルも削除することができます。DROP TABLE文を使って、任意のテーブルを削除します。
DROP TABLE テーブル名;
テーブルの一覧を確認したい時は、SHOW文を使って実行をします。
SHOW TABLES;
データの編集(追加、削除、更新)
CREATE TABLEを使ってテーブルを作成しましたが、それだけではテーブルの中は空です。テーブルにデータを追加するには、INSERT文を使います。
INSERT INTO テーブル名 (列名1, 列名2, 列名3, …) VALUES(値1, 値2, 値3, …);
データを追加する列を指定したのち、VALUESでそれぞれの値を列挙していきます。指定しなかった列には、デフォルトの値が格納されます。
テーブルに格納されているデータを更新する時は、UPDATE文を使います。
UPDATE テーブル名 SET 列名1=更新値1;
上のSQL文だと、列名1の値が全て更新値1に変わってしまいます。一般的にはWHEREを併用して、更新する行(レコード)を指定することがほとんどです。
UPDATE テーブル名 SET 列名1=更新値1 WHERE 列名1=値;
なおINSERTと同様、複数の列に対して一度に更新をかけることもできます。
UPDATE テーブル名 SET 列名1=更新値1, 列名2=更新値2, 列名3=更新値3, …;
データを削除する場合は、DELETE文を使います。UPDATEと同じく、DELETE文でもWHEREを併用することが多いでしょう。
DELETE FROM テーブル名 WHERE 列名=値;
データの閲覧
各テーブルに格納されているデータを閲覧する方法です。SELECT文を使うことで、テーブルに格納されているデータを見ることができます。
SELECT * FROM テーブル名;
上ではアスタリスク(*)を書いていますが、これは全てのデータを指定する場合に使います。全ての列の、全てのデータが表示されます。任意の列だけを見たい場合は、アスタリスクの部分を列名に変えればOKです。
SELECT 列名 FROM テーブル名;
複数の列を指定することも可能です。
SELECT 列名1, 列名2, 列名3, … FROM テーブル名;
表示するデータをソートする場合は、ORDER BY文を使います。ORDER BYのあとに列名を記述して、ASC(昇順)もしくはDESC(降順)を指定すればデータが並び替えされます。列名だけを書いた場合は、ASC(昇順)でソートされます。
SELECT * FROM テーブル名 ORDER BY 列名 [ASC, DESC];
その他にも、WHERE文を使って条件に合うデータを抽出したり、他のテーブルのデータと組み合わせてデータを表示することもできます。標準から応用レベルになるので、本稿では割愛します。
MySQLが使えるGUIツール4選
最後に、MySQLが使えるGUIツールを4つご紹介します。
MySQLの基本的な操作について、SQL文を使った方法で解説しました。SQLに慣れていない方にとっては、少し抵抗があったかもしれません。ここからご紹介するツールでは、SQL文を書かなくてもMySQLが使える機能を備えています。
SQLに慣れていないビギナーのエンジニアや、デザイナーの方にもおすすめです。基本的に英語のツールが多いのですが、使う機能はいつも同じなのですぐに使いこなせるようになるでしょう。
MySQL Workbench(Windows、Linux、Mac)
MySQLが公式で出している、GUIツールです。記事執筆時点でのバージョンは6.3です。本家ということもあり、ツールの新鮮さや更新頻度の高さといった点でも安心できます。対応しているOSは、Windows、Linux、Macの3種類。表記は英語なので注意しましょう。
データの操作だけでなく、モデリングやサーバー設定、ユーザー管理、バックアップなど多岐にわたる機能が使えます。視覚的にデータベースのパフォーマンスが確認できるビジュアル・パフォーマンス・ダッシュボードや、他のデータベースからの移行ができるデータベース・マイグレーションなどの機能も備わっています。
HeidiSQL(Windows)
» HeidiSQL – MySQL, MSSQL and PostgreSQL made easy
HeidiSQLはオープンソースのツールです。オープンソースなので無料で使えます。MySQLのツールとしては歴史の長い部類に入り、リリースされてから9年を超えています。MySQLの他、Microsoft SQLとPostgreSQLにも対応しています。基本的にはWindows専用のツールなのですが、LinuxやMacで使うことも可能です。
HeidiSQLは画面もわかりやすく作られているので、慣れるまではそれほど時間がかからないでしょう。インポート・エクスポートやバッチ処理、検索など、機能も豊富。SQLのシンタックスハイライトをカスタムすることも可能です。
Sequel Pro(Mac)
Sequel ProはMac専用のMySQLツールで、無料で使うことができます。海外製なので表示は英語ですが、シンプルな画面構成なので戸惑うことなく使っていけるでしょう。
SQL文も書きやすく、オートコンプリートやシンタックスハイライトなどの機能が備わっています。SSH接続も可能。SQLもしくはCSVでのインポート・エクスポートにも対応しています。
ローカルにLAMP環境を構築するためのツールとして、XAMPやMAMPを使っている方も多いことでしょう。Sequel Proでは、XAMPやMAMPで立ち上げたMySQLに接続することもできます。
phpMyAdmin
phpMyAdminはブラウザベースのMySQL向けGUIツールです。無料です。XAMPPやMAMPなどのツールからも使えることもあり、開発現場ではよく使われているツールの一つです。
SQL機能の他、サーバー設定や検索、インポート・エクスポートなど機能も豊富です。インポートはCSVとSQLに、エクスポートはCSVやSQL、XML、PDF、Word、LATEXなど複数のフォーマットに対応しています。
あとがき
MySQLの基礎知識や基本的な使い方、代表的なGUIツールについてご紹介しました。数あるリレーショナルデータベースの中でも、Web業界ではMySQLがスタンダードであることに疑いの余地はないでしょう。WordPressやMovable Typeなど、MySQLを使っているCMSも多いですし、MySQLが使えれば開発の幅が広がります。まずは基本的な使い方から、しっかりと身につけておきたいものです。