MySQL SELECT文の基本!初心者でもSQLでデータ抽出ができる完全ガイド
生徒
「SQLってよく聞くんですけど、そもそも何をするものなんですか?」
先生
「SQLは、データベースに保存されているデータを、取り出したり、追加したり、変更したりするための言葉です。名簿や表を操作するための命令だと思ってください。」
生徒
「パソコンが苦手でも理解できますか?」
先生
「大丈夫です。表を見るところから順番に説明するので、紙の名簿を扱う感覚で理解できます。」
生徒
「まずは何から覚えればいいんでしょうか?」
先生
「まずは、データを取り出す『SELECT(セレクト)』という命令から学びましょう。これが一番よく使われる基本中の基本なんですよ。」
1. SQLとは何か?
SQL(エスキューエル)は、データベースと呼ばれる「大量のデータを整理して保存する箱」に対して指示を出すための特別な言語です。例えば、インターネットショッピングの会員名簿の中から自分自身の情報を探したり、スマートフォンの連絡先アプリで友達の名前を検索したりするとき、裏側ではこのSQLという言葉が使われています。
データベースは、Excel(エクセル)のような「表形式」でデータを管理しています。その表の中から「この列だけ見せて!」「この条件に合う人だけ教えて!」とお願いするのがSQLの役割です。プログラミング未経験の方でも、決まったルール(文法)に従って書くだけなので、英単語の意味さえ分かればすぐに使いこなせるようになります。
2. MySQLとは?世界で人気のデータベース
SQLは言葉の種類ですが、その言葉を受け取って実際にデータを処理するソフトウェアのことを「データベース管理システム」と呼びます。その中でも世界中で最も広く使われているのが「MySQL(マイエスキューエル)」です。
MySQLは、初心者の方でも扱いやすく、動作が非常に速いのが特徴です。有名なウェブサービスやブログサイトの多くがこのMySQLを利用して、ユーザーの情報や記事のデータを保存しています。今回は、このMySQLを使って、基本的なデータの取り出し方を練習していきましょう。難しい設定は一旦置いておいて、まずは「どうやってデータを見るのか」という仕組みを理解することが大切です。
3. データベースの「テーブル」という考え方
データベースの中には、複数の「テーブル」が存在します。テーブルとは、学校の出席簿や会社の社員名簿のような「表」のことです。この表は、横一行のデータを「レコード(行)」、縦一列の項目を「カラム(列)」と呼びます。
例えば、次のような「users(ユーザー)」という名前のテーブルがあると想像してみましょう。
id | name | age | city | email
---+-----------+-----+---------+-------------------
1 | 山田太郎 | 25 | 東京都 | taro@example.com
2 | 佐藤花子 | 19 | 大阪府 | hanako@example.com
3 | 鈴木一郎 | 32 | 福岡県 | ichiro@example.com
4 | 高橋直美 | 28 | 東京都 | naomi@example.com
5 | 田中健太 | 21 | 愛知県 | kenta@example.com
6 | 伊藤純子 | 45 | 大阪府 | junko@example.com
この表には、ID、名前、年齢、住んでいる都道府県、メールアドレスという5つの項目(カラム)があり、6人分(6レコード)のデータが入っています。SQLを使えば、この中から好きな情報を自由自在に取り出すことができます。
4. SELECT文の基本!すべてのデータを取り出す
最も基本的な命令は、テーブルにある全ての情報を表示させることです。このときに使うのが「SELECT(セレクト)」と「FROM(フロム)」という単語です。SELECTは「選ぶ」、FROMは「〜から」という意味ですね。
全ての項目を表示したいときは、星マークの記号「*(アスタリスク)」を使います。これは「全部」という意味の記号です。それでは、実際に先ほどの「users」テーブルから全てのデータを取り出すクエリ(命令文)を見てみましょう。
SELECT *
FROM users;
このSQLを実行すると、データベースは次のような結果を返してくれます。
id | name | age | city | email
---+-----------+-----+---------+-------------------
1 | 山田太郎 | 25 | 東京都 | taro@example.com
2 | 佐藤花子 | 19 | 大阪府 | hanako@example.com
3 | 鈴木一郎 | 32 | 福岡県 | ichiro@example.com
4 | 高橋直美 | 28 | 東京都 | naomi@example.com
5 | 田中健太 | 21 | 愛知県 | kenta@example.com
6 | 伊藤純子 | 45 | 大阪府 | junko@example.com
このように、魔法の呪文のようなSELECT文を書くだけで、保存されているデータが画面にパッと表示されるのです。文の最後にある「;(セミコロン)」は、文章の句点(。)と同じで、「ここで命令はおわりです」という合図になります。
5. 特定の項目だけを狙って取り出す
実務では、全てのデータが必要なケースばかりではありません。例えば「名前と住んでいる場所だけ分かればいい」という場合もあります。そのときは、「*」の代わりに、表示したい項目名(カラム名)を直接書きます。複数の項目を書きたいときは、「,(カンマ)」で区切ります。
「名前(name)」と「住んでいる場所(city)」だけを取り出してみましょう。
SELECT name, city
FROM users;
実行結果は以下のようになります。メールアドレスや年齢といった不要な情報が隠され、スッキリとした結果が得られました。
name | city
----------+---------
山田太郎 | 東京都
佐藤花子 | 大阪府
鈴木一郎 | 福岡県
高橋直美 | 東京都
田中健太 | 愛知県
伊藤純子 | 大阪府
このように必要な情報だけに絞ることで、大量のデータを扱う際にも見やすくなりますし、コンピューターへの負担も減らすことができます。
6. WHEREを使って条件に合うデータを探す
「東京に住んでいる人だけ探したい」「20代の人だけ見つけたい」というように、特定の条件でデータを絞り込みたいときには「WHERE(ウェア)」という言葉を使います。WHEREは「どこにある?」というイメージで、特定の条件を指定するために使います。
例えば、「25歳以上のユーザー」だけを表示したい場合は、次のように書きます。数字の比較には「>=(〜以上)」という記号を使います。
SELECT name, age
FROM users
WHERE age >= 25;
実行結果を見てみましょう。元の6人の中から、条件に当てはまる人だけが選ばれています。
name | age
----------+-----
山田太郎 | 25
鈴木一郎 | 32
高橋直美 | 28
伊藤純子 | 45
もし、特定の場所、例えば「大阪府」に住んでいる人だけを探したい場合は、文字を「'(シングルクォーテーション)」で囲んで指定します。これは、SQLの世界で「これは数字じゃなくて文字ですよ」と教えるためのルールです。
SELECT *
FROM users
WHERE city = '大阪府';
このSQLの結果は次の通りです。
id | name | age | city | email
---+-----------+-----+---------+-------------------
2 | 佐藤花子 | 19 | 大阪府 | hanako@example.com
6 | 伊藤純子 | 45 | 大阪府 | junko@example.com
WHERE句を使うことで、検索エンジンのように膨大なデータから一瞬で目的の情報を見つけることができるようになります。
7. 複数の条件を組み合わせる「AND」と「OR」
条件は一つだけでなく、組み合わせて使うこともできます。もっと細かく条件を絞りたいときは「AND(かつ)」を、どちらかの条件に当てはまれば良いときは「OR(または)」を使います。
例えば、「東京都に住んでいて、かつ25歳以上の人」を探してみましょう。二つの条件をANDでつなぎます。
SELECT name, age, city
FROM users
WHERE city = '東京都' AND age >= 25;
実行結果は以下のようになります。
name | age | city
----------+-----+---------
山田太郎 | 25 | 東京都
高橋直美 | 28 | 東京都
複雑な条件になっても、言葉を順番に並べていくだけで正しい答えをデータベースが教えてくれます。これをマスターすれば、名簿の整理や顧客の分析などがとても簡単になります。
8. よく使う記号や単語の意味まとめ
今回学んだ、SQLでよく使う用語を改めて整理しておきます。これを覚えておくだけで、初心者レベルは卒業です!
| 用語・記号 | 読み方 | 意味 |
|---|---|---|
| SELECT | セレクト | どの項目(列)を取り出すか選ぶ。 |
| FROM | フロム | どの表(テーブル)から取り出すか指定する。 |
| WHERE | ウェア | どんな条件(行)で絞り込むか決める。 |
| * | アスタリスク | 全ての項目を意味する。 |
| = | イコール | 右と左が「同じ」であることを示す。 |
| >= | ダイナリイコール | 「〜以上」であることを示す。 |
| ; | セミコロン | 命令文の終わりを示す記号。 |
最初は難しく感じるかもしれませんが、パズルのように単語を組み合わせていくだけです。何度も書いて、少しずつ慣れていきましょう。データベースを自由に操れるようになると、ウェブサイトの仕組みがもっと深く理解できるようになり、ITの世界がより楽しくなるはずです。基本をしっかり押さえて、一歩ずつ進んでいきましょう。