Basic SELECT
SELECT * FROM users;
SELECT id, name, email FROM users;
-- Alias
SELECT name AS full_name FROM users;
-- DISTINCT
SELECT DISTINCT city FROM users;
-- Calculated
SELECT name, price * 1.15 AS price_with_tax FROM products;
-- CONCAT
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
WHERE — Filter
SELECT * FROM users WHERE age > 18;
SELECT * FROM users WHERE status = 'active';
-- LIKE
WHERE name LIKE 'ক%' -- ক দিয়ে শুরু
WHERE name LIKE '%ম' -- ম দিয়ে শেষ
WHERE name LIKE '%রি%' -- রি থাকলে
-- Logical
WHERE age >= 18 AND age <= 30
WHERE city = 'ঢাকা' OR city = 'চট্টগ্রাম'
-- BETWEEN
WHERE price BETWEEN 100 AND 500
-- IN
WHERE id IN (1, 3, 5, 7)
WHERE role NOT IN ('banned','deleted')
-- NULL
WHERE email IS NULL
WHERE email IS NOT NULL
ORDER BY
SELECT * FROM users ORDER BY name ASC;
SELECT * FROM users ORDER BY created_at DESC;
SELECT * FROM users ORDER BY city ASC, age DESC;
LIMIT ও Pagination
-- প্রথম 10টি
SELECT * FROM users LIMIT 10;
-- Pagination: page 2 (11-20)
SELECT * FROM users LIMIT 10 OFFSET 10;
-- সূত্র: OFFSET = (page - 1) * per_page
-- Page 3, 20 per page
SELECT * FROM posts
ORDER BY created_at DESC
LIMIT 20 OFFSET 40;
Query Structure
SELECT columns
FROM table
WHERE conditions
GROUP BY columns
HAVING group_conditions
ORDER BY columns
LIMIT n OFFSET m;
💡 Execution: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
Practical Examples
-- গত ৭ দিনের user
SELECT * FROM users
WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY);
-- Search
SELECT * FROM users
WHERE name LIKE '%করিম%' OR email LIKE '%করিম%';
-- শীর্ষ ১০ দামী product
SELECT name, price FROM products
WHERE stock > 0
ORDER BY price DESC
LIMIT 10;