
SQLμ μ²μ 보면 λ―μ€λ€.
μμ΄ κ°κΈ°λ νκ³ , μ½λ κ°κΈ°λ νκ³ , νλ₯Ό λ€λ£¨λ κ² κ°κΈ°λ νλ€.
βμμ
μ΄λ λκ° λ€λ₯Έ κ±°μ§?β
βμ κ΅³μ΄ μ΄λ° μΈμ΄λ₯Ό λ°°μμΌ νμ§?β
SQLμ΄ μ νμνκ°, κ·Έλ¦¬κ³ μ€μ λ‘ μ΄λ»κ² μ°μ΄λκ°
μ΄λ° μν©μ μμν΄λ³΄μ.
β νμΌ(txt, csv)λ‘λ νκ³κ° μ¨λ€
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ±μ₯ν κ²μ΄ λ°λ‘ λ°μ΄ν°λ² μ΄μ€(Database)λ€.
β
λ°μ΄ν°λ² μ΄μ€(Database)λ
λ°μ΄ν°λ₯Ό 체κ³μ μΌλ‘ μ μ₯νκ³ , λΉ λ₯΄κ² μ°Ύκ³ , μμ νκ² κ΄λ¦¬νλ νλ‘κ·Έλ¨μ΄λ€
| κ΅¬λΆ | νμΌ μ μ₯ | λ°μ΄ν°λ² μ΄μ€ |
|---|---|---|
| κ²μ | μ²μλΆν° λκΉμ§ μ½μ | μΈλ±μ€λ‘ λ°λ‘ μ°Ύμ |
| λμ μμ | κ±°μ λΆκ°λ₯ | μ¬λ¬ λͺ λμ κ°λ₯ |
| λ°μ΄ν° μ | 컀μ§μλ‘ λλ €μ§ | μλ°±λ§ κ±΄λ λΉ λ¦ |
| μμ μ± | μμ μ 볡ꡬ μ΄λ €μ | λ°±μ ·볡ꡬ κΈ°λ₯ λ΄μ₯ |
π νμΌ μ μ₯ = κ°μΈ λ
ΈνΈ
π λ°μ΄ν°λ² μ΄μ€ = λμκ΄
μ΄ ν ꡬ쑰λ SQL μ 체μ μΆλ°μ μ΄λ€.
ν μ΄λΈμμ κ° νμ μ μΌνκ² κ΅¬λΆνλ κ°
π μ£Όλ―Όλ±λ‘λ²νΈ κ°μ μν
SQLμ λ°μ΄ν°λ² μ΄μ€μ λννλ μΈμ΄λ€.
β 무μμ μνλμ§λ§ λ§νλ©΄ λλ€
β μ΄λ»κ² μ²λ¦¬ν μ§λ DBκ° μμμ νλ€
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
age INT DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
β οΈ DROP TABLEμ ν μ΄λΈ + λ°μ΄ν° λͺ¨λ μμ (볡ꡬ λΆκ°)
INSERT INTO users (name, email, age)
VALUES ('νκΈΈλ', 'hong@example.com', 25);
AUTO_INCREMENT, DEFAULTκ° μλ 컬λΌμ μλ΅ κ°λ₯νλ€.
SELECT * FROM users;
SELECT name, email FROM users;
SELECT * FROM users WHERE age >= 25;
SELECT * FROM users WHERE name = 'νκΈΈλ';
SELECT * FROM users WHERE name LIKE 'κΉ%';
SELECT * FROM users ORDER BY age DESC;
SELECT * FROM users LIMIT 5;
β NULLμ = λ‘ λΉκ΅ λΆκ°
λ°λμ IS NULL / IS NOT NULL μ¬μ©
UPDATE users SET age = 26 WHERE id = 1;
DELETE FROM users WHERE id = 1;
π¨ WHERE μμΌλ©΄ μ λΆ μμ / μ λΆ μμ λ¨
SELECT age, COUNT(*) FROM users GROUP BY age;
μ€μ μλΉμ€λ ν μ΄λΈ νλλ‘ λλμ§ μλλ€.
βνκΈΈλμ΄ μ£Όλ¬Έν μνμ?β
SELECT u.name, o.product
FROM users u
INNER JOIN orders o
ON u.id = o.user_id;
FROM β WHERE β GROUP BY β HAVING β SELECT β ORDER BY β LIMIT
ποΈ βSQLμ λ°μ΄ν°λ₯Ό λ€λ£¨λ μ¬κ³ λ°©μμ΄λ€β