
SQLとは?

SQLとはデータベースを操作する言語(データベース操作言語)です。データベース操作言語とはデータの操作や定義を行う言語を指します。
データベースはいくつかの種類があり、SQLはリレーショナルデータベース管理システム(RDBMS)で使用するデータベース操作言語です。SQLを用いることで紙ベースでは時間当たり数十件から数百件程度のデータ処理しかできなかったものが、コンピュータに蓄積されている数百万件以上のデータを効率的に抽出することが可能になりました。
データベース、データベース管理システムとは
そもそもデータベース(DB)とは、情報を蓄積・検索する機能を有するデータの集まり(集計データ)を指します。簡単に言うと、データベースとは従来の台帳や帳簿をシステム化し検索を容易にしたイメージです。
次にデータベース管理システム(DBMS)とは、データベースをコンピュータに蓄積する際に処理を行ってくれるミドルウェアシステム(管理システム)のことです。データベース管理システムは、データベースの構築・管理・運用を行います。
ここでいう構築とはデータベースの初期設定や必要なシステム資源を割り当てることで、管理はデータベースの論理設計に基づいてデータの作成・更新・削除・検索を行うこと、運用はシステム資源・データベース領域のモニター、バックアップ・リカバリー、保守・保全等を行うことです。
リレーショナルデータベースの基本概念
リレーショナルデータベース(RDB)はデータを表形式で表します。表計算ソフトをイメージしてみてください。この表をテーブルと言います。また、表には行(横軸の項目)と列(縦軸の項目)があります。リレーショナルデータベースでは、行をレコードまたはロー(Row)と言い、列をカラム(Column)と言います。
この表形式のデータがいくつも格納されているのが「RDB」と覚えておきましょう。
SQLの基本概念
SQLはリレーショナルデータベースに対する操作を指定します。SQLはデータベース操作の言語です。通常プログラムを作成するためにプログラム言語を使うように、データベースを利用するためにはデータベース操作言語を使います。
データベース操作の方法は対話型でコマンドを入力する方法と、プログラムAPIを使ってプログラム言語から利用する方法があります。
SQLを利用する場合のコマンドは、追加はINSERT・抽出はSELECT・更新はUPDATE・削除はDELETEがあります。ほとんどこれで処理は足りるため、慣れてしまえば難しくありません。詳細は以降でお話しします。
SQLの基本構文

SQLはRDBで用いられており、大きく以下の分類に大別され、それぞれに基本構文が定義されています。 ・データ定義言語(DDL) データ自体を準備するための言語です。 ・データ操作言語(DML) 抽出や更新を行うための言語です。 ・データ制御言語(DCL) データアクセス権を付与するための言語です。
SQLの規格は標準SQL規格が制定されています。しかしながら各社それぞれ独自拡張、つまり方言のような違いがあります。具体的には、SQLの基本構文やストアドプロシージャに各RDBMS製品の違いが見られます。
データ定義言語とは
データ定義言語(DDL)とは、データ自体を準備するための言語です。データベース化するデータを定義するための言語要素を指します。
代表的なコマンドは以下の通りです。 ・CREATE データベース、テーブル(表)、インデックス(索引)、ストアドプロシージャ等の作成を行います。 ・DROP データベース、テーブル(表)、インデックス(索引)、ストアドプロシージャ等の削除を行います。 ・ALTER 存在するオブジェクト属性の変更を行います。 ・TRUNCATE テーブル(表)からデータを削除を行います。
データ操作言語とは
データ操作言語(DML)とは抽出や更新を行うための言語です。データベースに対するデータの登録・更新・削除・検索を行うための言語要素を指します。
代表的なコマンドは以下の通りです。 ・SELECT データの検索・抽出を行います。 ・INSERT 行の追加・挿入を行います。 ・UPDATE データの更新を行います。 ・DELETE レコード(行)の削除を行います。
データ制御言語とは
データ制御言語(DCL)とはデータアクセス権を付与するための言語です。データベースに対するデータアクセス制御を行うための言語要素を指します。
代表的なコマンドは以下の通りです。 ・GRANT 権限の付与を行います。 ・REVOKE 権限の取り消しを行います。
SQLの使い方

これまでにSQLはデータ定義言語(DDL)・データ操作言語(DML)・データ制御言語(DCL)から構成されていることをお話ししました。SQLを用いてデータを扱う場合はデータ操作言語(DML)が分かれば簡単な操作で利用できます。
ここでは、データ操作言語(DML)の言語要素であるSELECT文・INSERT文・UPDATE文・DELETE文を説明していきます。
SELECT文の使い方
SELECT文はデータの検索・抽出を行います。 基本構文: SELECT [ALL | DISTINCT] 列名 FROM “テーブル(表)名” [WHERE 条件式] [GROUP BY “カラム(列)名” [HAVING 条件式]] [ORDER BY “カラム(列)名”]; 使用例:会員テーブルから会員ID3500番以降の会員情報を住所コードでソートし全件表示する例 SELECT * FROM 会員テーブル WHERE 会員ID >= 3500 ORDER BY 住所コード;
INSERT文の使い方
INSERT文は行の追加・挿入を行います。 基本構文: INSERT INTO “テーブル(表)名” VALUES (値[,,]); 使用例:会員テーブルの氏名、会員ID、住所コードに対して’Bar’、7101、’C055’を追加する例 INSERT INTO 会員テーブル(氏名, 会員ID, 住所コード) VALUES (‘Bar’, 7101, ’C055’)
UPDATE文の使い方
UPDATE文はデータの更新を行います。 基本構文: UPDATE “テーブル(表)名” SET “カラム(列)名” = 値 [WHERE 条件式]; 使用例:会員テーブルの会員ID 7101の住所コードを’B011’に更新する例 UPDATE 会員テーブル SET 住所コード = ‘B011’ WHERE 会員ID = 7101;
DELETE文の使い方
DELETE文はレコード(行)の削除を行います。 基本構文:会員テーブルから会員IDが7101のレコード(行)を削除する例 DELETE FROM “テーブル(表)名” [WHERE 条件式]; 使用例: DELETE FROM 会員テーブル WHERE 会員ID = 7101;
SQL初心者のおすすめ本
RDBMSに関する情報、並びに標準SQLに関する情報については一般書籍が多数出版されています。練習問題も多数掲載されていますのでおすすめです。
以下に、おすすめ本4冊を紹介します。難易度が低い初心者向けから順に紹介します。 ・SQLの絵本 第2版 データベースが好きになる新しい9つの扉 データの登録・変更・削除をビジュアル解説した本です。 最初の一歩としておすすめです。 出版元:翔泳社 参考:SQLの絵本 第2版 データベースが好きになる新しい9つの扉
・イラストでそこそこわかるSQL SELECT文と並び替え・集約のきほんのきまで 「SQL 1年生のための入門の入門書」がターゲットの入門書です。 データベースに利用者向けで、データを取り込み部分に特化して説明されています。 無償の「MySQL Community Edition」をベースにした教材で、すぐに始められます。 練習問題付きで学習レベルの確認ができます。 出版元:翔泳社 参考:イラストでそこそこわかるSQL SELECT文と並び替え・集約のきほんのきまで
・SQL 第2版 ゼロからはじめるデータベース操作 データベースやSQLが初めてのエンジニア向けです。 標準SQLをベースにしています。 Oracle・SQL Server・DB2・PostgreSQL・MySQLの比較も解説されています。 出版元:翔泳社 参考:SQL 第2版 ゼロからはじめるデータベース操作
・スッキリわかる SQL 入門 ドリル215問付き 図解が豊富なSQLの入門書です。 215問の練習問題ドリルが掲載されています。 スマホで利用できるクラウド実行環境が提供されており、通勤時間やすきま時間も学習できます。 出版元:インプレス ブックス 参考:スッキリわかる SQL 入門 ドリル215問付き
SQLの構文チェック方法
SQLはRDBMS製品によりそれぞれ違いがあります。そのため、プログラミング入門として各製品に応じたSQL構文を確認することがおすすめです。
通常、SQLの正しい構文チェックには時間を要するため、できるだけシンプルな構文を作成することが重要です。プログラミング入門の作法と同じで、シンプルな構文が正常動作したらそれを応用して追記したり、別の処理に活用したりします。とりわけ、命令の区切りとなる”;”(セミコロン)の記載漏れがないか確認しましょう。
なお、統合開発環境(IDE)のEclipseやNetBeansではPHPやJavaのアプリケーション開発でSQLの構文チェックをしてくれます。中でもPHPはデータベースアクセスを得意としますのでプリペアステートメント等のSQLテンプレート機能が用意されており、効率的に開発が可能です。
その他sqlcheckがGitHubで提供されています。sqlcheckは、MySQL・Oracle Database・PostgreSQL・Microsoft SQL Server・SQLite等の構文チェックが可能なツールです。さらに、MySQLではオンライン構文チェッカを提供しているサイトがいくつかありますので活用してみましょう。
SQLの初心者でもSELECT文が分かれば利用できます

SQLはRDBMSの操作言語です。DBの活用方法は多くの場合、大量のデータから求める情報の検索・抽出を高速に行うことです。つまりSELECT文が分かればだれでもDBの利用者としてデータ活用が可能になります。
SELECT文が理解できたら、次はデータ分析に積極的に活用することをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから