【SELECT句とFROM句】 ＃2 Webディレクター見習いが知識ゼロからSQLを学ぶ

こんにちは、はじめまして! 　saku-chanです!
このアカウントは、社会人1年目のWebディレクター見習い(初心者)がSQLを学ぶ成長記録になっています。
ひよっこから成長する過程を残し、ついでに皆さんからアドバイスを頂けたら良いな! 私と同じように知識ゼロからSQLを始める人の一つの指針になればいいな!という思いで作成しました。
ちなみに、ブログを含め記事などを書いた経験がないため読みづらい部分も多々あるかと思いますが、そこも含めて皆さまアドバイス頂けると嬉しいですmm

◆記事の内容は、**SQL初心者の自分が、同じような初心者の方でも理解しやすいように心がけながら、SQLの基本に関して学んだことを懇切丁寧に**記載しています◆

##目次
- [はじめに](https://qiita.com/saku-chan/items/673d910d708a985f1f5b#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)
- [SELECT文とは](https://qiita.com/saku-chan/items/673d910d708a985f1f5b#select%E6%96%87%E3%81%A8%E3%81%AF)
- [SELECT句とFROM句](https://qiita.com/saku-chan/items/673d910d708a985f1f5b#select%E5%8F%A5%E3%81%A8from%E5%8F%A5)
<br>└[複数のカラムを取り出す](https://qiita.com/saku-chan/items/673d910d708a985f1f5b#%E8%A4%87%E6%95%B0%E3%81%AE%E3%82%AB%E3%83%A9%E3%83%A0%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99)
<br>└[カラムの表示名を変更する](https://qiita.com/saku-chan/items/673d910d708a985f1f5b#%E3%82%AB%E3%83%A9%E3%83%A0%E3%81%AE%E8%A1%A8%E7%A4%BA%E5%90%8D%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B)
- [まとめ](https://qiita.com/saku-chan/items/673d910d708a985f1f5b#%E3%81%BE%E3%81%A8%E3%82%81)
- [最後に](https://qiita.com/saku-chan/items/673d910d708a985f1f5b#%E6%9C%80%E5%BE%8C%E3%81%AB)

##はじめに
今回はSQLのSELECT文を構成する`SELECT句`と`FROM句`について勉強したことを記載します！
と言っても一瞬で説明が終わるくらいとーっても簡単です（笑）
初めてSQLを勉強する方が気軽に読んでいただける記事になっています。

⇒[次の記事【集約関数】はこちら](/saku-chan/items/71bfa462d8a1384e2965.md)
⇒[記事一覧](/saku-chan/items/48d36b6ad60d63206a18)

##SELECT文とは
SQLを勉強しようと思った時に、ほぼ100%の確率で初めに出会う**SELECT文**。
これってなんなのでしょう？

わからないことはとりあえずググってみます。
そしてたどり着いたウィキペディアさん。

**SELECTステートメントは、1つもしくは複数のテーブルからデータを抽出する、SQLにおけるデータ操作言語 (DML)ステートメントの1つである。**

。。。。なるほど、わからん！(°▽°)

私の理解力では解読出来ませんでしたが、簡単にいうと
**「SQLにおいて、データを抽出するときに使う文」**
です。

そしてSELECT文はいくつかの**「句」**で構成されています。
今回はいくつかある句のうち、必須の構成句である`SELECT句`と`FROM句`に絞って記事を書いていきます!

##SELECT句とFROM句
SELECT文の**基本のき！**である`SELECT句`と`FROM句`。
この2つを書けばSQLは実行されます。

とりあえず基本形はこちら

```sql
 SELECT ＜取り出したいカラム名＞ FROM ＜使用するテーブル名＞ ;
```

これだけだとイメージしづらいので具体例を出してみます。

テーブル名：friends

| id       |       name |    age    |
|:-----------------:|:------------------:|:------------------:|
| 01             |              けん |        14       |
| 02           |            あおい|       21      |
| 03             |              みほ |       16        |


上記のようなfriendsというデータテーブル[^1]があった時に、


```sql
 SELECT name FROM friends ;
```

このようなクエリ(命令)を実行すると、下記のようにデータが抽出できます。

|neme|
|:--:|
|けん|
|あおい|
|みほ|

[^1]: データが記載してある表
[^2]: SQLにおける命令のこと。queryを日本語にすると「問い合わせ」という意味。
つまり、このクエリ[^2]の意味は、
**friendsというテーブルから、nameというカラム(列)を取り出す**
です。

ね?簡単でしょ?

気をつけることは、
**①記述の順番を守ること
②最後に「;」を忘れないこと**
です。

**①記述の順番を守ること**
記述の順番を守らないと、ちゃんとクエリを実行してくれません。
SELECT句を書いた後にFROM句を書くのがルールになっています。
ちなみに他にも句はたくさんあって、記述順は
`SELECT句`→`FROM句`→`WHERE句`→`GROUP BY句`→`HAVING句`→`ORDER BY句`→`LIMIT句`
という順番です。
ここでは「ふーん、他にも色々な句があるのね」程度の理解で問題ないです!
(これらの句に関しても今後記事にする予定なので是非ご覧ください^^)

**②最後に「;」を忘れないこと**
これ結構忘れがちなんですが(私だけかも、、)
「終わりだよ、クエリ実行してね」の意味を込めて必ずつけないといけません。
セミコロンを忘れるとエラーになるので注意しましょう。

###複数のカラムを取り出す
先ほどは1つのカラム[^3]を取り出しましたが、もちろん複数のカラムを取り出すことも可能です。
[^3]: 列のこと。ちなみにSQLにおいて、行は「レコード」と言います。

その場合は、カラム名同士の間に`,`を入れるだけです。

先ほどのfriendsテーブルを利用して、下記のようなクエリを実行すると、

```sql
 SELECT name,age FROM friends ;
```

このように2つのカラムのデータを抽出することが出来ます。

|       name |    age    |
|:------------------:|:------------------:|
|              けん |        14       |
|            あおい|       21      |
|              みほ |       16        |


###カラムの表示名を変更する
また、カラムの表示名を変更することも簡単に出来るんです！
変更するためには`AS`を使用します。

クエリと実行結果は下記の通りです。

```sql
 SELECT name AS 名前 FROM friend ;
```
|名前|
|:--:|
|けん|
|あおい|
|みほ|

カラム名を「name」から「名前」に変更出来ました。
このように`AS`を使用すれば、カラムの名称を簡単に変更出来ます。
ASは日本語も使用出来るのが嬉しいですね！
もちろん複数カラム抽出するときもそれぞれ「AS」を使用出来ますよ!

##まとめ
- `SELECT句`で抽出したいカラムを指定し、`FROM句`でデータが記載されているテーブルを指定する
- 記述の順番(SELECT句→FROM句)を守り、最後に`;`を付けることを忘れない
- 複数のカラムを抽出する時はカラム同士の間に`,`をつける
- カラム名を変更する時は`AS`を利用する
 
##最後に
今回はSELECT文の基本のき!であるSELECT句とFROM句について書いてみました。
どんな言語もそうなのかもしれませんが、学び初めは覚えることがたくさんで混乱してしまいがちなので、２つの句に絞って出来るだけ丁寧に書くことを心がけました。
今後も、自分のようなSQLの知識ゼロの人でも簡単に理解することが出来るような記事を書いていきたいと思います！

⇒[次の記事【集約関数】はこちら](/saku-chan/items/71bfa462d8a1384e2965)

⇒[記事一覧](/saku-chan/items/48d36b6ad60d63206a18)