はじめてのSQL~初心者のための超基礎ガイド~

昨今のデジタル時代において、データはビジネスを動かすための重要な武器です。

そして、そのデータ活用に欠かせない言語というのがSQLです。

本記事では、データベース言語であるSQL(Structured Query Language)の超基礎知識を、これからSQLを学ぶという方に向けて分かりやすく解説します。

記事の最後には、おススメの学習コンテンツもご紹介していますので、ぜひ最後までご覧ください。

SQLとは?

SQLは、データベース(RDB)を操作・管理するためのデータベース言語です。

データベースの中に保存されている情報の抽出やデータの追加などを行う際に使用します。

大量のデータが保存されていてもSQLを使用することで効率的に操作を行うことが可能です。

SQLは様々なデータベースで使用することができ、データベースを扱う者の「共通言語」と言っても過言ではありません。

データベース(DB)とは

そもそもデータベースとは何なのか分からない!という方もいらっしゃると思います。

データベースとは『大量のデータを、効率的に整理・管理し、必要なときにすぐに取り出せるようにした情報の集合体』です。

例えば、求人広告を取り扱っている会社であれば、求人情報のデータベース、求人を出している企業情報のデータベース、求職者のデータベース、応募情報のデータベースなど、たくさんのデータベースが存在しているのではないでしょうか。

特に、SQLが操作の対象とする「リレーショナルデータベース(RDB)」は、データを行と列からなる表(テーブル)の形式で管理し、複数の表を関連付けて(リレーション)利用できるのが特徴です。

具体的なイメージを持っていただくために、あるサービス利用者のデータベースのイメージを以下に掲載します。

データベース言語の中でもSQLの普及率は高い

データ活用の要となるデータベースを操作する言語として、SQLは欠かせない存在となっており、データベース言語の中で最も普及している言語の1つです。その理由として、SQLはデータベース言語としてISO(国際標準化機構)で規格化されていることが挙げられます。そのため、1つのデータベース用のSQLを覚えたら、その他のリレーショナルデータベース(RDB)でも同様に利用ができます。

データベース言語とプログラミング言語はどう違うのか

SQLはデータベース言語であり、プログラミング言語と異なるため、システム開発を行うことは出来ません。あくまで、データベースを管理するソフトウェアを操作・制御することを目的とする言語です。ここで、データベース言語とプログラミング言語の違いについても触れておきましょう。

「データベース言語」とは

SQLをはじめとしたデータベース言語はデータベースに対してのみ命令が可能です。データベース言語はデータを管理して、ユーザーが指定した条件に合致するものを検索・抽出するためのもので、それ以上の機能はありません。そのため、命令の方法もシンプルです。

記述例:データの取得(SQL)
「何(どの列)を」「どこ(どのテーブル)から」「どんな条件で」という指示だけで完結します。

SELECT name, price FROM products WHERE price >= 1000;

「プログラミング言語」とは

プログラミング言語で有名なのは、C言語やJava、PHP、Pythonあたりでしょうか。それらのいずれもがコンピュータを操作するための言語で、プログラムの行う処理手順を記述し、コンピュータに何をどう処理するのかを指示します。そのため、さまざまな命令を駆使して複雑な処理を定義することも可能です。

記述例:複雑な処理
「もし〜なら」「〜の間繰り返す」といった計算や判断の手順(アルゴリズム)を細かく記述できます。

prices = [1200, 800, 2500]
total = 0

for p in prices:
  if p >= 1000:
    # 1000円以上の商品だけ10%引きにする、などの計算手順を指示
    total += p * 0.9
  else:
    total += p

print(f”合計金額は {total} 円です”)

SQLの種類を知ろう

SQLは主に以下の3種類の言語から構成されています。

DML (データ操作言語)
DDL (データ定義言語)
DCL (データ制御言語)

上記の言語はどれもデータベースを制御・操作するための命令文で、動詞×目的語の組み合わせになっています。

では、それぞれの言語について見ていきましょう。

DML (データ操作言語)

データベースに対してデータを追加・更新・削除などを行うための構文。SQLの命令文の中でも特に使用頻度が高いものであるため、覚えておきましょう。

DMLで利用される命令文としては、以下のようなものがあります。

SELECT(データの検索)

テーブルからデータを取り出します。

— すべてのユーザー情報を取得する
SELECT * FROM users;

— 名前が「田中」の人のメールアドレスだけを取得する
SELECT email FROM users WHERE name = ‘田中’;

INSERT(データの追加)

新しいデータをテーブルに登録します。

— 新しいユーザー(名前:佐藤、年齢:25)を追加する
INSERT INTO users (name, age) VALUES (‘佐藤’, 25);

UPDATE(データの更新)

すでにあるデータを書き換えます。

— IDが1の人の年齢を26に更新する
UPDATE users SET age = 26 WHERE id = 1;

DELETE(データの削除)

不要なデータを削除します。

— 退会したユーザー(ID:5)のデータを削除する
DELETE FROM users WHERE id = 5;

DDL (データ定義言語)

テーブルなどを作成・削除したり、設定を変更したりするための構文。データベースの管理者として、テーブルを管理する場合には必ず必要となります。

DDLで利用される命令文としては、以下のようなものがあります。

CREATE(テーブルの作成)

新しいテーブルを作成します。

— 「users」という名前のテーブルを新規作成する
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY, — 自動で連番を振る設定
name VARCHAR(50),
created_at DATETIME);

ALTER(テーブルの設定変更)

既存のテーブルに列(カラム)を追加したり、設定を変更したりします。

— usersテーブルに「email」という列を追加する
ALTER TABLE users ADD email VARCHAR(100);

DROP(テーブルの削除)

テーブルそのものを完全に削除します。

— usersテーブルを(中身のデータごと)削除する
DROP TABLE users;

TRUNCATE(テーブルデータの削除)

テーブルの枠組みは残したまま、中身のデータだけをすべて空にします。

— usersテーブル内の全レコードを消去し、初期状態に戻す
TRUNCATE TABLE users;

DCL (データ制御言語)

上記2つ(DML・DDL)の利用を制御するための構文。こちらもデータベース管理者は覚えておく必要があります。ユーザー単位・テーブル単位で使用の制限が可能です。

DCLで利用される命令文としては、次のようなものがあります。

GRANT(権限付与)

特定のユーザーに対して、データベースを操作する許可を与えます。

— ユーザー「suzuki」に、usersテーブルのデータを読み取る(SELECT)権限を与える
GRANT SELECT ON users TO ‘suzuki’;

— すべての操作権限(ALL PRIVILEGES)を「admin_user」に与える
GRANT ALL PRIVILEGES ON *.* TO ‘admin_user’;

REVOKE(権限剥奪)

すでに与えられている権限を取り消します。

— ユーザー「suzuki」から、usersテーブルの読み取り(SELECT)権限を取り消す
REVOKE SELECT ON users FROM ‘suzuki’;

この3つの言語を使い分けることでSQLでどのような操作が出来るのかについては以下の記事にまとめていますので、こちらもあわせてご覧ください。

【初心者向け】これだけは知っておきたいSQLで出来ること

SQLの特徴

ここからはSQLの特徴についてまとめていきます。

英語に近く、直感的に読める

SQLの特徴の1つは英語に近い言語で書けるため、直感的に理解しやすい点です。

SQLでは、SELECT(選択する)、FROM(~から)、WHERE(条件)といった、日常的に使う英単語をそのまま使ってデータを操作することが多く、プログラミング経験があまりない方でも意味を想像しやすいのが特徴です。

そのため、「まずは読めるようになる」→「少しずつクエリを書いてみる」というステップを踏みやすく、初心者が学ぶ言語として適していると言えます。

例えば

SERECT 名前
FROM users
WHERE 年齢 >= 30

という構文。こちらは

usersというテーブルから30才以上の方のみ名前のデータを選んで抽出してね。

という命令文になります。SQLを書いたことがなくてもなんとなく意味が読み取れませんか…?

このように、英語の意味から想像しやすいのがSQLが分かりやすく、多くの人に受け入れられやすい理由となっています。

多くのデータベースで共通して使える

前述した通り、SQLはデータベース言語としてISO(国際標準化機構)で規格化されているため、多くのデータベースで共通して使用できます。SQLの使えるデータベースには、Oracle Database、Microsoft SQL ServerやAccess、MySQLやPostgreSQLなどがあり、それぞれ異なったデータベース・エンジンを搭載していますが、どれもSQLで操作可能です。

データ量が多くても効率よく処理が出来る

SQLは大量のデータを効率よく扱うことを前提に設計された言語で、「条件に合うデータをまとめて扱う」ことも可能です。

例えば、「数万件あるデータの中から、特定の条件に合うものだけ抽出する」といった処理も、SQLならシンプルな命令文で実行できます。

そのため、業務システムや分析基盤など大量のデータを扱う現場で広く使われているのです。

データを見る仕事をしている人の共通言語

SQLはエンジニアだけが使う言語では無くなってきています。

実際に採用面接や面談をしていても、エンジニア出身ではない方がSQLを業務で使用した経験からデータ活用に興味を持って志望したというような声を近年よく耳にするようになりました。そういったことからも、データを見る仕事をしている多くの人にとっての「共有言語」になっていると実感しています。

例えば、

データを元に施策を考えるマーケター
数値を確認して検討や提案を行う企画・営業
数値を元にプロセスの改善をしていく人事・採用担当

といったように様々な職種でデータが取り扱われ、SQLも多くの場面で使用されるようになっています。データを見る仕事をしている人にとって、SQLは職種を超えて使える強力な共通言語と言えるでしょう。

ここまで記載してきたようにSQLはプログラミング言語の中でもシンプルかつ、多くの場面で使用できる言語です。

特に「データを見る立場」から「データを使って判断できる立場」へステップアップしたいという方はぜひ最初の一歩としてSQLを学ぶことをおススメします!

SQLは一度身に着けると応用が効くスキルであり、扱うツールやシステムが変わっても、SQLの考え方は共通しているため、長く使える基礎スキルとしてキャリアに活かすことが出来ると思います!

分析屋社員がおススメする学習コンテンツ

では、実際にこれからSQLを始める方向けにおススメの学習コンテンツを紹介します。

Webサイトはこれ!

SQL攻略 (https://sql.main.jp/)

環境設定不要でブラウザにSQL構文を書き込んで試すことが可能。
※無料サイトのため広告は多めです。

Progate (https://prog-8.com/lessons/sql/study/1)

環境構築不要で無料版でも特定のデータの取得まで学習可能です。
有料版は、よりより踏み込んだデータ取得の方法や取得結果の加工方法などを続けて学べます。

SQL道場 (https://sql-dojo.com/)

基礎の文法を学んだあとの力試しにはこちら。演習問題がレベル別で載っています。

本での学習ならこれ!

スッキリわかる SQL 入門 (https://amzn.asia/d/34KzwhL)

分析屋の採用ピッチ資料のおすすめにも載せている書籍になります。SQLの学習で必ずぶつかる「なぜ?」「どうしてこうなる?」も、楽しく・深く・効率よく学ぶことができます。

いちばんやさしい SQL 入門教室 (www.amazon.co.jp/dp/B07S5KVWCF)

データベースをゼロから始めたい初心者や、仕事でつかえるSQLを学びたいエンジニアなど、SQLの学習をこれから始めたい人に最適な一冊。

イラストで理解 SQL はじめて入門 (www.amazon.co.jp/dp/B07RQK3XGY)

文字を読むことが得意でない方でもイラストを中心に解説されているため、SQLがわかりやすくビジュアルで理解できます。

分析屋のSQL研修の特徴

分析屋は入社時の技術研修としてSQL研修を取り入れています。環境の設定・基礎〜応用までSQLについて幅広く学ぶことができ、実際に当社で担当した案件を元にして問題なども作成されているため実践で活かしていただきやすいものとなっています。

そのため、ボリュームも多く難易度も少し高いものとなっていますが、実際に研修を受けてSQLを使った案件にアサインされたメンバーからは、「あの研修があったからこそ、スムーズに業務を行うことが出来ていてます!」と言ったような声も多く届いています。

分析屋では他にも様々な研修があり、データ人材として成長できる環境が整っています。

データ活用に興味がある方はぜひ分析屋の求人サイトも覗いてみてください!

分析屋採用サイトはこちら

この記事を通じてSQLが単なるデータベース言語ではなく、デジタル時代における強力なデータ活用のための共通言語であることがご理解いただけたかと思います!エンジニアだけでなく、データを扱うすべてのビジネスパーソンにとって不可欠な基礎スキルとなりつつあるSQLを身に着けることは、あなたのキャリアを長く支える財産となるでしょう。

次のステップとして、ご紹介した学習コンテンツを参考に、ぜひSQLの世界への最初の一歩を踏み出してみてください。

エントリーはこちら

  1. トップページ
  2. 仕事を知る
  3. はじめてのSQL~初心者のための超基礎ガイド~

採用情報

方法や手段にとらわれず、課題解決に挑むことができる仲間を募集します。
「好奇心」と「向上心」をお持ちの方をお待ちしております。

NEWS

もっと見る