情報社会とも呼ばれる昨今、数多くの情報をまとめ・管理することは重要な役割になっています。

情報を集めたデータベースを管理する際、必要なのが「SQL」という言語です。

SQLは誤解や混同を招きやすい言語で、正しく理解できている人は多くありません。

SQLはどういったもので、どのように習得すれば良いのでしょうか。

これからSQL習得を考えている人もそうでない人も、SQLについて理解を深めましょう。

SQLとは

フリーランス 悩み


そもそもSQLとは何でしょうか。

結論から述べると、SQLとは「データ・データベースを制御・定義・操作するための言語」です。

データやデータベースというと、複雑な難しい言葉のように感じるかもしれません。

ですが、そんなに難しいものではないので安心してください。

データベースとは、データの集合体のことです。

たとえば、顧客の住所・電話番号・メールアドレス・氏名等はデータです。企業では「顧客データ」と呼びます。

この顧客データを、集めて分かりやすいようにまとめたものがデータベースです。

意味を混合して使用されることも少なくありませんが、本来の意味を覚えておいた方が混乱しません。

このようなデータ・データベースに実行・命令等をして、管理するための言語がSQLです。

データ操作を行う一般的な言語なので、ITに関わっている人なら把握しておいた方が何かと役立つでしょう。


SQLとMySQLの違い

黒地に複数の言葉。その中にデータベースの文字


SQLについて調べていると、「MySQL」という言葉が一緒に登場することがあります。

名前だけ見ると「My」がついているかいないかの違いなので、混乱してしまう人もいるのではないでしょうか。

SQLをこれから勉強しようとしている人は、「MySQL」という言葉についても知っておいた方が良いでしょう。

MySQLの概要やSQLとの違いを確認しておきます。


MySQLはデータを管理するシステム

実は、MySQLとSQLはまったくの別物です。

MySQLというのは、データを管理するためのシステムのこと。

このようなシステム自体をデータベース呼ぶこともあるので、混乱してしまうかもしれません。

SQLは「データベースを扱う言語」であり、MySQLは「データベースそのもの」です。

MySQLが公開されたのは1995年でした。

汎用性が高い上に使用料は無料オープンソースということもあり、今現在でも様々な場所で使われています。

このようなデータを管理するためのシステムというのは他にもあって、有名なものに絞ると

  • PostgreSQL
  • Oracle
  • Access

といったものが挙げられます。

Oracleは有名なので、ITに詳しくなくても聞いたことがある人も多いでしょう。

このようなシステムの総称を「DBMS(database management system)」や「RDBMS(relational database management system)」といいます。

改めてまとめましょう。

MySQLは「管理するためのシステム(DBMSやRDBMS)」です。

SQLは「『管理するためのシステム』を扱う言語」となります。

まったく違うものなので注意しましょう。

MySQLの使い方については、以下の記事で詳しく解説しています。MySQLについて知りたい方は、ぜひこちらも併せてご参照ください。

MySQLの使い方を初心者向けに徹底解説!ダウンロード方法やサーバーへの接続の仕方は?よく使うコマンドとオプションも確認


幅広いDBMS・RDBMSで利用できるSQL

ビルの屋上でスマホを使うビジネスマン


データを管理するためのシステムについてご紹介しましたが、MySQL以外の他の管理システムでもSQLは使えます。

これは、SQLが国際的に標準的な規格として世界中で利用されているからです。

世界にある多くの管理システム・データベースにSQLは使われています。

このような観点からも、SQLは「データを扱いたい」という方にとっては必要性の高いものになっているといえるでしょう。


SQLはプログラミング言語ではない

オフィスの上のビジネス資料


SQLはデータベースを扱うための言語なので「プログラミング言語の1種」と誤解している人も少なくありません。

実際のところ、よく使うプログラミング言語・ニーズの高いプログラミング言語の1つとして挙げられる事も多いです。

しかしSQLはデータベース言語であり、プログラミング言語ではありません

プログラミング言語は、「コンピューターに対してどのような処理を行うか」を命令するための言語です。

一方でSQLは、MySQL・OracleのようなDBMS・RDBMSに対して命令を行うための言語となります。

使えるのはデータベースのみであり、用途がプログラミング言語よりも狭いです。

そのためSQLはプログラミング言語に比べると全体的にシンプルです。

難易度は個人差がありますが、SQLの方が比較的すぐマスター出来るといえるでしょう。


データベースの基礎・テーブルやレコードについて

オブジェクト指向型プログラミング


SQLを利用してデータ・データベースを扱う際に、外せないのは「データベースそのものに対する理解」です。

扱うものについて理解していなければ、管理などできません。そのため、データベースの基礎について解説していきます。


表全体を表すテーブル

データベースというのは、データをまとめたものだと解説しました。

では、1つ1つのデータはどのように管理されているのでしょうか。

「住所・電話番号・氏名」のような細かなデータは、テーブルという「表」にまとめられています。

「テーブル」とは具体的にこのようなものです。

氏名 住所 電話番号
マイク ニューヨーク 0000000000
マーク カリフォルニア 1111111111

データベースというのは、このような1つ1つの「表」をまとめたのようなものといえます。

テーブルは表全体を指しているので、表全体に取得・命令といったアクションを起こしたい時に重要になるものです。


カラムとレコード

細々したデータをあつめたテーブルの中身を見てみると、縦の列と横の列に分かれています。

テーブルの縦列が「カラム」、横の列が「レコード」です。

氏名 住所 電話番号
マイク ニューヨーク 0000000000
マーク カリフォルニア 11111111111
スティーブ アイオワ 8888888888

このような表だった場合、氏名を取得したいと思ったらカラム(縦)を指定しないといけません。

逆に1人の顧客情報全体を操作したいと思ったら、レコードの概念を使う必要があります。


SQLの種類は大きく分けて3つ

本で勉強する女子生徒


SQLには3つの言語が存在しており、その種類によって使用する命令文違います。

SQLとその種類・種類ごとの命令文について押さえていきましょう。


データ定義言語(DDL)

DDLとは、「data definition language」の略称です。

DDLではテーブルを新たに作成することや、テーブルの定義テーブルの削除を行えます。

データ定義言語というだけあって、テーブルに関する全体的な定義やテーブル間での様々な処理を行う事が可能です。

DBMS・RDBMSで利用する殆どのオブジェクトに対して、様々な定義を行うものになっているので、利用する機会が多いです。

DDLで利用する事が多い命令文には以下のようなものが挙げられます。

  • JOIN(テーブルとテーブルを合体させる)
  • CREATE (テーブル・データベースの作成)
  • DROP(オブジェクトの削除)


データ操作言語(DML)

若い女性はバーチャルグラスをかけてタッチする


DML(data manipulation language)はテーブルの中身であるデータに対して、様々な操作できる言語です。

一般的にDMLとして利用する事が多いのは以下の命令文です。

  • SELECT(データを探して、取得)
  • UPDATE(データを更新)
  • DELETE(指定したものを削除)
  • INSERT(新たなデータを入れる)

特にこの中でも、SELECTはよく使うので押さえておきたい文言になっています。


データ制御言語(DCL)

3つ目はDCL (data control language)です。日本語ではデータ制御言語と呼びます。

名前の通り、DCLは「ユーザー権限や処理の操作・制御」というのが主な役割です。

DLCではこのような文言が使用されます。

  • GRANT(権限を付ける)
  • ROLLBACK(処理の取り消し)
  • REVOKE(権限の削除)

この言語は実際にデータを操作・定義するといったことはできません。

データを扱う人や、処理に関する制御を扱うというイメージの方が分かりやすいです。

SQLと記号の種類(演算子)

数学を解く女学生


SQLのようなデータベース言語に限らず、プログラミング言語でも「記号(演算子)」が使われる事が一般的です。

SQLの基本的な記号(演算子)についても解説していきます。


算術演算子

算術演算子とは、プログラミング等で算術を行う時に利用する演算子(記号)のことです。

算術という名前の通り、利用するのは小学生の時に算数で習ったような演算子が多いのが特徴です。

SQLでは他のプログラミング言語同様、「+(足し算)」「-(引き算)」「*(掛け算)」「/(割り算)」を使います。


比較演算子

ノートパソコン


プログラミングにおいて比較演算子とは、何らかの値と値、式と式を比較してその結果を真偽値として返すための演算子です。

何らかの値を比較して、数字の大小や一致を確かめたい時に使う演算子なので日常ではあまり利用しません。

しかし、プログラミングを経験している人にとっては身近な演算子です。

比較演算子は種類が多いですが、よく使われるのは以下のようなもので、意外と限られています。

  • =(等しい)
  • <>
  • !=
  • ~=(等しくない)
  • <(どちらの方が小さい)
  • >(どちらの方が大きい)

数学でも習うものもあるため、プログラミングに詳しくなくても意味が分かる人も多いのではないでしょうか。

比較演算子は種類が多いので、必要に応じて調べて利用しましょう。


初めから全て押さえる必要はない

この他にも演算子には「論理演算子」「集合演算子」「代入演算子」など非常に多種多様な演算子が存在しています。

プログラミング言語を学ぶ時にも通じる部分ですが、初めから全ての演算子を覚える必要はありません。

基本的な演算子を押さえておけば、SQLを利用していく内に自然と適切な演算子を利用できるようになるからです。


SQLでよく使う命令文

ブレーンストーミングプロセスの平面図。同僚は数学の問題を解決しています。テーブルの表面にラップトップ、タブレット、数学の数式が描かれています。


SQLで実際にデータベースに対して何らかの命令を行う文「SQL文」と呼びます。

このSQL文を利用する際に、基本的に利用する事が多いのは「SELECT」「FROM」「WHERE」の3つです。

たくさんの演算子・命令文が出てきて、よく分からないかもしれません。

確かに初心者にとっては、少し難しく感じられるものです。

とりあえず、「SELECT」「FROM」「WHERE」という3つの命令文だけは覚えておきましょう。

初めての命令文を書く際に、スムーズに進めることができます。

というのも、SELECTやFROM、WHEREはSQLにおける基本的な構文になっているからです。

SELECTは「選択」、FROM「どのテーブルから」、WHERE「どんな条件で」という意味になっています。


SQL初心者の学習におすすめの本

本


これまでSQLの概要・基礎について解説してきました。

「データベースやSQLをもっと詳しく知りたい」と興味がわいてきた人もいるでしょう。

そのような人のために、おすすめの入門書を紹介していきます。


『スッキリわかるSQL入門 ドリル215問付き』

コンピューターの事についてそれほど詳しくなくても、プログラミング言語はある程度学習していく事が可能です。

一方で、SQLの学習に関してはどうしても「データベースそのもの」に関する基礎的な知識が必要になります。

この本は「SQLの基礎・概要」はもちろん、データベースの基本的な部分についてもしっかりとフォロー済み。

データベースやSQLをまったく触った事がなく、基本的な部分から体系的に学んでいきたいという人におすすめです。


『SQL ゼロからはじめるデータベース操作』

「データベース操作」とあるように、SQLを用いたデータベース操作について基礎的な部分から解説しています。

こちらも基本的な部分の解説もありますが、読む側にデータベースに関する基礎的な知識がある前提で説明されているようです。

そのため基本的な解説というよりも、SQLを利用してデータを扱うという部分に特化しています。

この点を踏まえると、データベースに関する知識を一通り把握しており、実際にデータを操作・制御したいという人におすすめです。


SQLでおすすめのチュートリアル

革新的なエンジニアリングの建物設計


書籍で、ある程度の知識や使い方を学習することはできます。しかしIT言語を実際に使えるようになるには、実践が必要です。

SQLの基礎を押さえた・実際に使っていきたい人におすすめなのが、実際にコードを書いて学べる「チュートリアル」となります。


Progate

Progate: https://prog-8.com/

Progate日本発のチュートリアルサイトで、SQL以外にも様々なプログラミング言語を扱っているサイトです。

チュートリアルサイト・サービスというのは英語圏のものが多い傾向にあります。

そのため、どうしてもすべてが英語ベースになっていることが多いです。

英語にあまり堪能ではない人は苦労してしまうでしょう。

しかしProgateであれば、全て日本語で学んでいく事が可能です。

さらに解説にイラストを用いたものが多く、非常に分かりやすいチュートリアルがたくさんあります。

ただし、実践向けというよりは非常に初心者向けの内容です。

書籍でしっかりと基礎を押さえた人にとっては、物足りないものになるかもしれません。

またProgateは一部を除き、基本的には有料のサービス(月980円)になります。

しかし初めてSQLを書く人にとって、敷居が低いのは確かでしょう。

<関連記事>
Progateの評判、おすすめコースを紹介!独学でプログラマーになることは可能?どのくらいのレベルのスキルを身に付く?


SQLZOO

SQLZOO: https://sqlzoo.net/

SQLZOOは、初級から中級程度の難易度までチュートリアルができるサイトで、世界的にも知名度の高いサイトです。

無料で利用出来るため、SQLチュートリアルとして非常に人気が高いのですが、すべて英語ベースでの学習になります。

ネット翻訳などを利用すれば内容は把握する事は可能でしょう。英語のスキルは、実はプログラミング学習において非常に有利です。

無料で高い難易度の問題にも挑戦できるので、英語が苦手でも一度くらいは体験してみると良いでしょう。


エンジニアなら押さえておきたいSQL

システムエンジニアの男性


今回はSQLの基本的な概要・基礎から、SQLの種類や演算子、学習方法等について解説しました。

SQLは非常に汎用性が高く、WEB上のデータが日々増え続ける昨今では必要性が高くなっています。

Web系かデータ系かなど、自分のいる分野によってSQLの知識がどの程度必要なのかは若干変化します。

それでも、エンジニアならまず基礎的な内容は必ず把握しておきたい所です。


SHIFTフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。

エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。