SQL

SELECT クエリ

SQL

基本的なデータ取得

基本的な SELECT

SELECT、WHERE、ORDER BY、LIMIT

select.sql sql
-- 全列取得
SELECT * FROM users;

-- 特定列
SELECT id, name, email FROM users;

-- エイリアス
SELECT id, name AS user_name, email AS mail FROM users;

-- 条件絞り込み
SELECT * FROM users
WHERE age >= 18
  AND active = true
  AND role IN ('admin', 'user')
  AND name LIKE 'Alice%'   -- 前方一致
  AND name LIKE '%alice%'  -- 部分一致
  AND email IS NOT NULL;

-- 並べ替え
SELECT * FROM users
ORDER BY age DESC, name ASC;

-- 取得件数の制限
SELECT * FROM users LIMIT 10;
SELECT * FROM users LIMIT 10 OFFSET 20; -- ページ2(21〜30件目)

-- 重複除外
SELECT DISTINCT country FROM users;

WHERE 条件の演算子

比較、論理、LIKE、BETWEEN、IN

where.sql sql
-- 比較演算子
WHERE price = 100
WHERE price != 100  -- または <>
WHERE price > 100
WHERE price <= 100

-- 論理演算子
WHERE age >= 18 AND age <= 65
WHERE role = 'admin' OR role = 'superadmin'
WHERE NOT active

-- BETWEEN(両端含む)
WHERE price BETWEEN 100 AND 500
WHERE created_at BETWEEN '2025-01-01' AND '2025-12-31'

-- IN
WHERE country IN ('JP', 'US', 'GB')
WHERE id NOT IN (1, 2, 3)
WHERE id IN (SELECT user_id FROM orders WHERE total > 1000)

-- LIKE
WHERE name LIKE 'A%'       -- A で始まる
WHERE name LIKE '%son'     -- son で終わる
WHERE name LIKE '%li%'     -- li を含む
WHERE code LIKE '_BC_'     -- 任意の1文字

-- NULL チェック
WHERE deleted_at IS NULL
WHERE deleted_at IS NOT NULL
WHERE COALESCE(nickname, name) = 'Alice' -- NULLならnameを使用