SQLとは、リレーショナルデータベース(RDB)のデータを操作するための言語です。SQLを使用することで、データベースに対して命令を出して、必要なデータを格納したり、格納したデータを取り出したりすることができます。

世の中には、リレーショナルデータベースを管理するためのソフトウェアであるリレーショナルデータベース管理システム(RDBMS)がたくさん存在しますが、どのRDBMSにおいても、基本的には同じSQLを使用することができます。ただし、各々のRDBMSには独自拡張が数多く実装されているため、まったく同じように使えるかというと、そうではありません。

SQLの命令の種類

SQLはDDL(Data Definition Language:データ定義言語)DML(Data Manipulation Language:データ操作言語)DCL(Data Control Language:データ制御言語)の3種類の要素で構成されています。

DDLは、データベース、テーブルなどの基本データを定義・作成するための言語です。テーブルの作成に使うCREATE TABLEや、削除に使うDROP TABLE、テーブル定義を変更するALTER TABLEがこの言語に含まれます。

DMLは、DDLで定義したデータに対して、抽出(検索)、挿入(追加)、更新、削除といった操作を行うための言語です。データを抽出するSELECT、データをテーブルに挿入するINSERT、データを更新するUPDATE、データを削除するDELETEなどがあります。

DCLは、データベースのユーザー権限の管理やデータのトランザクション管理を行うための言語です。権限を付与するGRANT、権限を剥奪するREVOKE、変更を確定するCOMMIT、変更を取り消すROLLBACKなどがあります。

SQLが持つ命令の中でもっとも特徴的で、習得が難しいのがSELECTと言えるでしょう。様々な条件を付加することで、柔軟にデータを抽出することができますが、その分、使いこなすのも大変です。

データベースの操作

ほとんどのデータベースでは、SQLを入力、実行するためのツールを使って、データを操作します。それらのツールはDBMSをインストールすると一緒にインストールされ、使えるようになります。コマンドラインから実行するもの、GUI(画面操作)で実行するものなどがあります。

また、JavaやPHPのようなプログラミング言語からデータベースを操作する場合には、プログラム上でSQL文を生成して、そのSQL文をDBMSに発行し、操作を実行することになります。それらのプログラミング言語用に、SQL文を発行し結果を受け取るためのソフトウェアが用意されています。