SQLは、リレーショナルデータベースへ指示を出すための言語です。保存されたデータの検索だけでなく、登録、更新、削除、テーブル作成、権限設定などにも使われます。
SQLとは
SQLは「Structured Query Language」の略です。「エスキューエル」と読むのが一般的ですが、「シークェル」と呼ばれる場合もあります。
通常のプログラミング言語が処理手順を細かく記述するのに対し、SQLでは「どの条件のデータが欲しいか」を宣言的に記述します。データベース管理システムが、データを取得する具体的な方法を判断します。
SQLでできる主な操作
データを検索するSELECT
SELECT name, price
FROM products
WHERE price >= 1000
ORDER BY price DESC;
この例は、productsテーブルから価格が1,000以上の商品名と価格を取り出し、価格の高い順に並べます。
データを登録するINSERT
INSERT INTO products (name, price)
VALUES ('ビジネス用語集', 1500);
データを更新するUPDATE
UPDATE products
SET price = 1600
WHERE name = 'ビジネス用語集';
データを削除するDELETE
DELETE FROM products
WHERE name = 'ビジネス用語集';
UPDATEやDELETEでWHERE条件を付け忘れると、多数の行を誤って変更・削除する危険があります。
テーブル同士を結び付ける
SQLの重要な機能がJOINです。顧客テーブルと注文テーブルを顧客IDで結び付ければ、「誰が、いつ、何を注文したか」を一つの結果として取得できます。
また、COUNT、SUM、AVGなどを使い、注文数、売上合計、平均単価を集計できます。GROUP BYと組み合わせれば、商品別や月別にまとめられます。
SQLは製品ごとに違うことがある
SQLには標準規格がありますが、PostgreSQL、MySQL、SQL Server、Oracle Databaseなどは独自の関数や構文も持っています。基本的なSELECTなどは共通していても、日付処理、文字列操作、ページ分割などに違いがあります。
使用するデータベース製品の公式ドキュメントを確認し、別製品へ移行するときは互換性を検証します。
安全に使うための注意点
アプリで利用者の入力を文字列連結してSQLへ埋め込むと、SQLインジェクション攻撃を受ける可能性があります。プレースホルダーを使ったパラメーター化クエリなど、安全な実装を使います。
また、アプリの接続アカウントへ必要以上の権限を与えず、本番データを更新する前にバックアップと復旧手順を確認します。重要な更新はトランザクションを使い、一連の処理をまとめて成功または取り消せるようにします。
非エンジニアが学ぶメリット
SQLの基本を理解すると、データ担当者へ抽出条件を正確に伝えたり、BIツールの集計結果を確認したりしやすくなります。まずSELECT、WHERE、ORDER BY、GROUP BY、JOINの役割から学ぶとよいでしょう。
まとめ
SQLは、リレーショナルデータベースのデータと構造を操作する言語です。検索、登録、更新、削除、集計ができます。便利な一方、条件漏れや攻撃対策に注意し、権限とバックアップを適切に管理しましょう。