前章の記事(SQLを学ぼう!【1章】)では、MySQLに接続し、データベースの作成や指定、指定したデータベースにテーブルを作成し、データを挿入する作業について行いました!今回の記事では挿入したデータを検索し、表示させる作業を行なっていきたいと思います。
前章をご覧になりたい方は、下記にリンクを貼っておきますので、ご参照ください。
・SQLを学ぼう!【1章】
##前章の復習
前章の復習になりますが、作成したlistテーブルに、データを挿入しました。
テーブルへデータを挿入するには、INSERT文を用いて行いましたね。
INSERT INTO テーブル名 (カラム名1, カラム名2, ...) VALUES (値1, 値2, ...);
mysql> INSERT INTO list (id, name, address) VALUES (1, '学 太郎', '東京都世田谷区');
Query OK, 1 row affected (0.20 sec)
データを挿入できたら、保存したデータを表示させました。
テーブル内にデータを表示するには、SELECT文を用いましたね。
SELECT * FROM テーブル名;
mysql> SELECT * FROM list;
+------+---------------+---------------------------+
| id | name | address |
+------+---------------+---------------------------+
| 1 | 学 太郎 | 東京都世田谷区 |
+------+---------------+---------------------------+
1 row in set (0.17 sec)
以上が簡単に前章の復習になります。
##必要なカラムのデータのみ抽出する
「id」と「名前」のみ表示することもできます。その場合は、以下のようにSELECT文を記述します。
SELECT カラム名1, カラム名2, ..., カラム名n FROM テーブル名;
SELECTとFROMの間にカラム名を指定することで、必要なカラム名の値のみ抽出できます。
それでは実際に、SELECTとFROMの間に「id」と「name」を指定し、「id」と「名前」のみ表示させてみます。
mysql> SELECT id, name FROM list;
+------+---------------+
| id | name |
+------+---------------+
| 1 | 学 太郎 |
+------+---------------+
1 row in set (0.18 sec)
##条件を指定してデータを表示させる
SELECT文を用いると、カラム名からデータを表示するだけでなく、条件を指定してデータを表示することもできます。
条件を指定してデータを表示するには、SELECT文の中でWHERE句を用います。
現在、データは1件しかないので、条件指定ができるように複数のデータを準備しました。
mysql> select * from list;
+------+---------------+---------------------------+-------+
| id | name | address | age |
+------+---------------+---------------------------+-------+
| 1 | 学 太郎 | 東京都世田谷区 |23 |
| 2 | 中村 二郎 | 愛知県稲沢市 |30 |
| 3 | 山科 三郎 | 千葉県千葉市 |27 |
| 4 | 鈴木 一郎 | 福岡県飯塚市 |35 |
| 5 | 中山 五郎 | 山梨県山梨市 |20 |
| 6 | 小林 大介 | 東京都千代田区 |40 |
| 7 | 大場 芳樹 | 東京都港区 |26 |
| 8 | 中川 博之 | 滋賀県彦根市 |31 |
| 9 | 宮崎 遥輝 | 東京都八王子市 |29 |
| 10 | 青木 正太郎 | 東京都町田市 |47 |
| 11 | 佐藤 美穂 | 福島県白河市 |24 |
+------+---------------+---------------------------+--------+
11 rows in set (0.17 sec)
今回の準備したデータは年齢(age)も追加してあります。条件指定をわかりやすく説明するためです。
それでは11件のデータを保存できたところで、さっそく条件を指定して検索してみます。
まず、「年齢」で条件を指定して抽出してみたいと思います。年齢のカラム名は「age」でした。今回は、「35歳以上」を抽出することにします。
WHERE句を用いて、**「SELECT * FROM list WHERE age >= 35;」**のように記述します。
mysql> SELECT * FROM list WHERE age >= 35;
+------+---------------+------------------------+------+
| id | name | address |age |
+------+---------------+------------------------+------+
| 4 | 鈴木 一郎 | 福岡県飯塚市 | 35 |
| 6 | 小林 大介 | 東京都千代田区 | 40 |
| 10 | 青木 正太郎 | 東京都町田市 | 47 |
+------+---------------+-----------------------+-------+
3 rows in set (0.16 sec)
文字列でも指定できます。
たとえば、住所のカラムで「福岡県」在住者を検索してみます。
同じくWHERE句を用いて、住所のカラム(address)が「福岡県」の条件を指定します。
mysql> SELECT * FROM list WHERE address = '福岡県';
+------+---------------+------------------------+------+
| id | name | address |age |
+------+---------------+------------------------+------+
| 4 | 鈴木 一郎 | 福岡県飯塚市 | 35 |
+------+---------------+-----------------------+-------+
1 rows in set (0.16 sec)
複数の条件も指定できます。
住所が「東京都」で、なおかつ「35歳以上の人」を検索するには、「AND」を用いて記述します。
mysql> SELECT * FROM list WHERE address='東京都' AND age >= 35;
+------+---------------+------------------------+------+
| id | name | address |age |
+------+---------------+------------------------+------+
| 6 | 小林 大介 | 東京都千代田区 | 40 |
| 10 | 青木 正太郎 | 東京都町田市 | 47 |
+------+---------------+-----------------------+-------+
2 rows in set (0.16 sec)
住所が「東京都」、もしくは「35歳以上の人」を検索するには、「OR」を用いましょう。
mysql> SELECT * FROM list WHERE address='東京都' OR age >= 35;
+------+---------------+------------------------+------+
| id | name | address |age |
+------+---------------+------------------------+------+
| 4 | 鈴木 一郎 | 福岡県飯塚市 | 35 |
| 6 | 小林 大介 | 東京都千代田区 | 40 |
| 10 | 青木 正太郎 | 東京都町田市 | 47 |
+------+---------------+-----------------------+-------+
3 rows in set (0.16 sec)
以上がデータ検索し、表示させる方法になります。
次章ではすでに挿入したデータを更新する方法とデータを削除する方法について記事を書いていきたいと思います!
最後までご覧いただきまして、ありがとうございました!