0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQLを学ぼう!【2章】

Last updated at Posted at 2021-09-13

前章の記事(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)

以上がデータ検索し、表示させる方法になります。
次章ではすでに挿入したデータを更新する方法とデータを削除する方法について記事を書いていきたいと思います!
最後までご覧いただきまして、ありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?