【えすきゅーえる】
SQL とは?
最終更新:
💡 表のデータに「これを探して」と伝える言葉
表形式のデータを扱うリレーショナルデータベースなどで使う言語。条件に合うデータの検索、追加・更新・削除、テーブルの作成などを指示する。共通する基本構文があるが、製品ごとに構文や機能の違いもある。
📌 このページのポイント
- SELECTで列を選び、WHEREで行の条件を指定する
- INSERT・UPDATE・DELETEでデータを変更できる
- JOINで複数の表の行を、条件に従って組み合わせる
- 外部入力を扱うときはSQLの命令と値を分ける
SQLって、何をお願いできるの?
たとえば商品の表から、価格が100円以上の商品の名前を探せるよ。データの検索はSELECT、追加はINSERT、更新はUPDATE、削除はDELETEで指示する。データを操作するほかに、CREATE TABLEで新しい表を作ることなどもできるんだ。
SELECTとWHEREを、どう読むの?
「SELECT name FROM products WHERE price >= 100;」なら、「productsという表から、priceが100以上の行のnameを取り出す」と読めるよ。SELECTは取り出す列、FROMは対象の表、WHEREは行を選ぶ条件なんだ。結果の並びを指定したいときはORDER BYを使うよ。
JOINは、表を横に並べるだけ?
指定した条件に合う行同士を組み合わせるんだ。たとえば注文のユーザーIDと、ユーザーのIDを結び付けると、注文者の名前も取得できる。INNER JOINは条件に合う組だけを返す。LEFT JOINは左の表の行を残し、右に対応する行がなければ右側の値をNULLにするよ。条件や行数によって、結果の数も変わるんだ。
どのデータベースでも同じSQLが使えるの?
SELECTやWHEREなどの基本は共通しているけれど、使える型や関数、件数制限の書き方などには違いがあるよ。練習でも、使う製品の公式チュートリアルで確認しよう。まず小さな架空の表で検索や並べ替えを試すとよいね。UPDATEやDELETEは意図より広い範囲を変更しないよう、条件と対象を確かめることも大切だよ。
SQLインジェクションを防ぐには?
まとめ:ざっくりこれだけ覚えればOK!
「SQL」って出てきたら「データベースの表を検索・操作する言葉」と思えばだいたいOK!
📖 おまけ:英語の意味
「Structured Query Language」 = 構造化問い合わせ言語
💬 Structured(構造化された)Query(問い合わせ)Language(言語)だよ