SQLの解説(基本情報技術者シラバス用語)

目次

SQLとは

SQL(Structured Query Language)とは、関係データベース(RDB)にデータの検索や追加、更新、削除などを指示するために広く使われている標準的なデータベース操作用のプログラミング言語です。一般的なプログラム言語とは異なり、『データをどのように処理するか』ではなく、『どのようなデータが欲しいか』という条件(問い合わせ)を指示する特徴を持っています。ほとんどのWeb開発やデータ分析の現場で不可欠な技術となっています。

具体例

例えば、会員データベースから20歳以上のメンバーの名前を検索したい場合、データベースの管理者に対して以下のSQL文(命令)を記述して実行します。これにより、DBMSが自動的に条件に合った人を探し出して一覧として返してくれます。

SELECT name FROM members WHERE age >= 20;

もう少し詳しく

SQLは、1970年代にIBM社によって開発され、その後ISO(国際標準化機構)やANSI(米国国家規格協会)によって標準化されました。SQLの最大の特徴は「非手続き型言語(宣言型言語)」である点です。C言語やJavaなどの「手続き型言語」では、「データを1件ずつループで読み込み、もし条件に合致すればリストに追加する」といった具体的な「処理手順(How)」をコードで記述します。これに対し、SQLでは「このテーブルから、この条件に合うデータを取得せよ」という「結果の条件(What)」だけを宣言します。どのようにデータを走査し、インデックスを使用するかといった最適化は、DBMSの内部にある「オプティマイザ」と呼ばれる機能が自動的に判断して実行します。

SQLの命令体系(ステートメント)は、その機能によって以下の3つに大別されます。

1. DML(Data Manipulation Language:データ操作言語):データベース内のデータを操作するための命令です。実務や開発で最も頻繁に使用されます。
- SELECT:データの検索・取得
- INSERT:新しいデータの追加
- UPDATE:既存データの更新
- DELETE:データの削除
2. DDL(Data Definition Language:データ定義言語):データベースの構造やテーブル自体を作成・管理するための命令です。
- CREATE:テーブルやデータベースの新規作成
- DROP:テーブルやデータベースの削除
- ALTER:テーブル構造の変更
3. DCL(Data Control Language:データ制御言語):データの安全性を保つため、ユーザー権限や取引の確定を管理します。
- GRANT:権限の付与
- REVOKE:権限の剥奪
- COMMIT / ROLLBACK:トランザクション処理の確定および取り消し(※これらは「トランザクション制御言語:TCL」として別に分類されることもあります)

SQLは特定のRDB製品(MySQLやOracleなど)に依存しない共通の標準規格ですが、一部の製品では独自の拡張機能や関数(方言)が実装されている場合もあります。

試験でのポイント

IT試験においては、SQLの言語的な特性や、命令文の分類(DDL、DML、DCL)を正しく仕分ける問題が出題されます。

試験対策としての重要ポイントは以下の通りです。
・非手続き型言語である:処理手順ではなく、「得たいデータ(結果)の条件を指定する」言語である点。
・命令文の分類問題: - DDLに分類されるもの:CREATE、DROP、ALTER(テーブルそのものの定義・変更) - DMLに分類されるもの:SELECT、INSERT、UPDATE、DELETE(テーブル内のレコードに対する操作) - DCLに分類されるもの:GRANT、REVOKE(セキュリティやアクセス権限の制御)
・各命令の使い分け:例えば、「テーブルそのものを消去する命令はどれか(DROP)」と「テーブルの中身のデータを消去する命令はどれか(DELETE)」の違いは、ひっかけ問題として非常に出題されやすいため、明確に区別しておきましょう。

関連する用語

SQLによって命令を受ける対象となる「関係データベース(RDB)」や、その管理システムである「DBMS(RDBMS)」は必須の関連用語です。また、SQLの命令分類である「DML(データ操作言語)」や「DDL(データ定義言語)」、最も代表的なデータ抽出命令である「SELECT文」も重要な関連キーワードです。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ