SQL λ¬Έλ²μ ν¬κ² 3κ°μ§μ μ’ λ₯λ‘ λλμ΄μ§λ©°, μ’ λ₯λ§λ€ μ μλ μλμ κ°λ€.
SQLμ λμλ¬Έμλ₯Ό κ°λ¦¬μ§ μλλ€. (λ¨, μλ²μ νκ²½μ΄λ DBMS μ’ λ₯μ λ°λΌ λ°μ΄ν°λ² μ΄μ€ λλ νλλͺ μ λν΄ λμλ¬Έμλ₯Ό ꡬλΆνκΈ°λ νλ€.)
SQL λͺ λ Ήμ λ°λμ μΈλ―Έμ½λ‘ (;)μΌλ‘ λλμΌ νλ€.(μλ° μΈμ΄μ λμΌνλ€.)
κ³ μ μ κ°μ νλ°μ΄ν('')λ‘ κ°μΈμ€λ€.
SELECT [DISTINCT | ALL] {* | column1, column2 [AS [alias]] | expr}
FROM table_name
WHERE condition
ORDER BY column [ASC | DESC];
*
: λͺ¨λ 컬λΌμ μ‘°ννλ€.NULL κ°μ μ΄λ€ νΉμ ν κ°μΌλ‘ μΉνν λ μ¬μ©
μΉνν μ μλ κ°μ ννλ μ«μν, λ¬Έμν, λ μν λͺ¨λ κ°λ₯
NULL κ°μ μ°μ°μ λμμ΄ λμ§ μλλ€ββ(μ€μ)
[Syntax]
IFNULL(expr1, expr2) -> exprμ 'μ'μ΄λ μλ―ΈμΈ expressionμ μ½μ
[μμ 1]
[μμ 2]
Duplicate Values(μ€λ³΅ ν μ κ±°νκΈ°)
1. μΌλ° Queryλ ALL μ μ¬μ©νκΈ° λλ¬Έμ μ€λ³΅λ νμ΄ μΆλ ₯λλ€.(DEFAULT)
2. DISTINCT λ₯Ό μ¬μ©νλ©΄ μ€λ³΅λ νμ κ°μ μ κ±°νλ€.
3. DISTINCT λ SELECT λ°λ‘ λ€μ κΈ°μ νλ€.
(μμΈμ μΌλ‘ νΉμ 컬λΌλ§ μ€λ³΅μ κ±°λ₯Ό νλ €λ©΄ DISTINCT columnλͺ
μ μ¬μ©νλ©΄ λλ€.)
4. DISTINCT λ€μμ λνλλ columnμ λͺ¨λ DISTINCT μ μν₯μ λ°λλ€.
[μμ 1] μ°λ¦¬ νμ¬μ μ¬μλ€μ μ§λ¬΄μ λͺ¨λ μΆλ ₯νμμ€.
[μμ 2] μ°λ¦¬ νμ¬λ λͺ κ°μ§ μ’ λ₯μ μΌμ ν©λκΉ?
μ¬μ©μλ€μ΄ μμ μ΄ μνλ μλ£λ§μ κ²μνκΈ° μν΄μ
Syntax
SELECT column...
FROM table_name
WHERE conditions;
WHERE μ μ μ¬μ©νμ§ μμΌλ©΄ FROM μ μ λͺ μλ tableμ λͺ¨λ ROWλ₯Ό μ‘°ννκ² λλ€.
tableλ΄μ νΉμ rowλ§ μ ννκ³ μΆμ λ WHERE μ μ 쑰건μμ μ¬μ©νλ€.
MySQL Server λ tableμ rowλ₯Ό νλμ© μ½μ΄ WHERE μ μ 쑰건μμ νκ°νμ¬ TRUEλ‘ λ§μ‘±νλ κ²λ§μ μ ννλ€.
conditionμ νκ°ν κ²°κ³Όλ TRUE, FALSE, NULL μ€μ νλμ΄λ€.
condition λ΄μμ character μ date κ°μ literalμ μμ λ°μ΄ν('') λ₯Ό μ¬μ©νκ³ , NUMBER κ°μ κ·Έλλ‘ μ¬μ©νλ€.
condition μμ μ¬μ©νλ character κ°μ λμλ¬Έμλ₯Ό ꡬλ³νμ§ μλλ€.
1) WHERE ename = 'JAMES';
2) WHERE ename = 'james';
λΉκ΅μ°μ°μ: <, >, <=, >=, =, !=, <>(κ°μ§ μλ€.)
λ
Όλ¦¬μ°μ°μ: AND(&&), OR(||), NOT(!)
μμ λ₯Ό ν΅ν΄ λΉκ΅μ°μ°μλ₯Ό μ¬μ©ν΄λ³΄μ.
[μμ 1] μ§μκ° CLERK μΈ μ¬μμ μ΄λ¦κ³Ό μ§λ¬΄ λ° λΆμλ²νΈλ₯Ό μΆλ ₯νμμ€.
[μμ 2] μ¬λ²μ΄ 7934μΈ μ¬μμ μ΄λ¦, μ§λ¬΄, λΆμλ²νΈλ₯Ό μΆλ ₯νμμ€.
[μμ 3] μ μ¬μΌμ΄ 1981λ 12μ 3μΌμΈ μ¬μμ μ¬λ², μ΄λ¦, μ§λ¬΄, μ μ¬μΌμλ₯Ό μΆλ ₯νμμ€.
[μμ 4] μ΄λ¦μ΄ JAMESμΈ μ¬μμ μ¬λ² λ° μ΄λ¦μ μΆλ ₯νμμ€.
[μμ 5] λΆμλ²νΈκ° 30λ²μΈ λΆμμ μ΄λ¦μ μΆλ ₯νμμ€.
[μμ 6] κΈμ¬κ° $1500 μ΄μμΈ μ¬μμ μ΄λ¦κ³Ό κΈμ¬λ₯Ό μΆλ ₯νμμ€.
[μμ 7] 1983λ μ΄νμ μ μ¬ν μ¬μμ μ¬λ², μ΄λ¦, μ μ¬μΌμ μΆλ ₯νμμ€.
[μμ 8] κΈμ¬κ° 보λμ€ μ΄νμΈ μ¬μμ μ΄λ¦ κΈμ¬ λ° λ³΄λμ€λ₯Ό μΆλ ₯νμμ€.
[μμ 9] 10λ² λΆμμ λͺ¨λ μ¬λλ€μκ² κΈμ¬μ 13%λ₯Ό 보λμ€λ‘ μ§κΈνκΈ°λ‘ νλ€. μ΄λ¦, κΈμ¬, 보λμ€ κΈμ‘, λΆμλ²νΈλ₯Ό μΆλ ₯νμμ€.
[μμ 10] 30λ² λΆμμ μ°λ΄μ κ³μ°νμ¬ μ΄λ¦, λΆμλ²νΈ, κΈμ¬, μ°λ΄μ μΆλ ₯νμμ€. λ¨ μ°λ§μ κΈμ¬μ 150%λ₯Ό 보λμ€λ‘ μ§κΈνλ€.
[μμ 11] λΆμλ²νΈκ° 20λ²μΈ λΆμμ μκ°λΉ μκΈμ κ³μ°νμμ€. λ¨, 1λ¬μ 근무μΌμλ 12μΌμ΄κ³ 1μΌ κ·Όλ¬΄μκ°μ 5μκ°μ΄λ€. μΆλ ₯μμμ μ΄λ¦, κΈμ¬, μκ°λΉ μκΈμ μΆλ ₯νμμ€.
[μμ 12] λͺ¨λ μ¬μμ μ€μλ Ήμ‘μ κ³μ°νμ¬ μΆλ ₯νμμ€. (μ€μλ Ήμ‘μ κΈμ¬μ λν΄ 10%μ μΈκΈμ λΊ κΈμ‘)
μμ λ₯Ό ν΅ν΄ λ Όλ¦¬μ°μ°μλ₯Ό μ¬μ©ν΄λ³΄μ.
[μμ 1] μ¬μν μ΄λΈμμ κΈμ¬κ° 1000λΆμ΄μμ΄κ³ , λΆμλ²νΈκ° 30λ²μΈ μ¬μμ μ¬μλ²νΈ, μ΄λ¦, μ§λ¬΄, κΈμ¬, λΆμλ²νΈλ₯Ό μΆλ ₯νμμ€.
[μμ 2] μ¬μν μ΄λΈμμ κΈμ¬κ° λΆμ΄μμ΄κ±°λ λ΄λΉμ λ¬΄κ° λ§€λμ μΈ μ¬μμ μ λ³΄μ€ μ¬μλ²νΈ μ΄λ¦ κΈμ¬ μ 무λ₯Ό μΆλ ₯νμμ€.
BETWEEN A AND B
λ§μ°¬κ°μ§λ‘ μμ λ₯Ό ν΅ν΄ λ°°μ보μ.
[μμ 1] μ¬μν μ΄λΈμμ μκΈμ΄ 1300λΆμμ 1500λΆκΉμ§μΈ μ¬μλ€μ μ΄λ¦, μ§λ¬΄, μκΈμ μΆλ ₯νμμ€.
[μμ 2] μ μ¬μΌμκ° 1982λ λμ μ μ¬ν μ¬μμ μ΄λ¦, μ μ¬μΌμλ₯Ό μΆλ ₯νμμ€.
IN
λ§μ°¬κ°μ§λ‘ μμ λ₯Ό ν΅ν΄ λ°°μ보μ.
[μμ 1] μ¬μν μ΄λΈμμ μ λ¬΄κ° νμ¬μ, 맀λμ , λΆμκ°μΈ μ¬μμ μ΄λ¦, μ 무λ₯Ό μΆλ ₯νμμ€.
[μμ 2] BOSTON μ΄κ±°λ DALLAS μ μμΉν λΆμλ₯Ό μΆλ ₯νμμ€.
[μμ 3] DALLAS μ 20λ² λΆμ λλ CHICAGOμ 30λ² λΆμμ λͺ¨λ μ 보λ₯Ό μΆλ ₯νμμ€.
LIKE
μμ λ₯Ό ν΅ν΄ λ°°μ보μ.
[μμ 1] Aλ‘ μμνλ λΆμλͺ μ μΆλ ₯νμμ€.
[μμ 2] Aλ‘ μμνλ μ¬μμ μ΄λ¦μ μΆλ ₯νμμ€.
[μμ 3] μ¬λ²μ΄ 8λ²μΌλ‘ λλλ μ¬μμ λ²νΈμ μ΄λ¦μ μΆλ ₯νμμ€.
[μμ 3] μ¬μν μ΄λΈμμ μ¬μμ μ΄λ¦ μ€ MILLER λΌλ μ¬μμ μ΄λ¦ λ§μ§λ§ λ¬Έμλ₯Ό (_)μμΌλμΉ΄λλ¬Έμλ₯Ό μ¬μ©νμ¬ μΆλ ₯νμμ€.
IS NULL/ IS NOT NULL
μμ λ₯Ό ν΅ν΄ λ°°μ보μ.
[μμ 1] μ¬μν μ΄λΈμμ comm(보λμ€)μ΄ NULLμΈ μ¬μμ μ΄λ¦ λ° commμ μΆλ ₯νμμ€. (λ¨, IS NULL μ°μ°μλ₯Ό μ¬μ©νμμ€.)
[μμ 2] μ¬μν μ΄λΈμμ comm(보λμ€) μ§κΈ λμμΈ μ¬μμ μ΄λ¦κ³Ό 보λμ€λ₯Ό μΆλ ₯νμμ€.
[μμ 3] μ¬μν μ΄λΈμμ mgr μ΄ NULL μΈ μ¬μμ μΆλ ₯νμμ€.
κΈ°λ³Έμ μΌλ‘ λ°μ΄ν°λ μ λ ¬λμ§ μλλ€.
κ°μ 쿼리λ₯Ό μνν λλ§λ€ κ²°κ³Όκ° λ€λ₯΄κ² λμ¬ μ μλ€.
λ³μΉμ μ λ ¬μ μν₯μ μ£Όμ§ μλλ€.
Syntax
SELECT column_list
FROM table_name
[WHERE conditions]
[ORDER BY column[, column] {ASC | DESC};
νΉμ§
1) κΈ°λ³Έμ μΌλ‘ μ€λ¦μ°¨μμ λ ¬(ASC)νλ€.
- ( 1 --> 999) μ«μμΈκ²½μ°
- ( --> ) λ μ§μΈκ²½μ° μλ μ΅κ·Ό
- ( , ) λ¬ΈμμΈκ²¨μ° μνλ²³μμ μ λμ½λμ
2) NULL μ μ€λ¦μ°¨μμΌ κ²½μ°λ μ μΌ μ²μμ, λ΄λ¦Όμ°¨μμΈ κ²½μ°μλ μ μΌ λ§μ§λ§μ μΆλ ₯
ORDER BY μ μ μ λ ¬μ κΈ°μ€μ΄ λλ column μ μ¬λ¬ κ° μ§μ ν μ μλ€. 첫λ²μ§Έ column μΌλ‘ μ λ ¬ν λ€μ, κ·Έ column κ°μ΄ κ°μ row λ€μ λν΄μλ λ λ²μ§Έ column κ°μΌλ‘ μ λ ¬νλ€.
μ€λ¦μ°¨μ(ASC) μ λ ¬μ΄ κΈ°λ³Έμ΄λ©°, λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νκ³ μ ν λμλ DESCλ₯Ό μ¬μ©νλ€.
ORDER BY μ μ column μ΄λ¦ λμ positional notation μ μ¬μ©ν μλ μλ€. Position number λ SELECT μ μμμ column
μμλ₯Ό μλ―Ένλ€.
μμ λ₯Ό ν΅ν΄ λ°°μ보μ.
[μμ 1] μ μ¬μΌμ μμΌλ‘ μ λ ¬νμ¬ μ¬μλ²νΈ, μ΄λ¦, μ μ¬μΌμλ₯Ό μΆλ ₯νμμ€.
[μμ 2] λΆμλ²νΈκ° 20λ²μΈ μ¬μμ μ¬λ², μ΄λ¦, κΈμ¬, μ°λ΄μ μ€λ¦μ°¨μμΌλ‘ μΆλ ₯νμμ€.
[μμ 3] λΆμλ²νΈλ‘ μ λ ¬ν ν, λΆμλ²νΈκ° κ°μ κ²½μ° κΈμ¬κ° λ§μ μμΌλ‘ μ¬μλ²νΈ, μ΄λ¦, μ§λ¬΄, λΆμλ²νΈ, κΈμ¬λ₯Ό μΆλ ₯νμμ€.
SELECT
https://github.com/swacademy/MySQL/blob/main/2.%20Basic%20SELECT.pdf
SQL μ΄λ?