CodeGym /コース /SQL SELF /SQLの基本操作:なんで SELECT が必要なの?

SQLの基本操作:なんで SELECT が必要なの?

SQL SELF
レベル 1, レッスン 3
使用可能

実際に手を動かす前に、まずはSQL(「エスキューエル」でも「シークウェル」でも好きな呼び方でOK!)って何なのか、なんで大事なのかをサクッと見てみよう。

SQLはStructured Query Language、つまり「構造化問い合わせ言語」って意味。これはデータベースとやりとりするための標準的な言語なんだ。PostgreSQLでもMySQLでもOracleでも、どんなDBMSを選んでも、ほぼ確実にSQLを使うことになるよ。

イメージとしては、SQLはデータベースと「会話」するための方法。たとえば「18歳以上の学生を全部見せて」みたいな命令を出すと、まるで魔法みたいに必要なデータを引っ張ってきてくれる。

SQLの主な役割:

  • データの取得 - 例えば「中世史コースに登録した人を知りたい」とき。
  • データの追加 - 新しい学生をデータベースに追加したいとき。
  • データの更新 - 学生の名前のミスを直したいとき。
  • データの削除 - 大学から書類を引き取った学生を消したいとき。

なんでSELECTが必要なの?

SELECTは、たぶんSQLで一番大事なコマンド。英語で「選ぶ」って意味だよ。これはデータベースから必要な情報を取り出すためのツールなんだ。

例えば、図書館に入って何千冊も本があるとする。Pythonのプログラミング本を探したい。でも棚を全部探す代わりに、司書さんに「Pythonの本持ってきて」って頼む感じ。

データベースの世界では、SQLが司書さんで、SELECTが「持ってきて!」っていう命令なんだ。

SELECTでできることの例:

  • 全学生の名前を取得する。
  • 今学期に利用できるコースの数を知る。
  • 90点以上を取った学生を探す。

データを取り出すだけじゃなくて、SELECTはこんなこともできる:

  • データのフィルタリング - 「18歳以上の学生だけ見せて」みたいな。
  • データのソート - 「学生を名字順に並べて」みたいな。
  • 必要なカラムだけ表示して、全部を出さないようにできる。

SQLの主なメリット

SQLは、ほとんどどんな分野でも重宝されるスキルだよ。

ネットショップの売上データを分析したい?SQLが必要。

医療研究を管理してる?またまたSQL。業務自動化に関わってる?やっぱりSQL。

なんでSQLはそんなにイケてるの?

  • SQLはほぼ全てのデータベースで使える。
  • SQLは直感的に書けるように作られてる。
  • 複雑なSQLクエリでも、割と簡単に理解できる。
  • SQLを使えば、めちゃくちゃ大量のデータも処理できて、必要な情報を引き出せる。

PostgreSQLでのコメント

もう一つ大事なのが、SQLクエリでのコメント。コメントは超便利。まず、説明やアイデアを書き込めるし、動かないコードを一時的に無効化したり、古いバージョンのコードを残したりできる。

自分はよくコードの横にコメントを書くから、今日はまずコメントから始めるよ。

SQLも他の多くのプログラミング言語と同じで、1行コメントと複数行コメントがある。複数行コメントはこんな感じ:

/* コメントのテキスト コメントのテキスト コメントのテキスト */ 

これは/*で始まって、*/で終わる。1行だけでも使えるよ。例:

 /* コメントのテキスト */

あと「行の先頭から最後まで」のコメントもある。Javaの「//」やPythonの「#」みたいなやつ。ただし、SQLではマイナス2つとスペースを書く。こんな感じ:

-- コメントのテキスト

長いSQLクエリの右側をコメントアウトする例:

SELECT * FROM employee -- WHERE YEAR(join_date) = 2015 

上の例では、クエリの条件部分をコメントアウトしてるから、PostgreSQLはこのクエリだけ実行する:

SELECT * FROM employee

自分はコードの横にコメントを書いて、読みやすくしたり、難しい部分を分かりやすくしたりしてる。もうすでにやってるし、みんなもぜひこの便利なテクニックを使ってみてね :)

SQLクエリのスタイル

SQLはめっちゃuser-friendlyに設計されてる。

まず、クエリの大文字小文字は基本的に関係ない。SELECTでもSelectでもSeLecTでもselectでもOK。そして、改行も基本的に気にしなくていい。DBMSは全部1行で書いてもちゃんと処理してくれる。だから、どう書くかは割と自由。

でも、きれいにフォーマットされたSQLコードは読みやすいし、理解しやすいし、デバッグや保守も楽。だから一般的なスタイルのおすすめがあるよ。

フォーマットのおすすめ

  • SQLのキーワードは全部大文字で書く。SELECT、FROM、WHERE、ORDER BYみたいなやつは大文字推奨。これでテーブル名やカラム名と区別しやすくなる。
  • SELECT、FROM、WHEREなど、クエリの主要部分は新しい行から始める。
  • クエリの最後には;(セミコロン)を付けるのが標準。複数のクエリを1つのスクリプトやコードブロックで実行するときは必須。毎回SQLクエリの最後にセミコロンを付けるのをおすすめするよ。

最適なフォーマット例:


SELECT customer_id, full_name, email, registration_date
FROM customers
WHERE delivery_address = 'Anytown';

このクエリは他のフォーマットでも書けるし、いろんな書き方がある。今はそこまで気にしなくてOK。SQLには絶対的なフォーマットルールはないから、「分かりやすくて読みやすいコードを書く」が一番大事なポイントだよ。

2
タスク
SQL SELF, レベル 1, レッスン 3
ロック未解除
クエリにコメントを付けよう
クエリにコメントを付けよう
2
タスク
SQL SELF, レベル 1, レッスン 3
ロック未解除
SQLクエリのコメントを外そう
SQLクエリのコメントを外そう
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION