SQLの基礎 — CREATE、SELECT、INSERT、UPDATE、DELETE
このトピックを終えると
SQLを使ってテーブルを作成し、データを挿入、検索、修正、削除できるようになります。
SQLとは
SQL(Structured Query Language)は、データベースに問い合わせるための言語です。「プログラミング言語」とは少し異なります。繰り返し処理や関数ではなく、**「このようなデータを取得して」**と要求する宣言的な言語です。
SQLは、MySQL、PostgreSQL、SQLiteなど、ほとんどのリレーショナルデータベースで使用されます。構文はほぼ同じなので、一つを学べば他のものも使えるようになります。
CREATE TABLE — テーブルの作成
sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);| キーワード | 意味 |
|---|---|
INT | 整数 |
VARCHAR(50) | 最大50文字の文字列 |
AUTO_INCREMENT | 自動増分(1、2、3、...) |
PRIMARY KEY | この行の一意の識別子 |
NOT NULL | 空の値は許可しない |
DEFAULT | 値が指定されていない場合に使用する値 |
テーブルは、データの設計図です。一度作成すると、その構造に合ったデータのみを挿入できます。
INSERT — データの挿入
sql
-- 1行を追加
INSERT INTO users (name, email) VALUES ('キム・フン', 'hoon@example.com');
-- 複数の行を一度に追加
INSERT INTO users (name, email) VALUES
('イ・ス', 'su@example.com'),
('パク・ジン', 'jin@example.com');idとcreated_atは指定していませんが、AUTO_INCREMENTとDEFAULTのおかげで自動的に入力されます。
SELECT — データの読み取り
sql
-- 全件取得
SELECT * FROM users;
-- 特定の列のみ
SELECT name, email FROM users;
-- 条件による検索
SELECT * FROM users WHERE name = 'キム・フン';
-- 部分一致検索
SELECT * FROM users WHERE email LIKE '%@naver.com';
-- ソート
SELECT * FROM users ORDER BY created_at DESC;
-- 件数制限
SELECT * FROM users ORDER BY id DESC LIMIT 10;SELECTはSQLで最もよく使用されるコマンドです。WHEREで条件を設定し、ORDER BYでソートし、LIMITで件数を制限します。
*は「すべての列」を意味します。便利ですが、実際には必要な列のみを明示することが推奨されます。不要なデータ転送を減らすためです。
UPDATE — データの修正
sql
-- 特定のユーザーのメールアドレスを変更
UPDATE users SET email = 'new@example.com' WHERE id = 1;
-- 複数の列を同時に修正
UPDATE users SET name = 'キム・フン2', email = 'hoon2@example.com' WHERE id = 1;注意: WHERE句を省略すると、すべての行が修正されます。これは、誤って起こりうる最も危険な状況の一つです。
sql
-- これを実行すると、すべてのユーザーのメールアドレスが変更される!
UPDATE users SET email = 'oops@example.com';DELETE — データの削除
sql
-- 特定の行を削除
DELETE FROM users WHERE id = 3;
-- 条件に一致する複数の行を削除
DELETE FROM users WHERE created_at < '2025-01-01';UPDATEと同様に、WHEREを省略して実行すると、テーブル全体が空になります。復元できません。
sql
-- 全件削除 — 復元不可能!
DELETE FROM users;コマンドのまとめ
| コマンド | 目的 | リスク |
|---|---|---|
CREATE TABLE | テーブル構造の定義 | 低 |
INSERT | 新しいデータの追加 | 低 |
SELECT | データの取得 | なし(読み取りのみ) |
UPDATE | 既存のデータの修正 | ⚠️ WHERE必須 |
DELETE | データの削除 | ⚠️ WHERE必須 |
SQLを最初に学ぶときに覚えておくこと:SELECTは安全で、UPDATE/DELETEはWHEREがないと大惨事になる。