SQL初めてのSQL

Day 1取り出す — SELECT でデータを読む

SELECT と FROM — どこから何を取り出すか

データベースから欲しい列を取り出す一番基本の形、SELECT ... FROM ... を読めるようにします。

データに「これください」とお願いする

SQL は、たくさんのデータをしまってある倉庫(データベース)に「これください」とお願いするための言葉です。その中でいちばん基本のお願いが SELECT(セレクト)です。「どの列がほしいか」を SELECT で、「どの表(テーブル)から取り出すか」を FROM で伝えます。

たとえるなら、名簿を持った係の人に「この名簿から、名前と年齢のところだけ書き写してください」と頼む注文書のようなものです。SELECT が「書き写してほしい項目」、FROM が「どの名簿から」にあたります。

SQL
SELECT name, age
FROM users;
users という表から、name(名前)と age(年齢)の列だけを取り出す

上の文はこう読めます。「users テーブルから、name と age を取り出してください」。取り出したい列はカンマ(,)で区切って並べます。最後のセミコロン(;)は「お願いはここまで」という区切りの合図です。

SELECT * ってなに?

SELECT のあとに書く * は「全部の列」という意味です。SELECT * FROM users; と書くと、name も age も、その表にある列を丸ごと全部取り出します。列を選ぶのが面倒なときの「とりあえず全部見せて」ボタンだと思ってください。

ぼんやりしたお願い

「users のデータちょうだい」だけでは、機械はどの列がほしいのか分かりません。

はっきりしたお願い

SELECT name, age FROM users; なら、ほしい列と取り出し元がひと目で分かります。

なぜ列を選ぶの?

全部の列を出す(SELECT *)と楽ですが、必要ない情報まで出てきて見づらくなります。ほしい列だけを名指しすると、結果がすっきりして、何を見たいのかも伝わりやすくなります。

AIにはこう聞く

「users テーブルから name と age だけを取り出す SQL を書いて、各行が何をしているか日本語でコメントを付けて」

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

SELECT name, age FROM users; の FROM の役割はどれ?

Q2

SELECT * FROM users; の * はどういう意味?

Q3

SELECT と FROM がそれぞれ何を指定するものか、SQL を知らない人に一言で説明してみましょう。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。