SQL文の書き方(SELECT・JOINなど)を練習する

前回、データベースの基礎(正規化・SQL)を整理しました。今回は、実際にSQL文の書き方を、SELECTとJOINを中心に練習します。

目次

SELECT文の基本

SELECT文は、テーブルからデータを検索するための、もっとも基本的なSQL文です。

SELECT 氏名, 所属部署 FROM 社員 WHERE 所属部署 = ‘営業部’

この文は、「社員テーブルの中から、所属部署が営業部である行を選び、氏名と所属部署の列を取り出す」という意味になります。SELECTのあとに取り出したい列名を、FROMのあとに対象のテーブル名を、WHEREのあとに絞り込みの条件を書く、という構造です。

WHERE句で条件を絞り込む

WHERE句は、以前整理した疑似言語の条件分岐(if文)と同じように、「条件に合う行だけを対象にする」という役割を持っています。

比較演算子(=、<、>など)や、複数の条件をつなげるAND・ORも使うことができ、以前整理した論理演算の考え方が、そのままSQL文の条件式にも活きてきます。

JOINで複数のテーブルを結びつける

前回整理した正規化では、データの重複を避けるために、情報を複数のテーブルに分けて管理する、という話をしました。分かれたテーブルを、必要なときに結びつけて扱うための命令が「JOIN」です。

SELECT 社員.氏名, 部署.部署名 FROM 社員 JOIN 部署 ON 社員.部署番号 = 部署.部署番号

この文は、「社員テーブルと部署テーブルを、部署番号が一致する行どうしで結びつけ、氏名と部署名を取り出す」という意味になります。前回の記事で触れた「社員テーブルには部署番号だけを持たせる」という正規化の設計が、このJOINによって、必要なときにきちんと部署名と結びつけられる、という形でつながっています。

練習してみて感じたこと

SQL文は、英単語に近い形で書かれているため、読むこと自体はそれほど難しくありませんでした。ただ、JOINを使った文になると、「どのテーブルの、どの列どうしを結びつけているか」を正確に読み取る必要があり、複数のテーブルの構造を頭に置きながら読む練習が必要だと感じました。

学習してみた感想

SQLは、これまで整理してきた疑似言語の条件分岐や、論理演算の考え方とつながっている部分が多く、まったく新しい知識というより、応用として理解しやすい単元でした。JOINについても、前回の正規化の話とセットで学んだことで、「なぜテーブルを分けて、あとで結びつけるのか」という一連の流れとして納得できました。

次回は、科目Bに戻り、過去問で頻出のアルゴリズムパターンをまとめます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次