SQL(Structured Query Language)はデータベースを操作するための言語です。
PostgreSQLを含む、ほとんどのRDBMSがSQLをサポートしており、アプリケーションからデータベースを利用する場合にはSQLを使用してデータベースに対して各種問い合わせを行うことになります。
SQLでできることのほとんどはpgAdminによるGUIからでも操作できますが、アプリケーションからデータベースにアクセスする場合には、GUIで操作というわけにはいきません。
そのため、PostgreSQLに限らず、データベースを利用するアプリケーションを開発する上で、SQLの習得は必須であり、避けては通れないものです。
SQLとは
SQL(Structured Query Language)はデータベース(正確にはリレーショナルデータベース)を操作するために開発された言語です。
もともと、データベースから効率良くデータを検索することを目的としたものでしたが、現在ではデータ検索だけでなく、データの登録や削除といったデータベース操作のほとんどをSQLで行うことができます。
SQLにはISO(国際標準化機構)で定められた標準規格があり、それに準拠したSQLを標準SQLと言います。
このように標準規格を定めることで、さまざまにあるRDBMSで同じSQL文を使うことができます。
ただし、標準SQLに完全に準拠したRDBMSばかりではなく、RDBMSごとにいわゆる「方言」のようなものが存在します。(例えば、Oracleデータベースで使用できるSQL文がSQL Serverでは使用できないなど。)
とは言うものの、標準SQLを覚えれば、大抵のデータベース操作が可能なため、まず、標準SQLでの書き方を覚えていくのが良いでしょう。
SQLの分類
SQLは機能により、大きく次の3つに分類されます。
DDL(Data Definition Language)
DDL(データ定義言語)は、テーブルなどのオブジェクトを作成するためのコマンド群です。DDLに分類されるコマンドは以下になります。
CREATE | データベースやテーブルなどを作成する。 |
---|---|
DROP | データベースやテーブルなどを削除する。 |
ALTER | データベースやテーブルなどの構成を変更する。 |
DML(Data Manipulation Language)
DML(データ操作言語)は、データの挿入/更新/削除などを行うためのコマンド群です。DMLに分類されるコマンドは以下になります。
SELECT | テーブルから行を検索する。 |
---|---|
INSERT | テーブルに新規行を登録する。 |
UPDATE | テーブルの行を更新する。 |
DELETE | テーブルの行を削除する。 |
DCL(Data Control Language)
DCL(データ制御言語)は、トランザクション関連のコマンドが含まれます。DCLに分類されるコマンドは以下になります。
COMMIT | データベースに対して行った変更を確定する。 |
---|---|
ROLLBACK | データベースに対して行った変更を取り消す。 |
GRANT | ユーザーに操作の権限を与える。 |
REVOKE | ユーザーから操作の権限を奪う。 |
このように、SQLは機能により3つの種類に分けられます。そのうち、最もよく使われるのがDML(データ操作言語)になります。