11 データ操作言語
11.1 データの追加
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);11.1.1 列名の省略
すべての列にデータを追加する場合は,列名を省略することもできます.
INSERT INTO users
VALUES ('002', 'Bob', 30);11.1.2 複数行の追加
複数の行を一度に追加することもできます.書式は次のとおりです.
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);11.2 データの更新
UPDATE文を使用して,既存の行のデータを更新します.
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;UPDATAE table_name:更新するテーブルの名前を指定します.SET:更新する列と新しい値を指定します.WHERE:更新する行を特定する条件を指定します.条件を省略すると,すべての行が更新されます.
次の例では,usersテーブルのIDが001の行のAgeを26に更新します.
UPDATE users
SET Age = 26
WHERE ID = '001';where句を省略すると,すべての行が更新されます.
次の例では,すべてのユーザーの年齢を1歳ずつ増やします.
UPDATE users
SET Age = Age + 1;11.3 データの削除
DELETE文を使用して,既存の行を削除します.
DELETE FROM table_name
WHERE condition;DELETE FROM table_name:削除するテーブルの名前を指定します.WHERE:削除する行を特定する条件を指定します.条件を省略すると,すべての行が削除されます.
例えば,IDが001の行を削除する場合は,次のようになります.
DELETE FROM users
WHERE ID = '001';11.4 データの選択
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;このテーブルからNameとDepartment列を選択する場合は,次のようになります.
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
11.4.1 SELECT DISTINCT
SELECT DISTINCTを使用すると,重複する行を除外して選択することができます.
SELECT DISTINCT column1, column2, ...
FROM table_name;11.5 練習
下記のemployeesテーブルがあるとします.
CREATE TABLE employees (
ID TEXT PRIMARY KEY,
Name TEXT NOT NULL,
Age INTEGER CHECK (Age >= 18),
Department TEXT
);このテーブルに対して,以下の操作を行ってください.
| ID | Name | Age | Department |
|---|---|---|---|
| 001 | Alice | 25 | HR |
| 002 | Bob | 30 | IT |
| 003 | Charlie | 35 | Finance |
- テーブルのデータを追加せよ.
001の行のDepartmentをITに更新せよ.IDが001の行を削除せよ.IDが002の行を選択せよ.- 年齢が30歳以上の従業員の名前を選択せよ.