この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:atom
更新日時:2026-05-18 01:50:53

タイトル: 基本構文

本稿は MariaDB (および MySQL) で使用する SQL の基本構文について説明する記事です。データの取得・登録・更新・削除といった日常的な操作の入口になります。

子ページから項目を選択してください。

本ページの子ページ

  • SELECT — データの取得
  • INSERT — データの登録

基本的な SQL の4種

命令用途
SELECT取得SELECT id, name FROM users;
INSERT登録INSERT INTO users (name) VALUES ('Taro');
UPDATE更新UPDATE users SET name = 'Jiro' WHERE id = 1;
DELETE削除DELETE FROM users WHERE id = 1;

SELECT の構成要素

役割
SELECT取得列
FROM取得元テーブル
JOIN ... ONテーブル結合
WHERE抽出条件
GROUP BY集約キー
HAVING集約後フィルタ
ORDER BY並び替え
LIMIT / OFFSET件数制限・ページング

代表的なクエリ例

-- 1. 単純な取得
SELECT id, name FROM users WHERE deleted_at IS NULL ORDER BY id DESC LIMIT 10;

-- 2. 結合
SELECT u.id, u.name, o.total
  FROM users u
  INNER JOIN orders o ON u.id = o.user_id
 WHERE o.total > 1000;

-- 3. 集計
SELECT user_id, COUNT(*) AS cnt, SUM(total) AS sum_total
  FROM orders
 GROUP BY user_id
 HAVING cnt >= 3;

-- 4. 部分一致
SELECT * FROM users WHERE name LIKE '田%';

INSERT / UPDATE / DELETE の基本

INSERT INTO users (name, email) VALUES ('Taro', 't@example.com');
INSERT INTO users (name) VALUES ('A'), ('B'), ('C');  -- 複数行

UPDATE users SET name = 'Jiro' WHERE id = 1;

DELETE FROM users WHERE id = 1;

よく使う MariaDB / MySQL 特有の機能

  • AUTO_INCREMENT — 主キーの自動採番
  • LIMIT N OFFSET M — ページング
  • INSERT ... ON DUPLICATE KEY UPDATE — UPSERT
  • REPLACE INTO — 重複時の置換 (内部は DELETE + INSERT)
  • SHOWSHOW DATABASES; SHOW TABLES; SHOW CREATE TABLE t;
  • EXPLAIN — 実行計画の確認
  • バックティック — 予約語と被るカラム名は `order` のようにバックティックで囲む

WHERE で使う主な演算子

演算子用途
=<><><=>=比較
IS NULL / IS NOT NULLNULL 判定
IN (...)複数値一致
BETWEEN a AND b範囲
LIKEパターン一致 (% 任意文字列、_ 任意1文字)
AND / OR / NOT論理結合

注意点

  • UPDATE / DELETE は必ず WHERE 付きで。本番では SELECT で件数確認してから差し替えるのが安全
  • SQLインジェクション対策: 文字列連結ではなくプレースホルダを使う
  • COUNT(*) や LIMIT OFFSET 大量は重い。キーセットページング (WHERE id > ?) を検討
  • 暗黙の型変換に注意。文字列 '001' と数値 1 が一致してしまうケースがある

関連