× 無料のユーザー登録をすると学習状況を管理することができるようになります

MySQL入門 (全19回)

もっとも人気の高いデータベース管理システムのうちの一つであるMySQLについて、その使い方の基礎を学びます。

このレッスンでは MySQL 5.5.25 を使用しています。

#01 MySQLとは何か?
2012年6月29日
開発者用のMySQLの公式サイトはこちらです。
http://dev.mysql.com/
日本語のリファレンスはこちらからどうぞ。
http://dev.mysql.com/doc/refman/5.1/ja/index.html
2013年9月9日
Linuxの基礎コマンドは、こちらのレッスンで学習できます。

UNIXコマンド入門 (一般ユーザー編)
http://dotinstall.com/lessons/basic_unix
#03 データベースを操作してみよう
2013年9月9日
MySQLの接続を終了するためのコマンドは exit のほかに quit や \q も使えます。
#05 テーブルを操作してみよう
2012年10月4日
MySQLにはテーブルやカラムの名前に使えない予約語があります。

予約語を使ってしまった場合にはエラーとなりますが、SQL syntax (文法) にエラーがあるとしかエラーメッセージが表示されないため、原因に気づきにくいかもしれません。

予約語の一覧はリファレンスを参照してください。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.3 MySQLでの予約語の扱い
http://dev.mysql.com/doc/refman/5.1/ja/reserved-words.html
2012年9月13日
あるテーブルと同じ構造のテーブルを、テーブル名だけ変えて作成したい場合には like を使います。

create table new_users like users;
2013年9月9日
tableを削除するときに「それがすでに存在していたときだけ削除する」としたい場合は次のコマンドが使えます。
drop table if exists テーブル名;
またこの一文は、スクリプトなどでtableを新規作成する前に入れられることも多いです(tableを新規作成するときに、すでにそのtableが存在している場合エラーとなるので「存在しているなら先に削除しておいてね」という意味で使われます)。
#07 フィールドの高度な設定について
2012年8月31日
特定のテーブルにどういった索引が設定されているかは次のコマンドでわかります。
show indexes from (テーブル名)
あわせて覚えておくと良いでしょう。
2012年7月30日
auto_increment を指定したフィールドには、必ずインデックスを指定してあげる必要があります。

インデックスは primary key である必要はなく、通常の key でも構いません。

もしインデックスを指定しなかった場合には「Incorrect table definition; there can be only one auto column and it must be defined as a key」というエラーメッセージが表示されます。
#12 並び替え、件数の制限について
2012年6月28日
select では order by を指定しない場合、必ずしも id の昇順で取得できるとは限りません。ですので limit を使用する場合は order by を同時に使用することを検討しましょう。
#13 データの集計をしてみよう
2012年8月25日
GROUP BY を使うと自動的にそのカラムでソートされます。

例えば以下のように team に GROUP BY を使うと自動的に team の昇順でソートされます。

SELECT * FROM users GROUP BY team;

しかし、最後に「ORDER BY NULL」をつけると、ソートは発生しません。

SELECT * FROM users GROUP BY team ORDER BY NULL;

データ量が多くてソートが発生すると速度が遅くなる場合に有効な方法のひとつとして、覚えておくと便利です。
#14 文字列、日付関数を使ってみよう
2012年7月4日
MySQLで使えるさまざまな関数は以下から見ることができます。
こうした関数は必要になったときに見るのも良いですが、たまにざっと目を通してみると、「こういうことも出来るのか」という驚きからアプリのアイデアを思いついたりすることがあります。
新しい技術の大枠を抑えたら、ざっとリファレンスを眺める癖をつけておくと良いでしょう。
http://dev.mysql.com/doc/refman/5.1/ja/functions.html
2012年6月29日
実際にWebサービスを作る際は、MySQL上でこうした加工をしてからデータを取り出すようにすると便利です。
また動画中でも説明していますが、その際には「select max(score) as max from users;」といったように「as」をうまく使うとPHPなどの言語からフィールドの値を取り出しやすくなりますので覚えておきましょう。