SELECT
μΌλ°μ μΌλ‘ INSERT / UPDATE / DELETE λ κ±°μ λ μ½λ λ¨μλ‘ λ°μνκΈ° λλ¬Έμ μ±λ₯μ λ¬Έμ κ° μλ€. νμ§λ§ SELECTλ μ¬λ¬ κ°μ ν μ΄λΈλ‘λΆν° λ°μ΄ν°λ₯Ό κ°μ Έμ€κΈ° λλ¬Έμ μ΄λ€ λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό κ°μ Έμ¬μ§μ λ°λΌ μ±λ₯μ΄ ν¬κ² λ¬λΌμ§λ€.
SELECT μ μ μΈλ±μ€ μ¬μ©
μΈλ±μ€ μ¬μ©μ μν κΈ°λ³Έ κ·μΉ
κΈ°λ³Έμ μΌλ‘ 컬λΌμ κ° μ체λ₯Ό λ³ννμ§ μκ³ κ·Έλλ‘ μ¬μ©νλ 쑰건μ λ§μ‘±ν΄μΌ μΈλ±μ€λ₯Ό μ μμ μΌλ‘ μ¬μ©ν μ μλ€.
λν λΉκ΅ λμμ΄ λ€λ₯Έ νμ μ κ°μ§κ² λλ©΄ λ΄λΆμ μΌλ‘ ν λ³νμ΄ λ°μνκ² λλλ° μ΄ κ²½μ°μλ μΈλ±μ€λ₯Ό μ¬μ©ν μ μλ€.
WHERE μ μ μΈλ±μ€
WHERE 쑰건μμ μ¬λ¬ κ°μ 컬λΌμ μ‘°ν©νμ¬ μ¬μ©νλ κ²½μ°μλ μΈλ±μ€λ₯Ό μ΄λ»κ² ꡬμ±νλλμ λ°λΌ μ±λ₯μ΄ ν¬κ² λ¬λΌμ§λ€. μ¬κΈ°μ μ€μ λ‘ μμ± λ μμλ‘ μΈλ±μ€κ° ꡬμ±λλ κ²μ΄ μλλΌ μΈλ±μ€μ μ»¬λΌ μμμ λ°λΌ μ΅μ ν μνμ νκ² λκΈ° λλ¬Έμ μΈλ±μ€μ μ»¬λΌ μμλ₯Ό μ κ³ λ €ν΄μΌ νλ€. μ¬κΈ°μ μμ μ€λͺ μ λͺ¨λ AND 쑰건μ ν΄λΉνλ κ²½μ°μ΄λ©°, OR 쑰건μ κ²½μ°μλ μ²λ¦¬ λ°©μμ΄ λ°λκ² λλ€.
λ§μ½ WHERE 쑰건μ OR μ‘°κ±΄μ΄ κ±Έλ €μκ³ , μμ κ°μ΄ μΈλ±μ€κ° μ€μ λμ΄μλ κ²½μ° ANDμ κ²½μ° first_name
μΈλ±μ€λ₯Ό μ¬μ©ν μ μμ§λ§,
OR μ°μ°μκ° μ μ©λμ΄ κ° μ‘°κ±΄μ΄ λ³κ°λ‘ μ²λ¦¬λκΈ° λλ¬Έμ ν ν
μ΄λΈ μ€μΊμ΄ λ°μνκ² λλ€.
GROUP BY μ μ μΈλ±μ€
GROUP BY μ μμλ μΈλ±μ€λ₯Ό μ¬μ©νκΈ° μν΄μ μλμ 쑰건μ λ§μ‘±ν΄μΌ νλ€.
GROUP BY μ μ λͺ μλ 컬λΌμ΄ μΈλ±μ€ μ»¬λΌ μμμ μμΉκ° λμΌν΄μΌ νλ€.
μΈλ±μ€ κ΅¬μ± μ»¬λΌ μ€ λ€μͺ½ 컬λΌμ GROUP BY μ μ λͺ μλμ§ μμλ μΈλ±μ€λ₯Ό μ¬μ©ν μ μμ§λ§, μμͺ½ 컬λΌμ΄ GROUP BY μ μ λͺ μλμ§ μμΌλ©΄ μΈλ±μ€ μ¬μ©μ΄ λΆκ°λ₯νλ€.
ORDER BY μ μ μΈλ±μ€
GROUP BY μ²λ¦¬ λ°©λ²κ³Ό λΉμ·νλ©° κΈ°λ³Έμ μΌλ‘ μμ GROUP BY μ μ μΈλ±μ€λ₯Ό μ¬μ©ν μ μλ 쑰건μ λ°λ₯΄κ² λλ©° μΆκ°μ μΌλ‘ μλμ 쑰건μ λ§μ‘±ν΄μΌ νλ€.
ORDER BY μ μ λͺ μλ λͺ¨λ 컬λΌμ΄ μ€λ¦μ°¨μμ΄κ±°λ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬λμ΄μΌ νλ€.
WHERE + ORDER BY(or GROUP BY) μ μ μΈλ±μ€
WHERE μ κ³Ό ORDER BY μ μ λμμ μ¬μ©νλ κ²½μ°μλ μλμ λ°©λ²μΌλ‘ μΈλ±μ€λ₯Ό μ΄μ©νκ² λλ€.
WHERE μ λ§ μΈλ±μ€ μ΄μ©
ORDER BY μ μ μΈλ±μ€λ₯Ό μ΄μ©ν μ λ ¬μ΄ λΆκ°λ₯νλ©°, WHERE μ μ λμ 컬λΌμ΄ μΈλ±μ€μ ν¬ν¨λΌ μμ λ μ¬μ© κ°λ₯
WHERE μΈλ±μ€λ₯Ό ν΅ν΄ μ‘°νλ κ²°κ³Όλ₯Ό λ³λλ‘ μ λ ¬νλ λ°©μμΌλ‘ μ²λ¦¬λλ€.
WHERE μ 쑰건μ μΌμΉνλ λ μ½λ 건μκ° μ μ μλ‘ μ±λ₯μ΄ μ’λ€.
ORDER BY μ λ§ μΈλ±μ€ μ΄μ©
WHERE μ μ μΈλ±μ€λ₯Ό μ΄μ©ν μ‘°νκ° λΆκ°λ₯νλ©°, ORDER BY μ μ μ λ ¬ λμ 컬λΌμ΄ μΈλ±μ€μ ν¬ν¨λΌ μμ λ μ¬μ© κ°λ₯
ORDER BY μ μ μμλλ‘ μΈλ±μ€λ₯Ό μ½μΌλ©΄μ λ μ½λ ν κ±΄μ© WHERE 쑰건μ μΌμΉνλμ§ νμΈνλ λ°©μμΌλ‘ μ²λ¦¬λλ€.
WHERE μ + ORDER BY μ λμμ κ°μ μΈλ±μ€ μ΄μ©
WHERE μ μ
λ²μ
λΉκ΅ 쑰건μμ μ¬μ©νλ 컬λΌκ³Ό ORDER BY μ μ μ λ ¬ λμ 컬λΌμ΄ λͺ¨λ νλμ μΈλ±μ€μ μ°μν΄μ ν¬ν¨λΌ μμ λ μ¬μ© κ°λ₯WHERE μ μ
λλ±
λΉκ΅ 쑰건μΌλ‘ μ¬μ©νλ 컬λΌκ³Ό ORDER BY μ μ μ λ ¬ λμ 컬λΌμ΄ μ€μ²© μκ΄ μμ΄ μΈλ±μ€ μμλλ‘ ν¬ν¨λΌ μμ λ μ¬μ© κ°λ₯μ μΌ λΉ λ₯Έ μ±λ₯μ 보μ΄κΈ° λλ¬Έμ κ°λ₯νλ€λ©΄ μ΄ λ°©λ²μ μ¬μ©νλ κ²μ΄ μ’λ€.
μ 쿼리λ λλ± λΉκ΅μ΄κΈ° λλ¬Έμ 1λ²μμ COL_1 GROUP BY μ μ μΆκ°νλλΌλ μ λ ¬ μμμ λ³νκ° μμ΄(COL_1μ λν λ°μ΄ν°κ° ν 건μ΄κΈ° λλ¬Έ) μ€ν κ²°κ³Όκ° κ°λ€. λλ¬Έμ μ΅ν°λ§μ΄μ μμ μ€ν κ³νμ μ΅μ ννμ¬ WHERE + GROUP BY μ μΈλ±μ€ μ¬μ© λ°©μμΌλ‘ μ²λ¦¬ν μ μκ² λλ€.
νμ§λ§ μ 쿼리λ λ²μ λΉκ΅μ΄κΈ° λλ¬Έμ COL_1 > 10 μ λ§μ‘±νλ λ μ½λκ° μ¬λ¬ κ° μΌ μ μκΈ° λλ¬Έμ, 1λ²μ μ λ ¬μ ν λ μΈλ±μ€λ₯Ό μ¬μ©ν μ μκ² λκ³ , 2λ²μ κ·Έλλ‘ λͺ¨λ μΈλ±μ€λ₯Ό μ¬μ©ν μ μκ² λλ€.
GROUP BY + ORDER BY μ μ μΈλ±μ€
GROUP BY μ κ³Ό ORDER BY μ μ λͺ μλ 컬λΌμ μμμ λ΄μ©μ΄ λͺ¨λ κ°μμΌ μΈλ±μ€λ₯Ό μ¬μ©ν μ μλ€. λ§μ½ λ μ€ νλλΌλ μΈλ±μ€λ₯Ό μ΄μ©ν μ μμ κ²½μ° λͺ¨λ μΈλ±μ€λ₯Ό μ¬μ©ν μ μλ€.
WHERE + GROUP BY + ORDER BY μ μ μΈλ±μ€
μμ κ·μΉμ΄ λͺ¨λ μ μ©λλ©°, κ·Έ νλ¦μ μλμ κ°λ€.
WHERE μ λΉκ΅ 쑰건 μ¬μ© μ μ£Όμμ¬ν
NULL λΉκ΅
MySQLμμλ NULL κ°λ νλμ κ°μΌλ‘ μΈμ νμ¬ ν¬ν¨λ λ μ½λλ μΈλ±μ€λ‘ κ΄λ¦¬νλ€.(SQL νμ€μμλ NULL κ°μ λΉκ΅ν μ μλ κ°μΌλ‘ μ μλμ΄ μμ) νμ§λ§ λͺ¨λ 쿼리 μ€ν κ³νμμ NULL κ°μ λ μΈμ§ μ€μΊμΌλ‘ μ²λ¦¬νμ§λ μλλ€.
1 / 2 쿼리λ μ μμ μΌλ‘ λ μΈμ§ μ€μΊμ μ¬μ©νμ§λ§, 3 / 4 쿼리λ λ μΈμ§ μ€μΊμ μ¬μ©νμ§ λͺ»νκ³ ν μ€μΊμ μ¬μ©νκ² λλ€.
λ¬Έμμ΄ / μ«μ λΉκ΅
λ¬Έμμ΄ / μ«μ μ»¬λΌ λΉκ΅ μ λ°λμ κ·Έ νμ μ λ§λ μμκ° μ¬μ©ν΄μΌ μΈλ±μ€λ₯Ό μ μμ μΌλ‘ μ¬μ©ν μ μλ€.
λ μ§ λΉκ΅
λ μ§λ₯Ό μ μ₯νλ νμ μλ DATETIME, DATE, TIMESTAMP, TIME μ΄ μ‘΄μ¬νκΈ° λλ¬Έμ κ°κ° νμ μ λΉκ΅ν λ μ£Όμν΄μΌ νλ€.
DATE(DATETIME) - λ¬Έμμ΄ λΉκ΅
κΈ°λ³Έμ μΌλ¬ λ¬Έμμ΄ κ°μ STR_TO_DATE
λ₯Ό λͺ
μνμ§ μμλ μλμΌλ‘ DATETIME νμ
μΌλ‘ λ³ννμ¬ λΉκ΅λ₯Ό μννκ² λλ€.(μΈλ±μ€ λν μ μ μ μ©)
μ΄λ κ² μμλ₯Ό λ³ννλ κ²μ μΈλ±μ€λ₯Ό μ¬μ©νλλ°μ μν₯μ΄ μμ§λ§, λ μ§ μ»¬λΌμ DATE_FORMAT
, DATE_ADD
λ±μ ν¨μλ₯Ό μ¬μ©νμ¬ λ³ννλ κ²½μ°μλ μΈλ±μ€λ₯Ό μ¬μ©ν μ μλ€.
DATE - DATETIME λΉκ΅
λ³νμ λ°λ‘ λͺ
μνμ§ μλ κ²½μ°μ DATE 컬λΌμ DATETIME νμ
μΌλ‘ λ³ννμ¬ λΉκ΅λ₯Ό μννκ² λλ€.
2023-05-09
-> 2023-05-09 00:00:00
μΌλ‘ λ³νλλλ°, ν΄λΉ νμ
λ³νμ μΈλ±μ€ μ¬μ© μ¬λΆμ μν₯μ μ£Όμ§ μμ 쿼리 κ²°κ³Όμλ§ μ£Όμλ₯Ό νλ©΄ λλ€.
TIMESTAMP - DATETIME λΉκ΅
DATETIME - TIMESTAMP λ³λ νμ λ³ν μμ΄ λΉκ΅ μ λ¬Έμ μμ΄ μλνλ κ²μ²λΌ λ³΄μΌ μ μμ§λ§ μ€μ λ‘λ κ·Έλ μ§ μμ μ μκΈ° λλ¬Έμ μ£Όμν΄μΌ νλ€.
UNIX_TIMESTAMP ν¨μλ λ΄λΆμ μΌλ‘ λ¨μ μ«μ κ°μ λΆκ³ΌνκΈ° λλ¬Έμ μ μμ μΌλ‘ DATETIME νμ
μΌλ‘ λ³νλμ§ μμ μ¬λ°λ₯΄μ§ μμ κ²°κ³Όλ₯Ό λ°ννκ² λλ€.
μ΄λ° κ²½μ°μλ FROM_UNIXTIME
ν¨μλ₯Ό μ¬μ©νμ¬ νμ
λ³νμ λͺ
μν΄μΌ νλ€.
Short Circuit Evaluation
κΈ°λ³Έμ μΌλ‘ WHERE 쑰건 μ€ μΈλ±μ€κ° μλ κ²½μ°μ ν΄λΉ 컬λΌμ λ¨Όμ 쑰건 κ²μ¬νμ§λ§, μλ κ²½μ°μ WHEREμ λͺ μλ μμλλ‘ μ‘°κ±΄ κ²μ¬λ₯Ό μννλ€. λλ¬Έμ λ§μ 리μμ€κ° μλͺ¨νλ 쑰건μ λμ€μ λͺ μνλ©΄ λ λΉ λ₯΄κ² 쿼리λ₯Ό μνν μ μλ€.
LIMIT n
쿼리 κ²°κ³Όμμ μ§μ λ μμμ μμΉν λ μ½λλ§ κ°μ Έμ¬ λ μ¬μ©νλ λ¬Έλ²μ΄λ€. MySQLμ LIMITμ WHERE μ‘°κ±΄μ΄ μλκΈ° λλ¬Έμ νμ 쿼리μ λ§μ§λ§μ μ€νλλ€.
LIMITμ νμν λ μ½λ 건μκ° μ‘°νλλ©΄ μ¦μ 쿼리λ₯Ό μ’ λ£νκ² λλλ°, 쿼리μ λ°λΌ μ±λ₯ ν₯μμ κΈ°λν μ μλ€.
μΈλ±μ€ μ²λ¦¬ λμ§ μμ GROUP BY / ORDER BY: λͺ¨λ λ μ½λλ₯Ό μ½μ΄μΌ νλ―λ‘ μ±λ₯ ν₯μ λ―Έλ―Έ
DISTINCT: μ λν¬ν λ μ½λ 건μκ° LIMITμ λͺ μλ κ°λ³΄λ€ ν° κ²½μ° μ±λ₯ ν₯μ κΈ°λ(ν μ΄λΈμ μ½λ λμ€ μ€λ¨)
μμ ν΄λΉνμ§ μμ: ν° μ±λ₯ ν₯μ κΈ°λ κ°λ₯
νμ΄μ§
μ§κ΄μ μΌλ‘ νμ΄μ§νλ λ°©λ²μ LIMITμ ν΅ν΄ νμ΄μ§ λ²νΈμ νμ΄μ§ λΉ λ μ½λ μλ₯Ό κ³±ν κ°μ LIMITμ λͺ μνλ κ²μ΄λ€.
μΌλ°μ μΈ LIMIT μ¬μ©
μ μ μμ λ°μ΄ν°μμλ λ¬Έμ κ° λμ§ μμ§λ§ μ±λ₯μ μν₯μ μ€ μ λμ μμ λ°μ΄ν°λ₯Ό μ‘°ννλ κ²½μ° ν΄λΉ νμ΄μ§κΉμ§μ λͺ¨λ λ μ½λλ₯Ό μ½μ΄μΌ νκΈ° λλ¬Έμ μ±λ₯μ μν₯μ μ€ μ μλ€.
ν¬μΈν°(컀μ) κ°λ μ μ¬μ©ν νμ΄μ§
μμ κ°μ΄ ν¬μΈν°(컀μ) κ°λ μ μ¬μ©νλ©΄ λ°μ΄ν° 건μμ λ°λΌ λΉμ½μ μΈ μ±λ₯ ν₯μμ κΈ°λν μ μλ€.
COUNT()
κ²°κ³Ό λ μ½λμ 건μλ₯Ό λ°ννλ ν¨μ
λ΄λΆ μΈμ
컬λΌλͺ /
*
/1
μ¬μ© κ°λ₯*
λ SELECT μ μμ μ¬μ©λλ κ²μ²λΌ λͺ¨λ 컬λΌμ κ°μ Έμ€λ κ²μ μλ―Ένλ κ²μ΄ μλ, μ΅ν°λ§μ΄μ κ° μ΅μ ννμ¬ κ°μ₯ λΉ λ₯΄κ² μ²λ¦¬ν μ μλ μ»¬λΌ μ¬μ©μ¬μ© κ°λ₯ν κ°μ₯ μμ μΈμ»¨λ리 μΈλ±μ€λ₯Ό νμνμ¬ μ²λ¦¬(μλ κ²½μ°, ν΄λ¬μ€ν°λ PK μΈλ±μ€ μ¬μ©)
λ§μ½ μΈμλ‘ μ»¬λΌμ λ£μ κ²½μ° ν΄λΉ 컬λΌμ΄ NULLμ΄ μλ λ μ½λλ§ μΉ΄μ΄νΈ
WHERE 쑰건
WHERE μ‘°κ±΄μ΄ μλ κ²½μ° ν΄λ¬μ€ν° μΈλ±μ€λ₯Ό μμ°¨μ μΌλ‘ μ€μΊνμ¬ λ μ½λ 건μλ₯Ό μΉ΄μ΄νΈ(MyISAM μμ§: λ©ν λ°μ΄ν°λ₯Ό μ¬μ©)
쑰건μ / GROUP BY λ λ€ μλ κ²½μ° μΏΌλ¦¬ μ΅μ νλ₯Ό ν΅ν΄ λ μ½λ 건μλ₯Ό μ΅μ ννμ¬ λΉ λ₯΄κ² κ°μ Έμ¬ μ μμ
**InnoDBμμ λ©ν λ°μ΄ν°λ₯Ό μ¬μ©νμ§ μλ μ΄μ : MVCC μ§μκ³Ό λ°μ΄ν° 무결μ±μ μν΄ νΈλμμ λ¨μλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκΈ° λλ¬Έ
μ‘°κ±΄μ΄ μλ κ²½μ°μ WHERE 쑰건μ μΌμΉνλ λ μ½λ μ‘°ννκΈ° λλ¬Έμ μΌλ°μ μΈ DBMSμ λμΌνκ² μ²λ¦¬
ORDER BY
κ°μ μ‘°νλ₯Ό νλ λ°μ μ λ ¬μ΄ νμνμ§ μκΈ° λλ¬Έμ λΆνμν μ±λ₯ μ νλ₯Ό μ λ°ν μ μμ(MySQL 8.0 λ―Έλ§)
MySQL 8.0 μ΄μλΆν°λ ORDER BYλ₯Ό μ¬μ©νλλΌλ μ΅ν°λ§μ΄μ μμ μ΅μ ν(무μ)νμ¬ μ±λ₯ μ νλ₯Ό λ°©μ§
JOIN()
μ‘°μΈ μμ μμ λλΌμ΄λΉ ν μ΄λΈμ μ½μ λλ μΈλ±μ€ νμ μμ μ ν λ²λ§ μννκ³ , λλ¦¬λΈ ν μ΄λΈμ μ½μ λλ μΈλ±μ€ νμ μμ μ λ μ½λ 건μλ§νΌ μννκ² λλ€. λλ¬Έμ JOIN μμμ μΈλ±μ€ μ 무μ λ°λΌ μ±λ₯μ ν¬κ² μν₯μ μ£Όκ² λλλ°, μ΄λ₯Ό μ΅ν°λ§μ΄μ κ° μ΅μ ννμ¬ μ±λ₯ μ νλ₯Ό λ°©μ§νλ μͺ½μΌλ‘ λμνλ€.
μμ μΏΌλ¦¬κ° μ‘΄μ¬ν λ μ΅ν°λ§μ΄μ λ μλμ κ°μ΄ λμνλ€.(무쑰건 μλμ κ°μ΄ λμνλ κ²μ μλμ§λ§ λλΆλΆμ κ²½μ° μλμ κ°μ΄ λμνλ€.)
O
O
μ΄λ ν μ΄λΈμ λλΌμ΄λΉμΌλ‘ μ ννλ μΈλ±μ€λ₯Ό μ΄μ©ν΄ λλ¦¬λΈ ν μ΄λΈ μ‘°νλ₯Ό λΉ λ₯΄κ² μ²λ¦¬νκΈ° λλ¬Έμ ν΅κ³ μ 보λ₯Ό μ΄μ©ν΄ μ μ ν μ ν
O
X
dept_emp ν μ΄λΈμ λλΌμ΄λΉ ν μ΄λΈλ‘ μ ννμ¬ ν μ΄λΈ ν μ€μΊμ ν λ²λ§ μνν μ μλλ‘ νκ³ , employees ν μ΄λΈμ λλ¦¬λΈ ν μ΄λΈλ‘ μ ννμ¬ μΈλ±μ€λ₯Ό μ΄μ©ν΄ μ‘°νν μ μλλ‘ ν¨
X
O
μμ λ°λλ‘ λμ
X
X
μ΄λ€ κ²½μ°μμλ λλ¦¬λΈ ν μ΄λΈμ ν μ€μΊμ΄ λ°μνκΈ° λλ¬Έμ λ μ½λ 건μκ° μ μ ν μ΄λΈμ λλΌμ΄λΉ ν μ΄λΈλ‘ μ ννκ² λλ€.
λν WHERE 쑰건과 λ§μ°¬κ°μ§λ‘ JOIN 쑰건μμμ λΉκ΅ λμ 컬λΌμ΄ μλ‘ λμΌν΄μΌ μΈλ±μ€λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μλ€.(μλ κ²½μ° ν μ΄λΈ ν μ€μΊμ΄ λ°μν μ μλ€.)
μ§μ° μ‘°μΈ(Delayed Join)
μ‘°μΈμ μ¬μ©νμ¬ GROUP BY, ORDER BY λ±μ μμ μ μνν λ, μΈλ±μ€λ₯Ό μ¬μ©νκ³ μλ€λ©΄ μ΅ν°λ§μ΄μ κ° μ΅μ μΌλ‘ μ²λ¦¬νκ³ μμ νλ₯ μ΄ λλ€. νμ§λ§ κ·Έλ μ§ μμ κ²½μ°μ λ¨Όμ μ‘°μΈμ μννκ³ GROUP BY, ORDER BY λ±μ μμ μ μννκ² λμ΄ μλμ λ¬Έμ κ° λ°μν μ μλ€.
μ‘°μΈμ ν μλ‘ λ μ½λ 건μμ λ μ½λ μ체μ ν¬κΈ°κ° λμ΄λ¨
GROUP BY, ORDER BY λ±μ μμ μ μνν λ λ μ½λ 건μκ° λ§κ±°λ λ μ½λ μ체μ ν¬κΈ°κ° ν¬λ€λ©΄ μ±λ₯ μ ν λ°μ
λλ¬Έμ, λ¨Όμ GROUP BY, ORDER BY λ±μ μμ μ μννκ³ μ‘°μΈμ μννλ κ²μ΄ μ’λ€.
μ§μ° μ‘°μΈ μ μ© μ
employees ν μ΄λΈμ λλΌμ΄λΉ ν μ΄λΈλ‘ μ ν
10001 ~ 13000 μ¬μ΄μ λ μ½λλ₯Ό μ‘°ν
salaries ν μ΄λΈκ³Ό μ‘°μΈ(μ‘°μΈ ν λ μ½λ 건μκ° μ¦κ°)
μ κ²°κ³Όλ₯Ό μμν μ΄λΈμ μ μ₯
GROUP BY μμ μννμ¬ μ΅λ 3000κ°μ λ μ½λλ‘ μ€μ΄λ¦
ORDER BY μμ μν
LIMIT 10μΌλ‘ μ΅μ’ κ²°κ³Ό λ°ν
μ§μ° μ‘°μΈ μ μ© ν
salaries ν μ΄λΈμμ 10001 ~ 13000 μ¬μ΄μ λ μ½λλ₯Ό μ‘°ν
GROUP BY / ORDER BY / LIMIT μμ μ μννμ¬ μ΅λ 10κ°μ λ μ½λλ‘ μ€μ΄λ¦
employees ν μ΄λΈκ³Ό μ‘°μΈ
μμ μμλ μ§μ° μ‘°μΈμ μ μ©νμ λ μ±λ₯μ΄ ν₯μλλ μμμ΄μ§λ§, μ§μ° μ‘°μΈμ μ μ©νμ λ μ±λ₯μ΄ μ νλλ κ²½μ°λ μ‘΄μ¬νλ€. μ§μ° μ‘°μΈμ μ μ©νμ¬ μ±λ₯ ν₯μμ κΈ°λνλ €λ©΄ μλμ 쑰건μ λ§μ‘±ν΄μΌ νλ€.
LEFT(OUTER) JOINμΈ κ²½μ°
λλΌμ΄λΉ ν μ΄λΈκ³Ό λλ¦¬λΈ ν μ΄λΈμ 1:1 λλ M:1 κ΄κ³μ¬μΌ νλ€.
INNER JOINμΈ κ²½μ°
λλΌμ΄λΉ ν μ΄λΈκ³Ό λλ¦¬λΈ ν μ΄λΈμ΄ 1:1 λλ M:1 κ΄κ³μ¬μΌ νλ€.
λλΌμ΄λΉ ν μ΄λΈμ μλ λ μ½λλ λλ¦¬λΈ ν μ΄λΈμ λͺ¨λ μ‘΄μ¬ν΄μΌ νλ€.
λν°λ΄ μ‘°μΈ(Lateral Join)
MySQL 8.0λΆν° μ§μνλ κΈ°λ₯μΌλ‘ νΉμ κ·Έλ£Ήλ³λ‘ μλΈμΏΌλ¦¬λ₯Ό μ€νν΄μ κ²°κ³Όλ₯Ό λ°ννλ κΈ°λ₯μ΄λ€.
μ¬κΈ°μ νΉμ§μ LATERAL ν€μλλ₯Ό μ¬μ©νμ¬ μλΈμΏΌλ¦¬λ₯Ό μ¬μ©νκ³ μλλ°, κ·Έ λ΄λΆμμ μΈλΆ 쿼리μ FROM μ μ μ μλ ν μ΄λΈμ 컬λΌμ μ°Έμ‘°ν μ μλ€λ κ²μ΄λ€. LATERAL ν€μλλ₯Ό κ°μ§ μλΈμΏΌλ¦¬λ μ‘°μΈ μμμ νμμλ‘ λ°λ¦¬κ³ , μΈλΆ 쿼리μ κ²°κ³Ό λ μ½λ λ¨μλ‘ μμ ν μ΄λΈμ΄ μμ±λμ΄ μ²λ¦¬λλ€.
ORDER BY
ORDER BYλ λ μ½λλ₯Ό μ΄λ€ μμλ‘ μ λ ¬νμ§ κ²°μ νλ μ μΈλ°, λͺ μνμ§ μμΌλ©΄ μλμ κ°μ΄ μ λ ¬λμ΄ λ°νλλ€.
μΈλ±μ€λ₯Ό μ¬μ©νμ¬ μ‘°ν λ κ²½μ°μ μΈλ±μ€μ μ λ ¬ μμλλ‘ λ°ν
InnoDBμμ ν ν μ΄λΈ μ€μΊμ ν κ²½μ° κΈ°λ³Έμ μΌλ‘ νλΌμ΄λ¨Έλ¦¬ ν€ μμλλ‘ λ°ν
SELECT μΏΌλ¦¬κ° μμ ν μ΄λΈμ μ¬μ©νμ¬ μ‘°νλμ κ²½μ°μ λ μ½λ μμλ₯Ό μμΈ‘νκΈ° μ΄λ €μ
ORDER BY 2
μ κ°μ΄ 컬λΌμ μλ²μ μ§μ νμ¬ μ λ ¬ν μλ μμ§λ§, μ΄λ κ°λ
μ±μ΄ λ¨μ΄μ§κ³ μ μ§λ³΄μκ° μ΄λ €μμ§κΈ° λλ¬Έμ μ¬μ©νμ§ μλ κ²μ΄ μ’λ€.
μ°Έκ³ μλ£
Last updated
Was this helpful?