SQL-色々な方法でテーブルからデータを抽出してみる(SELECT,AND,OR,WHERE,LIKE)

#テーブルの中身
以下のようなテーブルから、色々な方法でデータを抽出していきたいと思います。
学習したことを忘れないようにするアウトプット用です。

```
+----+-----------------------+------------+------------+-----------+----------+
| id | name                  | sauna_temp | water_temp | area      | sex      |
+----+-----------------------+------------+------------+-----------+----------+
|  1 | ウェルビー栄             |         90 |         16 | 愛知       | 男性      |
|  2 | 湯ラックス               |         93 |         12 | 熊本       | 男女OK   |
|  3 | ウェルビー福岡           |         85 |         16 | 福岡      | 男女OK   |
|  4 | サウナイーグル           |        110 |          7 | 愛知      | 男性     |
|  5 | かるまる池袋            |        100 |          5 | 東京      | 男性     |
|  6 | スカイスパ              |         70 |         16 | 神奈川    | 男性     |
|  7 | サウナラボ              |         70 |         22 | 愛知      | 女性     |
|  8 | ウェルビー名駅           |         80 |         18 | 愛知      | 男性     |
+----+-----------------------+------------+------------+-----------+----------+
 ```

##テーブルの作成方法
以下のコマンドで、テーブルを作成します。

```SQL:
--まず、tablesというテーブルを作成します。ここでは、カラムの詳細などを設定しています。--
CREATE TABLE tables (             --
  id INT NOT NULL AUTO_INCREMENT, --AUTO_INCREMENTで、idが自動で生成されるようにしています。--
  name VARCHAR(20),               --VARCHARは、文字列のデータ型です--
  sauna_temp INT,                 --INTは、数値のデータ型です--
  water_temp INT,
  area VARCHAR(20),
  sex ENUM('男性', '女性', '男女OK'),   --ENUMで、性別を指定しています--
  PRIMARY KEY (id)                    --idを主キーとして設定しています。--
);

--作成したテーブルにデータを入れていきます。
INSERT INTO tables (name, sauna_temp, water_temp, area, sex) VALUES 
  ('ウェルビー栄', 90, 16, '愛知', 1),   --ENUM型のデータは、数字で指定することもできます--
  ('湯ラックス', 93, 12, '熊本', 3),
  ('ウェルビー福岡', 85, 16, '福岡', 3),
  ('サウナイーグル', 110, 7, '愛知', 1),
  ('かるまる池袋', 100, 5, '東京', 1),
  ('スカイスパ', 70, 16, '神奈川', 1),
  ('サウナラボ', 70, 22, '愛知', 2),
  ('ウェルビー名駅', 80, 18, '愛知', 1);
```

##SELECTを用いて、条件をつけてデータを取得する。
まずは、WHEREを用いて、条件を指定し、その条件をクリアしたデータだけを表示させてみます。

```SQL:
SELECT * FROM tables WHERE sauna_temp > 90; --sauna_tempが90より大きいものだけを表示

--結果
+----+-----------------------+------------+------------+--------+----------+
| id | name                  | sauna_temp | water_temp | area   | sex      |
+----+-----------------------+------------+------------+--------+----------+
|  2 | 湯ラックス               |         93 |         12 | 熊本   | 男女OK   |
|  4 | サウナイーグル           |        110 |          7 | 愛知   | 男性     |
|  5 | かるまる池袋             |        100 |          5 | 東京   | 男性     |
+----+-----------------------+------------+------------+--------+----------+

```
sauna_tempが90以上のものだけを取得することができました。

##ANDとORを使って、複数の条件を適用させる。
ANDとORを用いることで、複数の条件をつけてデータを抽出することができます。
下の例では、ANDを条件式に用いることで、二つの条件どちらにも当てはまったデータだけを抽出しています。

```SQL:
SELECT * FROM tables WHERE sauna_temp > 90 AND water_temp < 10;
--「sauna_tempが90より大きい」　かつ、　「water_tempが10より低い」　ものだけを抽出--

+----+-----------------------+------------+------------+--------+--------+
| id | name                  | sauna_temp | water_temp | area   | sex    |
+----+-----------------------+------------+------------+--------+--------+
|  4 | サウナイーグル            |        110 |          7 | 愛知   | 男性   |
|  5 | かるまる池袋             |        100 |          5 | 東京   | 男性   |
+----+-----------------------+------------+------------+--------+--------+
```

次の例では、ORを用いて二つの条件を示し、どちらか片方にでも該当したデータを抽出しています。

```SQL:
SELECT * FROM tables WHERE sauna_temp > 90 OR water_temp < 10;
--「sauna_tempが90より大きい」　もしくは、　「water_tempが10より低い」　ものを抽出--
+----+-----------------------+------------+------------+--------+----------+
| id | name                  | sauna_temp | water_temp | area   | sex      |
+----+-----------------------+------------+------------+--------+----------+
|  2 | 湯ラックス               |         93 |         12 | 熊本   | 男女OK   |
|  4 | サウナイーグル           |        110 |          7 | 愛知   | 男性     |
|  5 | かるまる池袋            |        100 |          5 | 東京   | 男性     |
+----+-----------------------+------------+------------+--------+----------+
```
##LIKEを用いて、特定の文字列を持ったデータを抽出する。
LIKEを用いることで、特定の文字列を含むデータを抽出することができます。
LIKEに続く'ウェルビー%'の「%」は、任意の文字列を表しています。
他にも任意の一文字を表す、「 _ 」アンダーバーがあります。

```SQL:
--「%」を用いた場合
SELECT * FROM tables WHERE name LIKE 'ウェルビー%'
+----+-----------------------+------------+------------+--------+----------+
| id | name                  | sauna_temp | water_temp | area   | sex      |
+----+-----------------------+------------+------------+--------+----------+
|  1 | ウェルビー栄             |         90 |         16 | 愛知   | 男性      |
|  3 | ウェルビー福岡           |         85 |         16 | 福岡   | 男女OK    |
|  8 | ウェルビー名駅           |         80 |         18 | 愛知   | 男性      |
+----+-----------------------+------------+------------+--------+----------+

SELECT * FROM tables WHERE name LIKE 'ウェルビー_' --「ウェルビー」の後に一文字つづく文字列を指定している。
+----+--------------------+------------+------------+--------+--------+
| id | name               | sauna_temp | water_temp | area   | sex    |
+----+--------------------+------------+------------+--------+--------+
|  1 | ウェルビー栄          |         90 |         16 | 愛知   | 男性   |
+----+--------------------+------------+------------+--------+--------+
```

#最後に
超基礎的なSQL文を今回まとめました！
これからも逐一まとめていきたいと思います！