【SQL研修#2】SELECT・INSERT・UPDATE・CREATE・DELETE完全マスター

ITエンジニア研修

はじめに

SQL研修#2へようこそ!

前回(研修#1)では、SQLの「基礎概念」と「環境準備」を学習しました。

まだご覧になっていない方は、こちらからご確認ください

実際に手を動かしながら、SQLの基本操作を身につけていきましょう!

研修を進める中で疑問や不明点があれば、いつでもお気軽にご連絡ください。
質問は、こちらのX(旧Twitter)アカウントまでどうぞ!

【Xアカウントはこちら】

DM(ダイレクトメッセージ)をお送りください。
できるだけ早く返信し、皆さんが安心して学習を続けられるようサポートします。

この記事を読んだときのゴール

  • 実際にSQLが実行できるようになる
  • SQLの基本5操作(CREATE・INSERT・SELECT・UPDATE・DELETE)を実行できるようになる

実際にSQLを試してみる

  • CREATE(新しくテーブルを作る)
  • INSERT(追加)
  • SELECT(取り出す(問い合わせ))
  • UPDATE(更新)
  • データ削除(DELETE)

CREATE(新しくテーブルを作る)

  • SQLの実行
  • SQL文の説明
  • SQL実行結果の確認
  • 作成したテーブル情報

CREATE文は新しいテーブルを作ることができます。

・SQLの実行

以下のSQLをコピーして SQLite Online のエディタに貼り付け、「RUN」をクリックすると、「users」テーブルが作成されます。

CREATE TABLE users (
    user_id VARCHAR(10) PRIMARY KEY,                -- ユーザーID(主キー:重複不可)
    username VARCHAR(50) NOT NULL,                  -- ログインID(必須)
    email VARCHAR(100) NOT NULL UNIQUE,             -- メールアドレス(一意)
    phone_number VARCHAR(20),                       -- 電話番号
    password VARCHAR(100) NOT NULL,                 -- パスワード(実運用はハッシュ推奨)
    age INT,                                        -- 年齢
    image VARCHAR(255),                             -- 画像URL
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 作成日時(自動)
    is_active BOOLEAN DEFAULT TRUE                  -- 有効フラグ(TRUE/1 or FALSE/0)
);

・SQL文の説明

CREATE TABLE テーブル名 (
  カラム名 データ型 制約,
  カラム名 データ型 制約,
  ...
);
  • CREATE TABLE(テーブルを新しく作る)
    {テーブル名}には作成したいテーブルを書きます。
    例:CREATE TABLE users

    () の中にはカラム名 → データ型 → 任意の制約の順で書きます。
    各定義はカンマ(,)で区切ります。
    例:(user_id, VARCHAR(10), PRIMARY KEY)
  • 複数列のテーブルを作成するときは、カンマ(,)で区切ります。
    例:(user_id, VARCHAR(10), PRIMARY KEY, username VARCHAR(50) NOT NULL, age INT)

・SQL実行結果の確認

以下の画像のように、左側のメニューで「SQLite」を開き、demo テーブルの下に「users」テーブルが表示されていれば、テーブル作成は成功です。

・作成したテーブル情報

カラム名説明データ型
user_idユーザーを一意に識別するIDVARCHAR(10) -文字型
username表示名/ログインIDなどVARCHAR(50) -文字型
emailメールアドレスVARCHAR(100) -文字型
phone_number電話番号VARCHAR(100)-文字型
passwordパスワードVARCHAR(100) -文字型
age年齢INT -数値型
image画像のパス/URLVARCHAR(255) -文字型
created_at作成日時TIMESTAMP -日付・時刻型
is_active利用中かどうか(TRUE/FALSE)BOOLEAN -真偽型(はい/いいえ)

INSERT(追加)

  • SQLの実行
  • SQL文の説明

ユーザーがアカウント作成時に「user_id や username など」を入力し、登録ボタンを押すと、裏側で INSERT 文が実行され、テーブルに「新しい1行」が追加されます。

・SQLの実行

以下、SQLを先ほどと同じように実行すると、usersテーブルに1行データが追加されます。

INSERT INTO users (user_id, username, email, phone_number, password, age, image, created_at, is_active) VALUES
('U001','user001','user001@example.com','090-1111-0001','pass001',25,'img/u001.png','2025-01-01 09:00:00',TRUE)

・SQL文の説明

INSERT INTO テーブル名 (カラム1, カラム2, ...)
VALUES (値1, 値2, ...);
  • INSERT INTO(どのテーブルのどの列に入れるかを指定)
    {テーブル名}にはデータの追加先のテーブル名を書きます。
    例:INSERT INTO users

    1つ目の()には、値を入れる対象のカラム名をカンマ(,)区切りで書きます。
    例:(user_id, phone_number, age)
  • VALUES(実際に入れる値を指定)
    2つ目の()には、1つ目の()のカラム(,)の並び順に対応する値を書きます。
    また、複数行のデータを追加するときは、カンマ(,)で区切ります。
    例:VALUES ('U001′, 090-1111-0001, 25), ('U002′, 090-1111-0002, 32), ('U003′, 090-1111-0003, 28)

    文字型と日付・時刻型はシングルクォーテーション')で囲みます。
    例:’U001′, ‘2025-01-01 09:00:00’
    数値型と真偽型はシングルクォーテーション')不要です
    例:25, TRUE

以下は、上記SQLで追加したデータです。
※正常に追加されているかは、次のSELECT文で確認できます。

user_idusernameemailphone_numberpasswordageimagecreated_atis_active
U001user001user001@example.com090-1111-0001pass00125img/u001.png2025-01-01 09:00:00TRUE

SELECT(取り出す(問い合わせ))

  • SQLの実行
  • SQL文の説明

テーブルに入っているデータをSELECT文で確認できます。

・SQLの実行

以下のSQLを実行すると、users テーブルのデータを確認できます。

SELECT * FROM users;

・SQL文の説明

SELECT 列リスト
FROM テーブル名
WHERE 条件  -- ← 省略可能だが、務では必要なデータに絞るため使うことをオススメ!
  • SELECT(取り出す列を指定)
    {列リスト}には抽出したいカラム名をカンマ(,)区切りで書きます。
    例:SELECT user_id, phone_number

    すべての列を取り出す場合はアスタリスク(*)を使います。
    例:SELECT *

    ※実務では例:SELECT user_id, email FROM users; のように必要な列だけ指定することを推奨します。
  • FROM(対象のテーブルを指定)
    {テーブル名}にはデータを取り出すテーブル名を書きます。
    例:FROM users
  • WHERE(抽出する行の条件を指定)※推奨
    {条件}に書いた条件に合う行だけを取り出します。
    例:WHERE is_active = 1
    is_activeがTRUE(1)のデータだけを抽出します。

以下の画像のように、画面下部のテーブル表示部分に、先ほどの INSERT 文で追加した1行のデータが表示されていることを確認できます。

UPDATE(更新)

  • SQLの実行
  • SQL文の説明
  • SQL実行結果の確認

UPDATE文で既にある行の値を「別の値」に書き換えます。

・SQLの実行

以下のSQLを実行すると、先ほどの INSERT 文で追加したuser_id が 001 のデータの is_activate が 1 から 0 に更新されます。
補足: is_activate は 1 = TRUE、0 = FALSE を意味します。
注意:必ず WHERE を付ける(付けないとテーブルのデータ全行更新になります)。

UPDATE users
SET is_active = 0
WHERE user_id = 'U001';

・SQL文の説明

UPDATE テーブル名
SET 列A = 新しい値A, 列B = 新しい値B, ...
WHERE 条件;  -- ← これがないと全件変更になるので超注意!
  • UPDATE(既存データを上書き更新する)
    {テーブル名}には更新したいデータが入っているテーブル名を書きます。
    例:UPDATE users
  • SET(上書きする内容を指定)
    {変更したい対象の列 = 変更したい新しい値}を書きます。
    また、複数行のデータを変更するときは、カンマ(,)で区切ります。
    例:SET phone_number = ‘090-1111-9999’, is_active = 1
    phone_numberを’090-1111-9999’に変更します。
    is_activeを0(FALSE)から1(TRUE)に変更します。
  • WHERE(更新する行(データ)の条件を指定)※実質必須
    {条件}に書いた条件に合う行だけを上書き更新します。
    例:WHERE is_active = 1
    is_activeがTRUE(1)のデータだけを上書き更新します。

・SQL実行結果の確認

実際にデータが変更されたかは以下SELECT文で確認できます。

SELECT * FROM users;

データ削除(DELETE)

  • SQLの実行
  • SQL文の説明
  • SQL実行結果の確認

DELETE は「行を削除」します。

・SQLの実行

以下のSQLを実行すると、user_id が 001 のデータが削除されます。
注意:これも WHERE 必須(付けないとテーブルのデータ全行削除になる)。

DELETE FROM users
WHERE user_id = 'U030';

・SQL文の説明

DELETE FROM テーブル名
WHERE 条件;  -- ← これがないとテーブルごと削除する。必ず条件を書く!
  • DELETE FROM(既存データを削除する)
    {テーブル名}には削除したいデータが入っているテーブルを書きます。
    例:DELETE FROM users
  • WHERE(削除する行(データ)の条件を指定)※実質必須
    {条件}に書いた条件に合う行だけを削除します。
    例:WHERE is_active = 1
    is_activeがTRUE(1)のデータだけを削除します。

・SQL実行結果の確認

実際にデータが削除されたかは以下SELECT文で確認できます。

SELECT * FROM users;

次のステップ

今回はSQL実行環境の準備から、CREATE、INSERT、SELECT、UPDATE、DELETE文まで実際に動かしながら学習しました。

基本的なデータベース操作ができるようになりました。

次回は、「比較/論理/算術演算子」でより高度な条件指定を学びます。

「【SQL研修#3】比較/論理/算術演算子 未経験・文系向けITエンジニア」の記事はこちら▼

コメント