Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

MySQLでデータ検索をする際にはSELECT文を使用して検索することできます。

MySQLの学習を始めて一番最初に覚えるクエリといっても過言ではありませんが、このSELECTには全ての基本形が詰まっているとも言えます。

今回はそのSELECTについて初心者の方のためにわかりやすく説明してみたいと思います。

若干の理論もありますので最後まで読んでみてください。

データ取得に欠かせないSELECT

SELECTはもともと検索のためのクエリですが、データベースからデータを抽出する際、まずは検索をしないと何も始まりません。

これはデータベースが単一クエリの連続であるためで、MySQLに限らずプログラムに必要な全ての命令は上から順に下っていくというルールがあります。

これを無視して思い通りの事を可能にはできないため、必ずSELECTを使用して情報を列挙し、その中から必要なものだけを抽出する形になるわけです。

データの取得方法

それでは早速SELECTの使い方を実際に見てみましょう。

SELECTの構文は以下の通りです。

SELECT [カラム] FROM [データベース名.テーブル名]

カラムを複数指定する場合にはカンマ(,)で区切って複数指定します。

また「データベース名.テーブル名」の部分は、参照するデータベースが予め決まっていて且つ現在そのデータベースを参照している場合のみ、テーブル名だけの指定でも構いません。

次は実際のコードで見てみましょう。

// データベース名+テーブル名でカラム指定検索(カレントデータベース未指定)
MariaDB [sample_db]> SELECT id, name FROM sample_db.sample_table_a;
+----+---------+
| id | name    |
+----+---------+
|  1 | arex    |
|  2 | Jackson |
|  3 | Liam    |
|  4 | Noah    |
|  5 | Aiden   |
|  6 | Caden   |
+----+---------+
6 rows in set (0.000 sec)

// カレントデータベースに上記データベースを指定した場合のクエリ
MariaDB [sample_db]> SELECT id, name FROM sample_table_a;
+----+---------+
| id | name    |
+----+---------+
|  1 | arex    |
|  2 | Jackson |
|  3 | Liam    |
|  4 | Noah    |
|  5 | Aiden   |
|  6 | Caden   |
+----+---------+
6 rows in set (0.000 sec)

上記クエリの違いとしては先ほど説明した通り、データベースを開き、”use データベース名”を使用する前のカレントデータベース未指定状態でカラム指定検索をしたものと、カレントデータベースを指定している場合の同クエリでの検索結果となっています。

どちらも同じように表示されていることが確認できます。

アスタリスクを使ったカラム検索

上で説明した方法のほかに、アスタリスク(*)を使った検索も可能です。

アスタリスクを使用することで、カラムの指定をすることなく全てのカラムを対象に検索をかけることが出来ます。

// アスタリスクを使用し、全てのカラムを対象に検索をかけた結果
MariaDB [sample_db]> SELECT * FROM sample_db.sample_table_a;
+----+---------+-----+
| id | name    | age |
+----+---------+-----+
|  1 | arex    |  20 |
|  2 | Jackson |  23 |
|  3 | Liam    |  16 |
|  4 | Noah    |  30 |
|  5 | Aiden   |  18 |
|  6 | Caden   |  25 |
+----+---------+-----+
6 rows in set (0.000 sec)

このようにアスタリスクを使用することで、カラム指定を省略し、全てのカラムを表示させることが可能となります。

ただし全表示はデータ量が大きくなるにつれ、結果の表示までに時間がかかることがありますので注意してください。

データ量に関しては具体的な数字では表せませんが、例えばブログの内容を全て保存しているようなデータベースや、住所検索用データベースのように何十万件ものデータが保存されているようなケースとお考え下さい。

WHEREを使って条件検索をする

SELECT文で条件検索をかける方法についてもご紹介します。

下のクエリをご覧ください。

// 検索条件として22歳より上の年齢だけに絞って検索をかける
MariaDB [sample_db]> SELECT * FROM sample_db.sample_table_a WHERE age > 22;
+----+---------+-----+
| id | name    | age |
+----+---------+-----+
|  2 | Jackson |  23 |
|  4 | Noah    |  30 |
|  6 | Caden   |  25 |
+----+---------+-----+
3 rows in set (0.000 sec)

上記クエリは最後にWHERE句で検索条件を指定しています。

条件を複数指定する場合には、”or”もしくは”and”で指定できます。

データ毎に分けて表示させる

表示方法にはいくつかあり、先ほどまでの説明で使っていたクエリは基本形となっています。

そのほかにもデータ毎に表示させる方法があります。

次のクエリを見てください。

MariaDB [sample_db]> SELECT * FROM sample_db.sample_table_a\G
*************************** 1. row ***************************
  id: 1
name: arex
 age: 20
*************************** 2. row ***************************
  id: 2
name: Jackson
 age: 23
*************************** 3. row ***************************
  id: 3
name: Liam
 age: 16
*************************** 4. row ***************************
  id: 4
name: Noah
 age: 30
*************************** 5. row ***************************
  id: 5
name: Aiden
 age: 18
*************************** 6. row ***************************
  id: 6
name: Caden
 age: 25
6 rows in set (0.000 sec)

クエリの最後に「\G」を使用することで、上記サンプルのような表形式ではなくレコード毎にまとめて表示させることもできます。

まとめ

いかがでしたか?

今回はSELECTについて解説してみました。

初心者の方にもわかりやすく解説してあるので応用のコードはありませんが、基本形を理解することで応用型にも順応しやすくなっています。

しっかりとマスターしてMySQLを使いこなせるよう努力してください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。