SQLとは?IT初心者向けにわかりやすく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です。

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

blank

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

データベース 例

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

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

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

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

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

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

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

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

SQLの歴史

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

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では利用できない・・・というようなことがあります。

標準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-DDL

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

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

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

SQL-DDL処理内容
CREATE新しいテーブルやビューを作成する
DROP既存のテーブルやビューを削除する
ALTER既存のテーブルやビューを更新する

基本的にはデータベース構築を行う上で最初に利用することになるのがSQL-DDLです。

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

SQL-DCL

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

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

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

SQL-DCL処理内容
GRANTテーブル/ビューに対する権限を付与する
REVOKEテーブル/ビューに対する権限をはく奪する

SQL-DML

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

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

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

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

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

システムエンジニアを目指したい方は

システムエンジニアを目指す方や、IT知識を1から身につけたい方は以下のページをご覧ください。

正直どこから学び始めればよいかわからない。どのように勉強していけば、エンジニアとしてのスキルが磨けるか?が分からない・・・という方は必見です。

システムエンジニア向けに「できるエンジニア」になる方法を1から解説しておりますので、是非ご覧ください。

タイトルとURLをコピーしました