LINEで現役エンジニアに直接質問してみよう!登録無料

MySQLでテーブルのレコード(データ)を取得する(SELECT)

テーブルにレコードを取得するには「SELECT」コマンドを使います。

mysql> SELECT * FROM users;
+------+---------------------+----------+
| id   | email               | password |
+------+---------------------+----------+
|    1 | [email protected] | [email protected] |
|    2 | [email protected]  | [email protected] |
|    3 | [email protected]   | hoge     |
|    4 | [email protected]  | fuga     |
+------+---------------------+----------+
4 rows in set (0.00 sec)

SELECTの基本

下記コマンドでレコードを追加出来ます。

SELECT * FROM テーブル名;

INSERT INTOを実行してみる

レコードを追加するには、事前に下記の4操作を実行してテーブルを作成しておく必要があります。

CREATE DATABASE sampleapp_development;
USE sampleapp_development;
CREATE TABLE users (id INT, email VARCHAR(255), password VARCHAR(255));
INSERT INTO users (id, email, password) VALUES
(1, '[email protected]', '[email protected]'),
(2, '[email protected]', '[email protected]'),
(3, '[email protected]', 'hoge'),
(4, '[email protected]', 'fuga');

それでは、テーブルからデータを取得してみましょう!

下記コマンドを実行すると、テーブルの内容を取得できます。

mysql> SELECT * FROM users;
+------+---------------------+----------+
| id   | email               | password |
+------+---------------------+----------+
|    1 | [email protected] | pa[email protected] |
|    2 | [email protected]  | [email protected] |
|    3 | [email protected]   | hoge     |
|    4 | [email protected]  | fuga     |
+------+---------------------+----------+
4 rows in set (0.00 sec)

ここまでが「SELECT」の基本です。

この後は、特定のカラム(列)だけに絞って取得する方法と、特定レコード(行)だけに絞って取得する方法を紹介します。

特定のカラム(列)だけに絞って取得する方法

特定のカラムだけに絞ってデータを取得するには、今まで*を入れていた部分にカラム名を指定します。

例えば、先程の例でidemailだけを取得するには、このように書きます。

mysql> SELECT id, email FROM users;
+------+---------------------+
| id   | email               |
+------+---------------------+
|    1 | [email protected] |
|    2 | [email protected]  |
|    3 | [email protected]   |
|    4 | [email protected]  |
+------+---------------------+
4 rows in set (0.00 sec)

今まで入れていた*は「全てカラムを」という意味だったんですね!

特定レコード(行)だけに絞って取得する方法

特定のレコードだけに絞ってデータを取得するには、WHEREを使います。

例えば、先程の例でid = 2の人だけのデータを取得するには、このように書きます。

mysql> SELECT * FROM users WHERE id = 2;
+------+--------------------+----------+
| id   | email              | password |
+------+--------------------+----------+
|    2 | [email protected] | [email protected] |
+------+--------------------+----------+
1 row in set (0.00 sec)

まとめ

  • データを取得するにはSELECTを使う
  • 特定のカラムのみを取得するにはSELECT id, email FROM users;のようにカラム名を指定する
  • 特定のレコードのみを取得するにはWHEREを使う

以上、データの取得方法をアキ(@hackablejp)が解説しました!

この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。