SQLを扱うために必要な知識とは?具体的な学習ステップも解説!

SQLを使い倒す ために必要な知識


SQLを使いこなすためにどんな知識が必要なんだろう?

SQLに必要な知識を鍛えるためにはどうすればいいの?

SQLをこれから始めようと思っても、いったい何から学べばよいのかよくわからないですよね。また、SQLを調べても必要な知識が多く、どこまで学べば良いのかわからない人もいるのではないでしょうか。

こんにちは! フリーランスエンジニア兼テックライターのワキザカです。

この記事では、SQLを扱うために必要な知識について徹底的に解説します。

SQLの具体的な学習ステップも解説しているので、ぜひ参考にしてみてくださいね。

この記事はこんな人のために書きました。

  • SQLを使いこなすために必要な知識を知りたい人
  • SQLのスキルを鍛える具体的ま学習ステップを知りたい人

目次

最低限覚えておくべきSQLの基礎知識とは?

画像:Shutterstock

まず、最低限覚えておくべきSQLの基礎知識について解説します。大きく分けて、以下の3つです。

  • アプリ・データベース・SQLの関係性
  • SQLの種類
  • SQLの実行環境

1つずつ解説しますね。

1.アプリ・データベース・SQLの関係性

1つ目は、「アプリ・データベース・SQLの関係性」です。

SQLだけいきなり学ぶと、具体的にアプリのどこで使う部分か理解しづらいです。そのため、アプリ開発のどの部分で使うのか覚えておくことがおすすめです。

具体的に言うと、以下のようにアプリ(画面)とデータベース繋ぐ役割を持っているのがSQLです。


引用:侍エンジニア https://www.sejuku.net/blog/104670

さらに詳しく言うと、以下のようにデータベースの操作をするときに使います。


アプリとデータベース間の処理をSQLで書くときの例

  • 登録されているデータを画面に表示する時
  • 画面から入力した値を、データベースに登録する時
  • 画面から削除ボタンを押してデータを削除する時


データベースのデータを表示(検索)、登録、更新、削除などができるのです。他にもSQLには種類があるので、詳しく解説しますね。

2.SQLの種類

SQLには、DDLDMLの2つの種類があります。

DDLはデータベース・テーブルを操作する方法です。データベースは、以下のようなデータ構造になっています。


データベースのデータ構造

この中でデータベースを作ったり、データベースの中にテーブルを作ったり、定義を変更できるのがDDLです。

具体的に言うと、以下のようなコマンドで操作できます。


DDL

  • CREATE:データベース・テーブルの作成
  • ALTER:データベース・テーブルの定義変更
  • DROP:データベース・テーブルの削除


また、テーブルには複数のレコードがあり、それらを操作できるのがDMLです。

具体的に言うと、以下のようなコマンドで操作できます。


DDL

  • SELECT:レコードのデータ検索
  • INSERT:レコードのデータ挿入
  • UPDATE:レコードのデータ更新
  • DELETE:レコードのデータ削除


一度データベース・テーブルを使ってしまえば、DDL操作がメインになります。最初は、「CREATE文でテーブルを作る方法 + DDL操作方法」を覚えておけばOKです。

3.SQLの実行環境

SQLの概要はわかったけど、動かす環境はどうやって作ればいいの……?

そう思っている人もいるのではないでしょうか。SQLの実行環境は、大きく分けて2つの作り方があります。

  • 方法1:お手軽に「Webサービスに登録」して作る
  • 方法2:実務に使えるように「パソコンにインストール」して作る

とりあえずSQLを書いて動かしたい場合は、Webでも使える「paiza.io」がおすすめです。アカウントを登録すれば、すぐにSQLを書いて実行できる環境が手に入ります。

ただ、アプリ開発などで実際に動かす場合は、サーバーにインストールされたDBを利用します。そのため、パソコンにインストールして実行する環境で慣れておくのがおすすめです。

人気の高いデータベース「MySQL」をパソコンにインストールする方法は、以下で詳しく解説しています。ぜひ参考にしてみてくださいね。

【SQLの基礎】SELECT・INSERT・UPDATE・DELETEの使い方

ここからは、SQLの基礎的な書き方について解説します。以下4つに分けて、それぞれ解説しますね。

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

SELECT

1つ目は、SELECT文です。登録されたデータを検索し、表示するときに使います。

具体的な書き方は以下のとおりです。

SELECT
  表示する列の名前1,
  表示する列の名前2,
  表示する列の名前3,
FROM
  テーブル名
WHERE
  条件;

「表示する列の名前」は表示したい列数分カンマ区切りで出すのもありですし、全ての列を表示する場合はアスタリスク(*)でもOKです。

また、条件がなし(全てのデータを表示したい)場合は、WHEREの記述も不要です。

書き方だけだとわかりづらいので、サンプル + 実行結果をもとに解説しますね。

サンプルコード:

SELECT
  *
FROM
  users;

実行結果:

| id | name | age | 
| ---: | --- | ---: | 
| 1 | 侍1 | 28 | 
| 2 | 侍2 | 35 | 
| 3 | 侍3 | 42 |

usersテーブルに登録されたデータが、全て表示されています。このように、登録されているデータを確認するときに使うのが、SELECT文です。

SELECT文の詳しい使い方を知りたい方は、以下がおすすめです。

INSERT

2つ目は、INSERT文です。テーブルにデータを挿入(追加)するときに使います。

具体的な書き方は以下のとおりです。

INSERT INTO テーブル名(列名1,列名2,列名3,...列名n) VALUE(列名の値1,列名の値2,列名の値3,...列名の値n);

挿入するデータの数分、上記のコードを実行すればデータ挿入できます。

こちらも書き方だけだとわかりづらいので、サンプル + 実行結果をもとに解説しますね。

サンプルコード:

-- INSERT文で2行文データ挿入
INSERT INTO users(id,name,age) VALUE(4,"侍4",18);
INSERT INTO users(id,name,age) VALUE(5,"侍5",22);

-- SELECT文でデータを確認
SELECT
  *
FROM
  users;

実行結果:

| id | name | age | 
| ---: | --- | ---: | 
| 1 | 侍1 | 28 | 
| 2 | 侍2 | 35 | 
| 3 | 侍3 | 42 | 
| 4 | 侍4 | 18 | 
| 5 | 侍5 | 22 |

INSERT文だけではわかりづらいので、SELECT文を使って登録後のレコードを確認しています。2つのレコードが挿入され、5つのレコードが表示されていますよね。

このように、レコードを登録するときに使うのがINSERT文です。

INSERT文の詳しい使い方を知りたい方は、以下がおすすめです。

UPDATE

3つ目は、UPDATE文です。テーブルのデータを更新するときに使います。

具体的な書き方は以下のとおりです。

UPDATE
  テーブル名
SET
  更新処理
WHERE
  更新するデータの条件

条件に一致するデータを、一括で更新することができます。

こちらも書き方だけだとわかりづらいので、サンプル + 実行結果をもとに解説しますね。

サンプルコード:

-- UPDATE文でidが1のデータを更新
UPDATE
  users
SET
  name = "侍太郎1"
WHERE
  id = 1;

-- SELECT文でデータを確認
SELECT
  *
FROM
  users;

実行結果:

| id | name | age | 
| ---: | --- | ---: | 
| 1 | 侍太郎1 | 28 | 
| 2 | 侍2 | 35 | 
| 3 | 侍3 | 42 | 
| 4 | 侍4 | 18 | 
| 5 | 侍5 | 22 |

こちらもUPDATE文だけではわかりづらいので、SELECT文を使って更新後のレコードを確認しています。idが1のレコードのname(名前)が変わっていますよね。

このように、レコードを更新するときに使うのがUPDATE文です。

UPDATE文の詳しい使い方を知りたい方は、以下がおすすめです。

DELETE

4つ目は、DELETE文です。テーブルのデータを削除するときに使います。

具体的な書き方は以下のとおりです。

DELETE FROM
  テーブル名
WHERE
  削除するデータの条件;

条件に一致するデータを、一括で削除できます。

こちらも書き方だけだとわかりづらいので、サンプル + 実行結果をもとに解説しますね。

サンプルコード:

-- DELETE文でidが1~3のデータを削除
DELETE FROM
  users
WHERE
  id IN (1,2,3);

-- SELECT文でデータを確認
SELECT
  *
FROM
  users;

実行結果:

| id | name | age | 
| ---: | --- | ---: | 
| 4 | 侍4 | 18 | 
| 5 | 侍5 | 22 |

こちらもDELETE文だけではわかりづらいので、SELECT文を使って更新後のレコードを確認しています。idが1~3のレコードが、削除されていますよね。

このように、レコードを削除するときに使うのがDELETE文です。DELETE文の詳しい使い方を知りたい方は、以下がおすすめです。

SQLのスキルを実務レベルまで上げる方法とは?レベル別に解説!

画像:Shutterstock

ここまで、SQLに必要な知識や基礎について解説しました。

ただ、「SQLの基礎はわかったけど、実務レベルまで上げるにはどうすればいいんだろう……」と思っている人もいるのではないでしょうか。

そこで次に、スキルを実務レベルまで引き上げるための学習ステップについて解説します。以下3つに分けて解説しますね。

  • 初級:SQLの基礎を叩き込む
  • 中級:SQLの演習問題を通してスキルを磨く
  • 上級:SQLの設計力を磨く

初級:SQLの基礎を叩き込む

SQLに必要な知識や超基礎については既に解説しましたが、SQLは書き方だけでも以下のように様々な書き方があります。


SELECT文の場合の例

  • 複数のテーブルからデータを取得
  • 〇〇日より前のデータを取得
  • データを降順(または昇順)で表示



INSERT文・UPDATE文・DELETE文の場合の例

  • SELECT文の検索結果を利用してデータを更新
  • 登録日によって計算する消費税率を変えてデータを更新
  • 〇〇日以前のデータを一括削除


ただ、これらのSQLをいきなり書くことはできません。まずは基礎力をつけて、1つずつ学んでいくことが重要です。

以下を参考に、まずはSQLの基礎力をつけましょう。

中級:SQLの演習問題を通してスキルを磨く

SQLの基礎的な書き方が理解出来たら、実際に手を動かして覚えていきましょう。

実務でSQLを使って学ぶのも大事ですが、最初は演習問題を通して学んでいくことがおすすめです。

以下記事で「演習問題ができるサイト・すぐに試せる演習問題」をまとめているので、ぜひ参考にしてみてくださいね。

上級:SQLの設計力を磨く

SQLはただ書くスキルを身に着けるだけでなく、設計力を磨くことも重要です。

SQLはあくまでもデータベースを操作する言語にすぎません。データベースの設計ができるようになると、SQLのコードをイメージしやすくなるのです。

具体的に言うと、以下のようなステップで設計するスキルがあると良いでしょう。


データベース設計の手順

  • 手順1:要件の明確化
  • 手順2:エンティティの定義
  • 手順3:正規化の実行
  • 手順4:ER図の作成


わかりやすい言葉に直すと、以下手順で設計できるスキルが必要なのです。

  • 手順1:必要なデータを洗い出す
  • 手順2:テーブル設計をざっくりと行う
  • 手順3:テーブル設計の精度を上げる
  • 手順4:テーブル間のつながりを図に直す

手順4のER図のイメージは、以下です。


引用:侍エンジニア https://www.sejuku.net/blog/106593

部署経費一覧テーブル、部署テーブル、ユーザ一覧テーブルのつながりがわかりやすく図化されていますよね。

テーブル設計の具体的な手順や詳細については、以下で詳しく解説しています。ぜひ参考にしてみてくださいね。

まとめ

今回は、SQLを使い倒すために必要な知識について解説しました。

Web版の実行環境を使って基礎的なSQLをまずは試してみて、慣れてきたら学習ステップに沿って学んでいくのがおすすめです。

簡単なところからでいいので、ぜひ挑戦してみてくださいね!

この記事を書いた人

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!
侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

目次