実際に手を動かす前に、まずは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には絶対的なフォーマットルールはないから、「分かりやすくて読みやすいコードを書く」が一番大事なポイントだよ。
GO TO FULL VERSION