🏠 Home / Hub

🗄️ SQL Lesson 01 — SELECT & WHERE

← Back to SQL Menu

1. SQL ဆိုတာ ဘာလဲ?

SQL = Structured Query Language

Database ထဲမှာ Data တွေကို ဝင်မေးမြန်းတဲ့ Language

✅ SELECT — data ဖတ်တယ်
✅ INSERT — data ထည့်တယ်
✅ UPDATE — data ပြောင်းတယ်
✅ DELETE — data ဖျက်တယ်
💡 SQL keywords တွေကို UPPERCASE ရေးတာ convention (required မဟုတ်):
SELECT * FROM users = select * from users (same)

2. Sample Table — users

ဒီ lesson မှာ ဒီ table ကို reference ယူမယ်:

idnameagecityscoreactive
1Ko Min25Yangon951
2Ma Aye22Mandalay871
3Ko Kyaw28Yangon730
4Ma Mya20Bago911
5Ko Aung35Mandalay651

3. SELECT — Data ဖတ်ယူ

-- Select all columns
SELECT * FROM users;

-- Select specific columns
SELECT name, age, city FROM users;

-- Column alias
SELECT name AS 'Full Name', age AS 'Age' FROM users;

-- Expression in SELECT
SELECT name, score, score * 1.1 AS bonus_score FROM users;

-- Remove duplicates
SELECT DISTINCT city FROM users;
-- Result: Yangon, Mandalay, Bago

SELECT DISTINCT city result:

city
Yangon
Mandalay
Bago

4. WHERE — Filter Conditions

-- Equal
SELECT * FROM users WHERE city = 'Yangon';

-- Comparison
SELECT * FROM users WHERE age > 25;
SELECT * FROM users WHERE score >= 90;

-- AND, OR, NOT
SELECT * FROM users WHERE age > 20 AND city = 'Yangon';
SELECT * FROM users WHERE city = 'Yangon' OR city = 'Bago';
SELECT * FROM users WHERE NOT active = 0;

-- BETWEEN — range
SELECT * FROM users WHERE age BETWEEN 20 AND 30;

-- IN — list of values
SELECT * FROM users WHERE city IN ('Yangon', 'Bago');

-- LIKE — pattern matching
SELECT * FROM users WHERE name LIKE 'Ko%';     -- starts with Ko
SELECT * FROM users WHERE name LIKE '%Min%';    -- contains Min
SELECT * FROM users WHERE name LIKE '%Min';     -- ends with Min

-- IS NULL / IS NOT NULL
SELECT * FROM users WHERE email IS NULL;
SELECT * FROM users WHERE email IS NOT NULL;

5. ORDER BY & LIMIT

-- ORDER BY — sort results
SELECT * FROM users ORDER BY age;           -- ascending (default)
SELECT * FROM users ORDER BY age DESC;     -- descending
SELECT * FROM users ORDER BY city ASC, score DESC;  -- multiple

-- LIMIT — restrict row count
SELECT * FROM users LIMIT 3;             -- first 3 rows
SELECT * FROM users LIMIT 2, 3;          -- skip 2, take 3 (pagination)
SELECT * FROM users LIMIT 3 OFFSET 2;   -- same as LIMIT 2, 3

-- Top 3 highest scores
SELECT name, score FROM users
ORDER BY score DESC
LIMIT 3;

Top 3 scores result:

namescore
Ko Min95
Ma Mya91
Ma Aye87

6. SQL Clause Order

-- Complete SELECT syntax (order matters!)
SELECT   columns
FROM     table_name
WHERE    condition
GROUP BY column
HAVING   group_condition
ORDER BY column [ASC|DESC]
LIMIT    count [OFFSET start]
Remember the order: Select From Where Group Having Order Limit
Shortcut: "SFW GHO L" — "Software Go Home Office Lunch"

Next: SQL Lesson 02 → INSERT / UPDATE / DELETE →

📌 Study Checklist