【えすきゅーえる】

SQL とは?

💡 データベースに「問い合わせ」する共通言語
📌 このページのポイント
商品テーブル(全件) 商品名 価格 コーヒー ¥500 ノートPC ¥1,500 消しゴム ¥800 モニター ¥2,000 ボールペン ¥300 キーボード ¥3,200 SELECT * FROM 商品 WHERE 価格 > 1000 -- SQLクエリ 条件でフィルタリング 結果(価格 > 1000) 商品名 価格 ノートPC ¥1,500 モニター ¥2,000 キーボード ¥3,200 3件 / 6件中 薄い行 = 条件に合わず除外  緑の行 = 条件に合致して抽出 価格 > 1000(抽出) 価格 ≤ 1000(除外)
SQLはテーブルから条件に合うデータを取り出す
ひよこ ひよこ

SQLって何ができるの?

ペンギン先生 ペンギン先生

データベースのデータを操作する4つの基本操作(CRUD)ができるよ。SELECT(データを検索)、INSERT(データを追加)、UPDATE(データを更新)、DELETE(データを削除)。例えば「SELECT name, age FROM users WHERE age >= 20」で20歳以上のユーザーの名前と年齢を取得できるんだ

ひよこ ひよこ

JOINって何?

ペンギン先生 ペンギン先生

複数のテーブルを結合して1つの結果にする機能だよ。「ユーザーテーブル」と「注文テーブル」をJOINすれば「誰がいつ何を注文したか」が一発で取得できる。INNER JOIN(両方にあるデータのみ)、LEFT JOIN(左テーブルは全て表示)の使い分けが重要だね

ひよこ ひよこ
ペンギン先生 ペンギン先生

ユーザー入力をそのままSQLに埋め込むと、悪意のあるSQL文を注入される攻撃だよ。「' OR 1=1 --」のような入力で全データが流出することも。対策はプリペアドステートメントパラメータクエリ)を必ず使うこと。現代のフレームワークは標準で対策済みだけど、生SQLを書くときは要注意だね

ひよこ ひよこ

SQLを学ぶコツは?

ペンギン先生 ペンギン先生

まずSELECT + WHERE + ORDER BY + LIMITを使いこなすこと。次にJOINGROUP BY + HAVING、サブクエリの順に学ぶ。SQLFiddleやDB Fiddleでブラウザ上で練習できるよ。実務ではORMを使うことが多いけど、SQLを理解していないとパフォーマンス問題を解決できないから基礎は必須だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SQL」って出てきたら「データベースを操作するための問い合わせ言語」と思えればだいたいOK!
📖 おまけ:英語の意味
「Structured Query Language」 = 構造化問い合わせ言語
💬 Structured(構造化された)Query(問い合わせ)Language(言語)だよ
← 用語集にもどる