PR

SQLとは?初心者向けにわかりやすく3分で解説【簡単】

Database

SQL (Structured Query Language) とは、現在最も広く用いられているデータベース操作を行うために用いられる特別な言語です。

SELECT文 / INSERT文CREATE TABLE ~というような単語を聞いたことがある方もいるかもしれません。それが今回ご紹介するSQLの正体です。

このページでは、そもそもデータベースって何?SQLって何?SQLは何ができるの?という疑問をお持ちのIT初心者向けに、1から丁寧にわかりやすく3分で解説します。

専門用語はできるだけ利用せずに解説します!

このページで学べる内容
  • データベースとは?
  • SQLとは?
    • SQLの由来
    • 標準SQL
  • SQLの種類
    • SQL-DDL
    • SQL-DCL
    • SQL-DML

プログラマーやシステムエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識です!是非最後までご覧ください。

読者料典 【完全無料】SQL:初心者向け学習ロードマップ ←こちらから!

スポンサーリンク

SQLとは?わかりやすく言うと・・・

SQLはデータベースを操作するための特別な言語です。

データベースを定義したり、データを登録・更新したり、データを削除したりする際に用いる言語がSQL。

逆に言えば、SQLの理解なしでデータベースの操作を自由自在に行うことはできません。

SQLとは
図1:SQLとは?

参考 データベースとは?

前提としてデータベースとは何か?を一言で説明すると「様々なデータを決まった形で整理して集めたもの」となります。

blank

日常で使う「アドレス帳」「電話帳」、先生が利用する「学生名簿」なども "データベースである" と説明することができます。

データベース 例

これらのデータをどのように整理して保存するか?(=データベース/テーブル/ビューの定義)を定義したり、データベースから目的のデータを取り出したり、データベースへのアクセス権限を制御したりするのがSQL (Structured Query Language) の役割。

SQLと言ったら、まずは「データベースを作ったりデータベースにデータを登録したり・・・」ができるあれこれなんだな~と理解できればまずはOKです。

SQLはリレーショナルデータベースを操作する言語

この中でSQLはリレーショナルデータベースを操作するために考え出されたデータベース言語です。

エクセルのような表形式で保持されているデータからどのようにデータを取り出すか?どのようにデータベースを定義するか?はすべてSQLで行われます。

データベースは、データの保持形式に着目すると以下の3つに分類することができます。

データベース 種類
  • リレーショナルデータベース
    ⇒エクセルのように表形式でデータを保存する
  • 階層型データベース
    ⇒ツリー状にデータを保存する
  • ネットワーク型データベース
    ⇒データを相互に関連付けて保存する

関連 データベースとは?IT初心者向けにわかりやすく3分で解説【DB】

SQLの歴史

SQLはIBM社が1970年代に開発した "SEQUEL" (Structured English Query Language) と呼ばれるデータベース言語に由来します。

SEQUEL

SEQUELはリレーショナルデータベースの定義や操作に特化した言語で、文法も非常に簡単で覚えやすいという特徴があったため、IBM製のデータベースだけでなく、IBM社以外のデータベースでも採用が進んでいきました。

各メーカーがお互いに協力しながら発展させていったデータベース言語が今日のSQLの起源です。

標準SQL

SQLは様々な会社が協力して発展させ標準化していったデータベース言語ですが、会社によっては多少独自の機能拡張を行ったり、独自の文法を用いたりする場合が出てきました。

会社独自の発展や機能拡張の開発などで "SQL" というデータベース言語自体が統一されていない状況を避けるために、ISO(国際標準化機構:International Organization for Standardization)がSQLの標準化を行いました。

これを標準SQLと呼びます。

標準SQLは数年に一度改定が行われ、2022年現在の最新版は "SQL:2016" となっています。

制定年規格名称
1986年SQL86
1989年SQL89
1992年SQL92
1995年SQL/CLI
1996年SQL/PSM
1999年SQL1999 (SQL99)
2003年SQL:2003
2008年SQL:2008
2011年SQL:2011
2016年SQL:2016
SQL規格一覧

すべての規格を覚える必要はありませんが、ここでは「SQLは時代とともに少しづつ変化すること/今後もSQLの規格が変わりうること」「利用しているSQLの規格によって動作が異なる場合があること」を頭に入れておきましょう。

標準SQLと "方言"

上記で説明した通り、標準SQLはISOによって標準化されている世界統一規格です。

しかしながら、実は各ベンダーは必ずしもこの標準SQLに完全準拠しなければならないというわけではありません。つまり、各ベンダー独自でSQLを拡張している場合(=方言)があって、我々はそれを考慮してSQLを学んでいく必要があるということです。

例えばOracleDBでは利用できるSQL文がMicrosoftのSQL Serverでは利用できない・・・というようなことがあります。

例)OracleDBとSQL Serverの差異
  • ピボットテーブル(Pivot Table)
    Oracleでは、PIVOT構文を使用して、行を列に変換することが可能。SQL ServerにもPIVOT構文がありますが、いくつかの制限が存在する。
  • テーブルの複数列の追加
    Oracleでは、ALTER TABLE文を使用して、複数の列を同時に追加することが可能。SQL Serverでは、ALTER TABLE文を使用して1つの列しか追加できない。
  • 数字の書式設定
    Oracleでは、TO_CHAR関数を使用して、数字を文字列に変換し、書式設定することができる。SQL Serverでは、FORMAT関数を使用して書式設定する必要がある。
  • 表領域(Tablespace)
    Oracleでは、テーブルを格納するための領域を管理するための概念である「表領域」を提供している。SQL Serverには、これに相当する機能がない。

標準SQLがベースとなる共通言語。そのうえで、細かな方言SQLが各ベンダーの製品ごとに存在しているという点を押さえておきましょう。

基本的には標準SQLを押さえておけばどのデータベースだとしても大部分の処理を行うことは可能です。そのため、まずは確実に標準SQLの構文・処理内容を頭に入れるようにしておきましょう。

ISO:国際標準化機構

ISO:国際標準化機構 とは、日本を含む世界各国にある標準化組織から構成される非政府組織です。

例えばクレジットカードの大きさなど、世界全体で統一しておいた方がよい "モノ" や "仕組み" を標準として定義することが主な役割で、ネットワークの仕組み=OSI参照モデルなどを定義している団体としても有名です。

SQLの種類

SQLをより具体的にイメージできるように、SQLでできることを以下の3種類に分けて解説します。

SQLの種類
  • SQL-DDL (Data Definition Language)
    ⇒データベースを定義するためのSQL
  • SQL-DCL (Data Control Language)
    ⇒データベースを制御するためのSQL
  • SQL-DML (Data Manipulation Language)
    ⇒データベースのデータを操作するためのSQL

ザックリいえば、SQLはデータの登録や削除だけでなく、テーブル(表)の定義や、データ操作に関する権限などの設定も行えるということ。

ここでは具体的にそれぞれのSQLがどのような操作を行えるのか?を見ていきながら「SQLってこういうことね!」というイメージを持てるようにしていきましょう!

SQL-DDL

SQL-DDL (Data Definition Language) はデータベースを定義するためのSQLです。

"データ定義言語" と呼ぶ場合もあります。

主にテーブルやビューを新規に作成したり変更・削除したりするのがSQL-DDLの役割。SQL-DDLに分類される代表的な命令は以下の通りです。

SQL-DDL処理内容
CREATE TABLE新しいテーブルを作成する
CREATE VIEW新しいビューを作成する
DROP TABLE既存のテーブルを削除する
DROP VIEW既存のビューを削除する
ALTER既存のテーブルやビューを更新する
CREATE INDEXインデックスを作成する
CREATE TRIGEERトリガーを作成する
DDLの例

基本的にはデータ操作を行うのではなく、データベースそのものの管理や制限を行うために用いるのがSQL-DDL (Data Definition Language)だと覚えておけばOKです。

また、SQL-DDLは既存のテーブルやビューを変更したり、削除したりすることも可能なので、使用ミスをしてしまうと影響が大きいというのも特徴です。

サンプル1 SQL-DDL

-- テーブルの作成 (CREATE TABLE)
-- 社員テーブルを作成します。ID、名前、年齢、部署IDをカラムとして持ちます。
CREATE TABLE 社員 (
    ID INT PRIMARY KEY,
    名前 VARCHAR(50),
    年齢 INT,
    部署ID INT
);

-- インデックスの作成 (CREATE INDEX)
-- 社員テーブルの名前カラムにインデックスを作成します。検索速度の向上が期待されます。
CREATE INDEX idx_名前
ON 社員 (名前);

SQL-DCL

SQL-DCL (Data Control Language) はデータベースのセキュリティを制御するためのSQLです。

SQL-DCL はデータ制御言語と呼ばれる場合もあります。

SQL-DCLで制御するのは主にデータベースへの権限です。SQL-DCLを利用すると、全員に公開しても良いデータベース、一部の人だけに公開しておきたいデータベースなど個別に権限を制御することが可能。

SQL-DCL処理内容
GRANTテーブル/ビューに対する権限を付与する
REVOKEテーブル/ビューに対する権限をはく奪する
COMMIT/ROLLBACLトランザクションを管理する

DCLは扱う内容が割と高度なので、そこまで利用頻度は高くないものの、逆に言えばこれらの処理が頭に入っているプログラマーやエンジニアは市場価値が高めかも?です。

サンプル2 SQL-DCL

-- ユーザー 'ユーザー名' に対して、社員テーブルに対するSELECT権限を付与します。
GRANT SELECT ON 社員 TO ユーザー名;

-- ユーザー 'ユーザー名' に対して、社員テーブルに対するSELECT、UPDATE権限を付与します。
GRANT SELECT, UPDATE ON 社員 TO ユーザー名;

-- ユーザー 'ユーザー名' から、社員テーブルに対するUPDATE権限を取り消します。
REVOKE UPDATE ON 社員 FROM ユーザー名;

-- ユーザー 'ユーザー名' から、社員テーブルに対するすべての権限を取り消します。
REVOKE ALL ON 社員 FROM ユーザー名;

↑のサンプルコードは、特定のユーザーに対してテーブルへのアクセス権限を付与(GRANT)したり、取り消し(REVOKE)したりする操作を示しています。これにより、データベースのセキュリティとアクセス制御が可能になります。

SQL-DML

SQL-DML (Data Manipulation Language) はデータベースを操作するためのSQLです。

"データ操作言語" と呼ぶ場合もあります。

テーブルにデータを登録したり更新・削除したりするのがSQL-DMLの役割で、日常的に最も利用頻度が高いのがSQL-DML。

SQL-DML処理内容
SELECTテーブルからデータ(レコード)を抽出する
INSERTテーブルにデータ(レコード)を新規登録する
UPDATEテーブルのデータ(レコード)を更新する
DELETEテーブルからデータ(レコード)を削除する

SQL-DMLはプログラム構築をする人にとっては理解必須の重要SQLです。基本的な処理内容と文法・注意点は暗記レベルで押さえておく必要があります。

サンプル3 SQL-DML

-- 社員テーブルに新しいレコードを挿入します。
INSERT INTO 社員 (ID, 名前, 年齢, 部署ID) VALUES (1, '田中太郎', 25, 101);

-- 社員テーブルの特定のレコードの年齢を更新します。
UPDATE 社員 SET 年齢 = 26 WHERE ID = 1;

-- 社員テーブルから特定のレコードを削除します。
DELETE FROM 社員 WHERE ID = 1;

-- 社員テーブルから特定の条件に合致するレコードを検索します。
SELECT 名前, 年齢 FROM 社員 WHERE 部署ID = 101;

↑のサンプルコードは、データの挿入(INSERT)、更新(UPDATE)、削除(DELETE)、検索(SELECT)といった基本的なデータ操作を示しています。これらのコマンドは日常的なデータベース操作に頻繁に使用されるもので、データの取り扱いにおいて中心的な役割を果たします。

SQL初心者は、まずはこれらの基本的なDMLから学習を進めていくと良いでしょう。

まとめ:SQLとは?

このページのまとめ
  • SQL (Structured Query Language) とは現在最も広く用いられているデータベース操作を行うために用いられる特別な言語
  • SQLには「標準SQL」という規格が存在。ただし、メーカーによっては多少の違い(=方言SQL)がある点を押さえておく必要がある。
  • SQLは大きく以下の3種類に分類される
    • SQL-DDL (Data Definition Language)
      ⇒データベースを定義するためのSQL
    • SQL-DCL (Data Control Language)
      データベースを制御するためのSQL
    • SQL-DML (Data Manipulation Language)
      ⇒データベースのデータを操作するためのSQL

現在のスキルに今一つ満足できていないシステムエンジニア/プログラマーの方へ。

SQLやデータベースの仕組みを1から学習したい方(学び直したい方)向けに、現役エンジニア達のスキルを結集して 完全無料 のSQL教材を作成しました。是非この機会にブックマークを!

読者料典 【完全無料】SQL:初心者向け学習ロードマップ ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
DatabaseIT-Skills
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました