はじめに
SQL研修#2へようこそ!
前回(研修#1)では、SQLの「基礎概念」と「環境準備」を学習しました。
まだご覧になっていない方は、こちらからご確認ください
実際に手を動かしながら、SQLの基本操作を身につけていきましょう!
研修を進める中で疑問や不明点があれば、いつでもお気軽にご連絡ください。
質問は、こちらのX(旧Twitter)アカウントまでどうぞ!
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 | ユーザーを一意に識別するID | VARCHAR(10) -文字型 |
username | 表示名/ログインIDなど | VARCHAR(50) -文字型 |
メールアドレス | VARCHAR(100) -文字型 | |
phone_number | 電話番号 | VARCHAR(100)-文字型 |
password | パスワード | VARCHAR(100) -文字型 |
age | 年齢 | INT -数値型 |
image | 画像のパス/URL | VARCHAR(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 users1つ目の()
には、値を入れる対象のカラム名をカンマ(,)区切りで書きます。
例:(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_id | username | phone_number | password | age | image | created_at | is_active | |
---|---|---|---|---|---|---|---|---|
U001 | user001 | user001@example.com | 090-1111-0001 | pass001 | 25 | img/u001.png | 2025-01-01 09:00:00 | TRUE |
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エンジニア」の記事はこちら▼
コメント