λ΄μ© | μ€λͺ |
---|---|
νκ΅ μ΄μ μν λΆμ | νκ΅μ μ΄μ μν(μ΄μ, λ―Έμ΄μ)λ₯Ό νμ νμ¬ νΉμ μ§μμ΄λ μ κ΅μ μΌλ‘ μ΄μ μ€μΈ νκ΅μ μλ₯Ό λΆμν μ μμ΅λλ€. κ·Έλ¦¬κ³ μ΄ μ 보λ₯Ό ν΅ν΄μ νκ΅ μ΄μμ ν¨μ¨μ±μ νκ°νκ³ κ°μ ν μ μμ΅λλ€. |
μ€λ¦½ νν λ° μ€λ¦½ μΌμ λΆμ | νκ΅μ μ€λ¦½ νν(곡립, μ¬λ¦½ λ±)μ μ€λ¦½ μΌμλ₯Ό λΆμνμ¬ νΉμ μκΈ°λ μ νμ νκ΅ μ€λ¦½ λν₯μ νμ ν μ μμ΅λλ€. μ΄λ₯Ό μ΄μ©ν΄μ μΆκ°μ μΌλ‘ νκ΅λ₯Ό μ€λ¦½νκ±°λ κΈ°μ‘΄ νκ΅μ μ€λ¦½ ννλ₯Ό λ³νμν¬ λ μ μ©ν μ λ³΄λ‘ μ¬μ©λ μ μμ΅λλ€. |
μ§μλ³ νκ΅ λΆν¬ | μ§μꡬ μ½λμ νκ΅ μ 보λ₯Ό μ’ ν©νμ¬ κ° μ§μλ³ νκ΅ λΆν¬λ₯Ό μκ°ννκ±°λ λΆμν μ μμ΅λλ€. μ΄λ₯Ό μ΄μ©ν΄μ νΉμ μ§μμ κ΅μ‘ μΈνλΌλ₯Ό νκ°νκ³ νμν μμ€ λ° μμμ λ°°λΆνκ³ λ°°μΉν μ μμ΅λλ€. |
μλκ΅μ‘μ² κ΄ν λΆμ | κ° νκ΅κ° μν μλκ΅μ‘μ² μ½λλ₯Ό ν΅ν΄ κ΅μ‘μ² κ΄ν λ΄ νκ΅ μλ₯Ό νμ ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ΅μ‘μ²λ³ μμ λ°°λΆμ μ μ μ±μ νκ°νκ³ , κ΅μ‘μ²μ ν¨μ¨μ±μ ν₯μμν¬ μ μμ΅λλ€. |
μμΉ κΈ°λ° λΆμ | νκ΅ μλμ κ²½λ λ°μ΄ν°λ₯Ό νμ©νμ¬ μ§λ κΈ°λ°μ λΆμμ μ€νν μ μμ΅λλ€. κ·Έλμ νΉμ μ§μμ νκ΅μ μμΉλ₯Ό μκ°νν μλ μμΌλ©° νκ΅μ λν μ κ·Όμ±μ νκ°ν μ μμ΅λλ€. μ΄λ₯Ό μ΄μ©ν΄μ νκ΅μ μμΉ μ μ λ° μ κ·Όμ± κ°μ μ λμμ μ€ μ μμ΅λλ€. |

λ€μμ μ κ° μ μν λ°μ΄ν°λ² μ΄μ€μ ERDμ λλ€. μΆκ°μ μΌλ‘, μ΄νμλ κ΄κ³ λ°μ΄ν°μμλ μ€λͺ μ΄ λμ΄μκΈ° λλ¬Έμ κ°λ΅ν μ€λͺ λ§μ λ΄κ³ μμ΅λλ€. κ·Έλ¦Όμμλ κ° κ°μ²΄λ³λ‘ μμ±μ΄ κ·Έλ €μ Έμμ§ μμ§λ§ μλμ κ°μ μμ±λ€μ κ°μ§κ³ μμ΅λλ€.
κ°μ²΄ : νκ΅, μ£Όμ, μλκ΅μ‘μ², κ΅μ‘μ§μμ² κ΄κ³ : μμΉ, μμ, κ΄λ¦¬, μ§μ
- νκ΅μλ μλμ κ°μ μμ±μ΄ μμ΅λλ€. νκ΅ID, νκ΅μ΄λ¦, νκ΅μ ν, νκ΅μ€λ¦½μΌ, μ€λ¦½νν, μ΄μνν©, λ°μ΄ν°μμ±λ μ§, λ°μ΄ν°κ°±μ λ μ§
μ£Όμμλ μλμ κ°μ μμ±μ΄ μμ΅λλ€. μ§λ²μ£Όμ, λλ‘λͺ μ£Όμ, μλ, κ²½λ
μλκ΅μ‘μ²μλ μλμ κ°μ μμ±μ΄ μμ΅λλ€. μλκ΅μ‘μ²ID, μλκ΅μ‘μ²μ½λ, μλκ΅μ‘μ²λͺ
κ΅μ‘μ§μμ²μλ μλμ κ°μ μμ±μ΄ μμ΅λλ€. κ΅μ‘μ§μμ²ID, κ΅μ‘μ§μμ²μ½λ, κ΅μ‘μ§μμ²λͺ
λ°μ΄ν°λ² μ΄μ€λ μ΄ 4κ°μ ν μ΄λΈλ‘ ꡬμ±λμ΄ μμ΅λλ€.


-
νκ΅ ν μ΄λΈκ³Ό μ£Όμ ν μ΄λΈμ κ΄κ³ νκ΅ ν μ΄λΈμ βνκ΅IDβμ μ£Όμ ν μ΄λΈμ βνκ΅IDβκ° 1λ1 κ΄κ³λ₯Ό μ΄λ£¨κ³ μμ΅λλ€. μλνλ©΄, νλμ νκ΅λ νλμ μ£Όμλ₯Ό μ§λκ³ μκΈ° λλ¬Έμ λλ€.
-
νκ΅ ν μ΄λΈκ³Ό μλκ΅μ‘μ² ν μ΄λΈ
-
νκ΅ ν μ΄λΈμ βνκ΅IDβμ βμλκ΅μ‘μ²IDβκ° λ€λμΌ κ΄κ³λ₯Ό μ§λκ³ μμ΅λλ€. μλνλ©΄, μ¬λ¬ κ°μ νκ΅κ° νλμ μλκ΅μ‘μ²μ μν μ μκΈ° λλ¬Έμ λλ€. μ¦, μ¬λ¬ νκ΅κ° νλμ μλκ΅μ‘μ²μ μμλμ΄ μμ§λ§, κ° νκ΅λ νλμ μλκ΅μ‘μ²μλ§ μμλ μ μμ΅λλ€.
-
νκ΅ ν μ΄λΈμ βμλκ΅μ‘μ²IDβμ μλκ΅μ‘μ² ν μ΄λΈμ βμλκ΅μ‘μ²IDβμ΄ 1λ1 κ΄κ³λ₯Ό μ΄λ£¨κ³ μμ΅λλ€. μλνλ©΄, μλκ΅μ‘μ²IDλ μλκ΅μ‘μ²μ κΈ°λ³Έν€(Primary Key)μ΄κΈ° λλ¬Έμ νκ΅ ν μ΄λΈκ³Όμ κ΄κ³κ° 1λ1μΈ κ²μ λλ€.
-
νκ΅ ν μ΄λΈκ³Ό κ΅μ‘μ§μμ² ν μ΄λΈ κ΄κ³ νκ΅ ν μ΄λΈμ βκ΅μ‘μ§μμ²IDβμ κ΅μ‘μ§μμ² ν μ΄λΈμ βκ΅μ‘μ§μμ²IDβλ 1λ1 κ΄κ³λ₯Ό κ°μ§κ³ μμ΅λλ€. κ΅μ‘μ§μμ²IDλ κ΅μ‘μ§μμ²μ κΈ°λ³Έν€(Primary Key)μ΄κΈ° λλ¬Έμ νκ΅ ν μ΄λΈκ³Όμ κ΄κ³κ° 1λ1μΈ κ²μ λλ€.
-
μλκ΅μ‘μ² ν μ΄λΈκ³Ό κ΅μ‘μ§μμ² ν μ΄λΈ μλκ΅μ‘μ² ν μ΄λΈμ βμλκ΅μ‘μ²IDβκ° κ΅μ‘μ§μμ² ν μ΄λΈμ βκ΅μ‘μ§μμ²IDβκ° 1λ1 κ΄κ³λ‘ μ΄μ΄μ Έμμ΅λλ€. μλνλ©΄, βμλκ΅μ‘μ²IDβμ βκ΅μ‘μ§μμ²IDβκ° λ λ€ κ³ μ ν μΈλ±μ€ λ°μ΄ν°μ΄κΈ° λλ¬Έμ λλ€.
κ° νκ΅λ³ μ΄μνν© μΏΌλ¦¬
νκ΅ μ΄λ¦κ³Ό νκ΅ μ΄μ μνμ λν μ 보λ₯Ό μ¬μ©μμκ² μ 곡ν΄μ€λλ€. μ΄ μΏΌλ¦¬λ₯Ό μ μν μ΄μ λ μ°Ύκ³ μνλ νκ΅κ° νμ¬ μ΄μνκ³ μλμ§ μ΄μνκ³ μμ§ μλ μνμΈμ§λ₯Ό μ°μ μ μΌλ‘ 체ν¬νκΈ° μν΄μμ λλ€. ν΄λΉ 쿼리μ SQL μμ€λ λ€μκ³Ό κ°μ΅λλ€.
SELECT
[νκ΅ ν
μ΄λΈ].νκ΅μ΄λ¦,
[νκ΅ ν
μ΄λΈ].μ΄μνν©
FROM
[νκ΅ ν
μ΄λΈ];
μλκ΅μ‘μ²λ³ μ νλ³ μ΄λ±νκ΅ λ° μ€νκ΅ μμ λΆν¬ 쿼리
Β Βκ° μ§μμμλ μλκ΅μ‘μ²λ³ μ΄λ±νκ΅ λ° μ€νκ΅ μλ₯Ό κ³μ°ν©λλ€. κ·Έλ¦¬κ³ μ΄ μ λ³Όλ₯Ό νκ΅ μ€λ¦½ννλ‘ λ€μ ꡬλΆνμ¬ κ° μ§μλ³λ‘ μ΄λ€ μ νμ νκ΅κ° μΌλ§λ μλμ§ μ¬μ©μμκ² λ°μ΄ν°λ₯Ό μ 곡ν©λλ€. μλλ SQL μμ€μ΄λ©°, λ€μμ 쿼리 μ€ν νλ©΄μ λλ€.
SELECT
[μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²λͺ
],
SUM(IIF([νκ΅ ν
μ΄λΈ].[νκ΅μ ν] = 'μ΄λ±νκ΅', 1, 0)) AS μ΄λ±νκ΅μ,
SUM(IIF([νκ΅ ν
μ΄λΈ].[νκ΅μ ν] = 'μ€νκ΅', 1, 0)) AS μ€νκ΅μ,
SUM(IIF([νκ΅ ν
μ΄λΈ].[νκ΅μ ν] = 'μ΄λ±νκ΅' AND [νκ΅ ν
μ΄λΈ].[μ€λ¦½νν] = '곡립', 1, 0)) AS 곡립μ΄λ±νκ΅μ,
SUM(IIF([νκ΅ ν
μ΄λΈ].[νκ΅μ ν] = 'μ΄λ±νκ΅' AND [νκ΅ ν
μ΄λΈ].[μ€λ¦½νν] = 'μ¬λ¦½', 1, 0)) AS μ¬λ¦½μ΄λ±νκ΅μ,
SUM(IIF([νκ΅ ν
μ΄λΈ].[νκ΅μ ν] = 'μ€νκ΅' AND [νκ΅ ν
μ΄λΈ].[μ€λ¦½νν] = '곡립', 1, 0)) AS 곡립μ€νκ΅μ,
SUM(IIF([νκ΅ ν
μ΄λΈ].[νκ΅μ ν] = 'μ€νκ΅' AND [νκ΅ ν
μ΄λΈ].[μ€λ¦½νν] = 'μ¬λ¦½', 1, 0)) AS μ¬λ¦½μ€νκ΅μ
FROM
[νκ΅ ν
μ΄λΈ]
INNER JOIN
[μλκ΅μ‘μ² ν
μ΄λΈ]
ON
[νκ΅ ν
μ΄λΈ].[μλκ΅μ‘μ²ID] = [μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²ID]
GROUP BY
[μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²λͺ
];
μλκ΅μ‘μ²λ³ νκ΅ μμΈμ 보 쿼리
Β Βμ΄ μΏΌλ¦¬λ νΉμ μλκ΅μ‘μ²μ μν νκ΅μ μ νκ³Ό μ΄μ νν© κ·Έλ¦¬κ³ μ£Όμλ₯Ό μλ΄ν΄μ£Όλ μΏΌλ¦¬λ‘ SQL μμ€μ μ€ννλ©΄μ λ€μκ³Ό κ°μ΅λλ€.
SELECT
[μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²λͺ
],
[νκ΅ ν
μ΄λΈ].[νκ΅μ΄λ¦],
[νκ΅ ν
μ΄λΈ].[νκ΅μ ν],
[νκ΅ ν
μ΄λΈ].[μ΄μνν©],
[μ£Όμ ν
μ΄λΈ].[λλ‘λͺ
μ£Όμ],
[μ£Όμ ν
μ΄λΈ].[μ§λ²μ£Όμ]
FROM
([νκ΅ ν
μ΄λΈ]
INNER JOIN
[μ£Όμ ν
μ΄λΈ]
ON
[νκ΅ ν
μ΄λΈ].[νκ΅ID] = [μ£Όμ ν
μ΄λΈ].[νκ΅ID])
INNER JOIN
[μλκ΅μ‘μ² ν
μ΄λΈ]
ON
[νκ΅ ν
μ΄λΈ].[μλκ΅μ‘μ²ID] = [μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²ID]
WHERE
[νκ΅ ν
μ΄λΈ].[νκ΅μ ν] IN ('μ΄λ±νκ΅', 'μ€νκ΅')
ORDER BY
[μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²λͺ
],
[νκ΅ ν
μ΄λΈ].[νκ΅μ ν],
[νκ΅ ν
μ΄λΈ].[νκ΅μ΄λ¦];
μλκ΅μ‘μ²μ μν κ΅μ‘μ§μμ² λͺ©λ‘ 쿼리
Β Βμ΄ μΏΌλ¦¬λ κ° κ΅μ‘μ²μ μν κ΅μ‘μ§μμ² λͺ©λ‘μ 보μ¬μ€λλ€. κ·Έλ¦¬κ³ λ¨μν λͺ©λ‘μ 보μ¬μ£Όλ κ²μ΄ μλλΌ μ€λ³΅λ νλͺ©λ€μ μ κ±°ν΄μ μΆλ ₯ν΄μ£Όλ SQLμ λλ€.
SELECT DISTINCT
[μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²λͺ
],
[κ΅μ‘μ§μμ² ν
μ΄λΈ].[κ΅μ‘μ§μμ²λͺ
]
FROM
[μλκ΅μ‘μ² ν
μ΄λΈ]
INNER JOIN
[κ΅μ‘μ§μμ² ν
μ΄λΈ]
ON
[μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²μ½λ] = [κ΅μ‘μ§μμ² ν
μ΄λΈ].[μλκ΅μ‘μ²μ½λ]
GROUP BY
[μλκ΅μ‘μ² ν
μ΄λΈ].[μλκ΅μ‘μ²λͺ
],
[κ΅μ‘μ§μμ² ν
μ΄λΈ].[κ΅μ‘μ§μμ²λͺ
];
λλ¬Έμ, SQLμ μ€ννμ λ μλμ κ°μ΄ νλ©΄μ΄ μΆλ ₯λκΈ°κΉμ§ μ‘°κΈμ μκ°μ΄ 걸릴 μ μμ΅λλ€. μλνλ©΄, μ²λ¦¬νλ λ°μ΄ν°μ μμ΄ λ§κΈ° λλ¬Έμ λλ€. μ λ νκ· μ μΌλ‘ 30μ΄κ° 걸리λ 쿼리 μ€ν μκ°μ μ΅μ νλ₯Ό ν΅ν΄μ μ½ νκ· 20μ΄λ‘ μ€μμ΅λλ€.
5. νΉμ μμΉ νκ΅ μ€ μ΅κ·Ό μ€λ¦½λ νκ΅μ ν΄λΉ νκ΅κ° μν κ΅μ‘μ§μμ² μ 보 μ‘°ν
νΉμ μμΉ νκ΅ μ€ μ΅κ·Ό μ€λ¦½λ νκ΅μ ν΄λΉ νκ΅κ° μν κ΅μ‘μ§μμ² μ 보 μ‘°ν 쿼리
Β Βμ΄ μΏΌλ¦¬λ νΉμ μμΉ νκ΅ μ€ μ΅κ·Ό μ€λ¦½λ νκ΅μ λ°λλ‘ μ€λ¦½λμ§ μ€λ μκ°μ΄ μ§λ νκ΅μ λν μ£Όμμ κ΅μ‘μ§μμ²μ μ‘°ννλ 쿼리μ λλ€. μλλ SQLμμ€μ λλ€.
SELECT
[νκ΅ ν
μ΄λΈ].νκ΅μ΄λ¦,
[νκ΅ ν
μ΄λΈ].νκ΅μ€λ¦½μΌ,
[μ£Όμ ν
μ΄λΈ].λλ‘λͺ
μ£Όμ,
[κ΅μ‘μ§μμ² ν
μ΄λΈ].κ΅μ‘μ§μμ²λͺ
FROM
([κ΅μ‘μ§μμ² ν
μ΄λΈ]
INNER JOIN
[νκ΅ ν
μ΄λΈ]
ON
[κ΅μ‘μ§μμ² ν
μ΄λΈ].[κ΅μ‘μ§μμ²ID] = [νκ΅ ν
μ΄λΈ].[κ΅μ‘μ§μμ²ID])
INNER JOIN
[μ£Όμ ν
μ΄λΈ]
ON
[νκ΅ ν
μ΄λΈ].[νκ΅ID] = [μ£Όμ ν
μ΄λΈ].[νκ΅ID];
쿼리λ₯Ό μ€ννλ©΄ λ€μκ³Ό κ°μ΄ νκ΅μ΄λ¦, μ€λ¦½μΌ, λλ‘λͺ μ£Όμ, κ΅μ‘μ§μμ²λͺ μ΄ λνλκ² λ©λλ€.
νκ΅μ μμΈμ 보 μ‘°ν 쿼리
Β Βμ΄ μΏΌλ¦¬λ νκ΅μ μμΈμ 보λ₯Ό μ‘°ννλ ν μ΄λΈλ‘ νκ΅μ΄λ¦, νκ΅μ ν, νκ΅μ€λ¦½μΌ, μ€λ¦½νν, μ΄μνν©, μ§λ²μ£Όμ, λλ‘λͺ μ£Όμλ‘ κ΅¬μ±λμ΄ μμ΅λλ€. μλλ SQLμμ€μ 쿼리 μ€ν νλ©΄μ λλ€.
SELECT
[νκ΅ ν
μ΄λΈ].νκ΅μ΄λ¦,
[νκ΅ ν
μ΄λΈ].νκ΅μ ν,
[νκ΅ ν
μ΄λΈ].νκ΅μ€λ¦½μΌ,
[νκ΅ ν
μ΄λΈ].μ€λ¦½νν,
[νκ΅ ν
μ΄λΈ].μ΄μνν©,
[μ£Όμ ν
μ΄λΈ].μ§λ²μ£Όμ,
[μ£Όμ ν
μ΄λΈ].λλ‘λͺ
μ£Όμ
FROM
[νκ΅ ν
μ΄λΈ]
INNER JOIN
[μ£Όμ ν
μ΄λΈ]
ON
[νκ΅ ν
μ΄λΈ].[νκ΅ID] = [μ£Όμ ν
μ΄λΈ].[νκ΅ID];
νκ΅ ν μ΄λΈ νΌ λμμΈ
Β Β
νκ΅ ν μ΄λΈμ νΌμΌλ‘ νκ΅ μ΄λ¦, νκ΅ μ ν, νκ΅ μ€λ¦½μΌ, μ€λ¦½ νν, μ΄μνν©μ 보μ¬μ£Όκ³ μμ΅λλ€.
μ£Όμ ν μ΄λΈ νΌ λμμΈ
Β Β
μ£Όμ ν μ΄λΈ νΌμ λλ€. μλμ κ°μ΄ νκ΅IDμ μ§λ² μ£Όμ, λλ‘λͺ μ£Όμλ‘ κ΅¬μ±λμ΄ μμ΅λλ€.
μλκ΅μ‘μ² ν μ΄λΈ νΌ λμμΈ
Β Β
μλλ μ¬μ©μκ° λ³΄λ ν μ΄λΈ νΌμ λλ€. μλκ΅μ‘μ²μ½λμ μλκ΅μ‘μ²λͺ μΌλ‘ ꡬμ±λμ΄ μμ΅λλ€.
ꡬνν 쿼리 μ΄ 6κ°μ 쿼리λ₯Ό μλμ κ°μ΄ λ³΄κ³ μ νμμΌλ‘ ꡬμ±νμμΌλ©°, κ° μΏΌλ¦¬μ μ 보λ₯Ό μ¬μ©μκ° μ½κ² λ³Ό μ μλλ‘ κ΅¬ννμμ΅λλ€.
5. νΉμ μμΉ νκ΅ μ€ μ΅κ·Ό μ€λ¦½λ νκ΅μ ν΄λΉ νκ΅κ° μν κ΅μ‘μ§μμ² μ 보 μ‘°ν λ³΄κ³ μ
νΉμ μμΉ νκ΅ μ€ μ΅κ·Ό μ€λ¦½λ νκ΅μ ν΄λΉ νκ΅κ° μν κ΅μ‘μ§μμ² μ 보 μ‘°ν λ³΄κ³ μ μ¬μ§
Β Β