SQL(シークエル / エスキューエル)とは、MySQLやPostgreSQLなどの「リレーショナルデータベース(RDBMS)」に対して、データの検索や追加、更新、削除といった命令を行うためのデータベース専用の言語です。
厳密にはプログラミング言語ではなく「問い合わせ言語」と呼ばれます。システム開発において、ユーザーの情報を画面に表示したり、新しい会員登録のデータを保存したりする際、システムの裏側ではプログラムがこのSQL文を自動的に作成し、データベースに向けて送信(発行)しています。
基本となる4つの命令(CRUD)
システム開発におけるデータ操作の基本である「CRUD(クラッド:Create, Read, Update, Deleteの頭文字)」は、SQLの以下の4つの基本コマンドに直接対応しています。
| SQLコマンド | CRUD(役割) | 処理の具体例(意訳) |
|---|---|---|
| SELECT(セレクト) | Read(読み取り) | 「年齢が20歳以上のユーザー一覧を取得して」 |
| INSERT(インサート) | Create(作成) | 「新しいユーザー『田中さん』のデータを追加して」 |
| UPDATE(アップデート) | Update(更新) | 「山田さんの住所を『静岡県』に書き換えて」 |
| DELETE(デリート) | Delete(削除) | 「退会した鈴木さんのデータを完全に消去して」 |
システム開発における重要キーワード
Webアプリや業務システムを開発する際、SQLに関連して必ず理解しておくべきセキュリティや開発手法の用語です。
- SQLインジェクション (SQL Injection)
Webサイトの入力フォーム(検索窓やログイン画面など)に悪意のあるSQL文を入力し、データベースのデータを不正に盗み出したり破壊したりする、最も代表的で危険なサイバー攻撃です。開発者はこれを防ぐための安全なプログラミング(プレースホルダの利用など)を徹底する必要があります。 - ORM (Object-Relational Mapping / O/Rマッパー)
プログラム(Java、PHP、Pythonなど)からデータベースを操作する際、わざわざSQL文を手書きしなくても、直感的なプログラムのコードを書くだけで裏側で自動的にSQLを生成・実行してくれる便利な仕組み(ライブラリ)のことです。現代のWeb開発では標準的に使われます。 - NoSQL(Firebaseなど)との関係
SQLは「表形式でカッチリ整理されたデータベース」を操作するための言語です。そのため、モバイルアプリ開発などでよく使われるFirestore(Firebase)のような、柔軟なデータ構造を持つ「NoSQL」データベースではSQLは使えず、サービスごとの専用の命令方法を用います。

コメント