順番に読み進めながら学べます

SQL入門

SQL の基本コマンド SELECT / INSERT / WHERE / CREATE をハンズオンで学びます。users テーブルを題材にデータベースの基本操作を一通り押さえます。

SQLとは何か

SQL(Structured Query Language)は、リレーショナルデータベースを操作するための言語です。データの作成・取得・更新・削除(CRUD)をシンプルな英語に近い構文で記述できます。Webアプリ・分析・業務システムなど、あらゆる場面で使われる必須スキルです。

テーブルとは

SQLのデータはテーブル(表)に格納されます。テーブルは列(カラム)行(レコード)で構成され、Excelの表をイメージすると分かりやすいです。各列には名前とデータ型が定義されています。

テーブルの構造
列(カラム)属性を定義行(レコード)1件のデータ型 (INTEGER/TEXT)データの種類PRIMARY KEY一意識別子NULL値なしインデックス検索高速化データ格納型制約必須定義

テーブルは行(レコード)列(カラム)からなる表形式のデータ構造です。各列には名前と型が定義されています。

CREATE TABLE — テーブルを作る

CREATE TABLE 文でテーブルを定義します。テーブル名、各列の名前とデータ型、制約(PRIMARY KEY など)を指定します。下のコンソールで実際に実行してみましょう。

CREATE TABLE users (
  id   INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  age  INTEGER
);

右側のコンソールには users テーブルが既に用意されています。どんなユーザーが登録されているでしょうか?テーブルに入っている全ての行を取得してみましょう。

SQL エディタ

クエリを実行してください

INSERT — データを追加する

INSERT INTO 文でテーブルに行を追加します。VALUES 句に列の順番に合わせた値を指定します。練習として4人目のユーザー Dave(28歳)を追加してみましょう。

INSERT INTO users (name, age) VALUES ('Alice', 30);
INSERT INTO users (name, age) VALUES ('Bob',   25);
INSERT INTO users (name, age) VALUES ('Carol', 35);

新しいメンバー Dave(28歳)が加わることになりました。

users テーブルに Dave のデータを1行追加してください。

② 追加できたら、もう一度テーブル全体を取得して、Dave が4人目として登録されていることを確認しましょう。

SQL エディタ

クエリを実行してください

SELECT — データを取得する

SELECT 文でテーブルからデータを取得します。* はすべての列を意味します。特定の列だけ取得したい場合は列名をカンマ区切りで指定します。練習として名前と年齢だけを取得し、30歳以上に絞り込んでみましょう。

-- 全列取得
SELECT * FROM users;

-- 特定列だけ取得
SELECT name, age FROM users;

30歳以上のユーザーの名前と年齢だけが知りたいと上司から頼まれました。id は不要なので、必要な列だけに絞り、さらに対象となる行だけに絞り込んで取得してみてください。(ヒント: 列の指定と WHERE による条件を組み合わせます)

SQL エディタ

クエリを実行してください

WHERE — 条件で絞り込む

WHERE 句で取得する行を条件で絞り込めます。比較演算子(=, <>, >, <, >=, <=)や AND / OR で複数条件を組み合わせることができます。

-- 年齢が30以上
SELECT * FROM users WHERE age >= 30;

-- 名前が 'Alice'
SELECT * FROM users WHERE name = 'Alice';

-- AND で複合条件
SELECT * FROM users WHERE age >= 25 AND name <> 'Bob';

複数条件の絞り込みに挑戦してみましょう。

25歳以上で、かつ名前が Bob ではないユーザーだけを取り出してみてください。該当するのは誰でしょうか?(ヒント: 複数条件は AND でつなぎ、「等しくない」は <> で表現します)

SQL エディタ

クエリを実行してください
QUIZ

理解度チェック

まずは1問ずつ答えてみましょう。

Q1SQLでテーブルを新規作成するときに使う文はどれですか?

Q2テーブルの行(レコード)を追加するSQL文はどれですか?

Q3特定の条件に一致する行だけを取得したいとき、SELECT文に追加するキーワードはどれですか?