STAGE 02 — 2-1 / SELECTの基本

SELECT文の基本

考えてみよう

アマテラスの crew テーブルの中身を、乗組員全員分まるごと見たいとき、SQLでどう指示を出せばいいと思いますか?

「全部見せて」という日本語を、そのままSQLの形に変換するだけです。実は、この講座で最初に覚えるSQL文は、たったの1行なんです。

SELECT文の基本形

いよいよSQLを実際に書いていきます。データを取り出すための基本形は、次の1文です。

SELECT * FROM crew;

これを実行すると、crew テーブルの中身が、すべての行・すべての列でそのまま返ってきます。

idnameroleagehomesalary
1ユミエンジニア24地球320000
2ケンジパイロット35火星400000
3サクラ医師41地球520000
4ハルト医師33450000
5レイ研究員29火星380000
6ミドリパイロット27地球360000
7ソラエンジニア45470000
8トウマ研究員24NULL270000
9アカリエンジニア31火星350000
10リョウパイロット38NULL440000

たった1行のSQL文で、テーブルの中身をまるごと見ることができました。まずはこの形を、しっかり指で覚えてしまいましょう。

句の読み方 ― SELECT句とFROM句

SELECT * FROM crew; は、実は2つの「句(く)」に分けて読むことができます。

つまりこの文は「crew テーブルから、すべての列を選んで取り出す」と読めます。日本語の語順とは逆になりますが、「どこから(FROM)」「何を(SELECT)」という2つの部品の組み合わせだと考えると、ぐっと読みやすくなります。

STAGE 02が進むにつれて、WHEREORDER BY のような句がどんどん増えていきますが、基本の形はいつも「句を1つずつ積み重ねていく」というシンプルな作りです。

セミコロンで文を終える

SQL文の最後についている ;(セミコロン)にも意味があります。これは「ここでこのSQL文は終わりです」という区切りの合図です。

英語の文がピリオドで終わるように、SQL文はセミコロンで終わる、と覚えておくとよいでしょう。1つのSQL文であれば省略できる場面もありますが、この講座では常にセミコロンを書く習慣をつけていきます。複数のSQL文を続けて書くときには、この区切りがないと、どこまでが1つの命令なのかコンピューターが判断できなくなってしまうからです。

確認問題

SELECT * FROM crew; というSQL文を、句ごとに分けて説明するとどうなるでしょう?

答えを見る

SELECT * は「すべての列を選ぶ」、FROM crew は「crew テーブルから」という意味です。合わせて「crew テーブルから、すべての列を取り出す」という命令になります。文末の ; は、SQL文の終わりを示す区切りです。

SELECTFROM; の3点セット、頭では分かっても、実際に自分の指で打ってみないと本当には身につきません。SQL DIVERを開いて、SELECT * FROM crew; を自分の手で入力し、結果が返ってくる感覚を確かめてみましょう。

ゆみちゃん
ゆみ

SQLの一番シンプルな形、SELECT * FROM テーブル名;。これがすべての土台になるよ。次は「全部」じゃなくて「必要な列だけ」を選ぶ方法を見ていこう!