データ操作言語#

データの追加#

INSERT INTO文を使用して、テーブルに新しい行を追加します。

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

例えば、usersテーブルにデータを追加する場合は、次のようになります。

CREATE TABLE users (
    ID TEXT,
    Name TEXT,
    Age INTEGER
);
INSERT INTO users (ID, Name, Age)
VALUES ('001', 'Alice', 25);

列名の省略#

すべての列にデータを追加する場合は、列名を省略することもできます。

INSERT INTO users 
VALUES ('002', 'Bob', 30);

複数行の追加#

複数の行を一度に追加することもできます。書式は次のとおりです。

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...),
       (value3, value4, ...);

例えば、usersテーブルに複数の行を追加する場合は、次のようになります。

INSERT INTO users (ID, Name, Age)
VALUES ('002', 'Bob', 30),
       ('003', 'Charlie', 35);

データの更新#

UPDATE文を使用して、既存の行のデータを更新します。

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • UPDATAE table_name:更新するテーブルの名前を指定します。

  • SET:更新する列と新しい値を指定します。

  • WHERE:更新する行を特定する条件を指定します。条件を省略すると、すべての行が更新されます。

次の例では、usersテーブルのID001の行のAgeを26に更新します。

UPDATE users
SET Age = 26
WHERE ID = '001';

where句を省略すると、すべての行が更新されます。

次の例では、すべてのユーザーの年齢を1歳ずつ増やします。

UPDATE users
SET Age = Age + 1;

データの削除#

DELETE文を使用して、既存の行を削除します。

DELETE FROM table_name
WHERE condition;
  • DELETE FROM table_name:削除するテーブルの名前を指定します。

  • WHERE:削除する行を特定する条件を指定します。条件を省略すると、すべての行が削除されます。

例えば、ID001の行を削除する場合は、次のようになります。

DELETE FROM users
WHERE ID = '001';

データの選択#

SELECT文を使用して、テーブルからデータを選択します。

SELECT column1, column2, ...
FROM table_name
WHERE condition;
  • SELECT column1, column2, ...:選択する列を指定します。すべての列を選択する場合は、*を使用します。

  • FROM table_name:選択するテーブルの名前を指定します。

  • WHERE:選択する行を特定する条件を指定します。条件を省略すると、すべての行が選択されます。

例えば、下記のemployeesテーブルがあるとします。

CREATE TABLE employees (
    ID TEXT,
    Name TEXT,
    Age INTEGER,
    Department TEXT
);

INSERT INTO employees (ID, Name, Age, Department)
VALUES ('001', 'Alice', 25, 'HR'),
       ('002', 'Bob', 30, 'IT'),
       ('003', 'Charlie', 35, 'Finance'),
       ('004', 'Alice', 28, 'IT');

このテーブルからすべての列を選択する場合は、次のようになります。

SELECT * FROM employees;

このテーブルからNameDepartment列を選択する場合は、次のようになります。

SELECT Name, Department FROM employees;

IT部門の従業員のIDと名前を選択する場合は、次のようになります。

SELECT ID, Name
FROM employees
WHERE Department = 'IT';

年齢が30歳以下の従業員の名前を選択する場合は、次のようになります。

SELECT Name
FROM employees
WHERE Age <= 30;

下記のように出力されます。

Name
Alice
Bob
Alice

SELECT DISTINCT#

SELECT DISTINCTを使用すると、重複する行を除外して選択することができます。

SELECT DISTINCT column1, column2, ...
FROM table_name;

練習#

下記のemployeesテーブルがあるとします。

CREATE TABLE employees (
    ID TEXT PRIMARY KEY,
    Name TEXT NOT NULL,
    Age INTEGER CHECK (Age >= 18),
    Department TEXT
);

このテーブルに対して、以下の操作を行ってください。

  1. ('001', 'Alice', 25, 'HR'), ('002', 'Bob', 30, 'IT'), ('003', 'Charlie', 35, 'Finance')のデータを追加せよ。

  2. 001の行のDepartmentITに更新せよ。

  3. ID001の行を削除せよ。

  4. ID002の行を選択せよ。

  5. 年齢が30歳以上の従業員の名前を選択せよ。