
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฌด์์ธ๊ฐ์?
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ ๋ฐ ์ด๋ก ๊ตฌ์ฑ๋๋ ํ ์ด๋ธ๋ก ์๊ฐํ๋ ๋ฐ์ดํฐ ์ปฌ๋ ์ ์ ๋๋ค. ๋ฐ์ดํฐ๋ ์คํ๋ ๋์ํธ์ ์ ์ฌํ๊ฒ ์ ์ฅ๋๋๋ฐ, ์ด์ ๋ฐ์ดํฐ ์์ฑ์ ๋ํ๋ด๊ณ ํ์ ๋ฐ์ดํฐ์ ๋์ ์ํฐํฐ ๋๋ ๊ฐ์ฒด๋ฅผ ์ค๋ช ํฉ๋๋ค. ๋๋ถ๋ถ์ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ํธ ์์ฉ์ ์ํด ๊ตฌ์กฐ์ ์ฟผ๋ฆฌ ์ธ์ด(SQL)๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ด๋ ๊ฒ ๋ช ๋ช ๋์์ต๋๋ค. ํ ์ด๋ธ ๊ฐ์ ๋ฐ์ดํฐ ๊ด๊ณ๋ฅผ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
์๋ฅผ ๋ค์ด ์ ํ ํ ์ด๋ธ์๋ ์ ํ ์ด๋ฆ, ์ ํ, ๋น์ฉ ๋ฑ๊ณผ ๊ฐ์ ์ด์ด ์๊ณ ํ์๋ ๊ฐ๋ณ ์ ํ์ ๋ํ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค. ๊ณ ๊ฐ ํ ์ด๋ธ์๋ ๊ณ ๊ฐ ์ด๋ฆ ๋ฐ ์ฐ๋ฝ์ฒ ์ธ๋ถ ์ ๋ณด๊ฐ ํฌํจ๋ ์ด์ด ์์ต๋๋ค. ๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณ ๊ฐ์ด ๊ตฌ๋งคํ ์ ํ๊ณผ ์ฐ๊ฒฐํ๋ ์ธ ๋ฒ์งธ ํ ์ด๋ธ์ ์์ฑํ ์ ์์ต๋๋ค.
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ตฌํ ๋ฐ ์์ ์ด ๋ ผ๋ฆฌ์ ์ผ๋ก ์ง๊ด์ ์ด๊ธฐ ๋๋ฌธ์ ๋ค์ํ ์ฐ์ ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์์ธก ๊ฐ๋ฅํ๊ฒ ๊ตฌ์ฑํ ์ ์๋๋ก ์ ์ ์๋ ์คํค๋ง ๋ฐ ๊ด๊ณํ ํ ์ด๋ธ์ ์ ๊ณตํฉ๋๋ค. ์ ์ฝ ์กฐ๊ฑด์ด ์ ๋ ฅ๋ ๋ฐ์ดํฐ์ ๊ท์น์ ์ ์ฉํ๋ฏ๋ก ์ ํํ ๋ฐ์ดํฐ ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค. ์์์ฑ, ์ผ๊ด์ฑ, ๊ฒฉ๋ฆฌ์ฑ, ๋ด๊ตฌ์ฑ(ACID)์ ๋ค ๊ฐ์ง ์์ฑ ์ธํธ๊ฐ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ์์์ฑ์ ์์ ์ํ์ค(ํธ๋์ญ์ )์ ๋ชจ๋ ๋ถ๋ถ์ด ์๋ฃ๋๊ฑฐ๋ ์ ํ ์๋ฃ๋์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ์ผ๊ด์ฑ์ ํธ๋์ญ์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ ์ ํจํ ์ํ์์ ๋ค๋ฅธ ์ ํจํ ์ํ๋ก ๋ณ๊ฒฝํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ๊ฒฉ๋ฆฌ์ฑ์ ํธ๋์ญ์ ์ด ์๋ก ๊ฐ์ญํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
- ๋ด๊ตฌ์ฑ์ ํธ๋์ญ์ ์ด ์ปค๋ฐ๋๋ฉด ์์คํ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์๊ตฌ์ ์ผ๋ก ์ ์ฅ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
๋ชจ๋ ์์ฐจ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋กค๋ฐฑ๋๋๋ก ํ ์ ์์ต๋๋ค.
๊ณ ์ฑ๋ฅ
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ๊ท๋ชจ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. ๋ค์ํ ์ธ๋ฑ์ฑ ๋ฐ ์ต์ ํ ๊ธฐ์ ์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ๋๋ผ๋ ๋น ๋ฅธ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ๋ณด์ฅํฉ๋๋ค. ๋ณต์ , ํด๋ฌ์คํฐ๋ง ๋ฐ ์ฅ์ ์กฐ์น ๋ฉ์ปค๋์ฆ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ๊ณ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ ์๊ฐ์ ์ ์งํ๊ณ ์๊ธฐ์น ์์ ์ด์ ์ค๋จ์ผ๋ก ์ธํ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ฌ์ฉ ํธ์์ฑ
SQL์ ์ต์ํ์ ๋ณ๊ฒฝ์ผ๋ก ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์ ์ฌ์ฉ๋๋ ํ์คํ๋ ์ธ์ด์ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์๋ก ๋ค๋ฅธ SQL ๊ธฐ๋ฐ ์์คํ ๊ฐ์ ๊ฐํธํ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค. SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋น์ฆ๋์ค ์ธํ ๋ฆฌ์ ์ค(BI) ํ๋ซํผ, ๋ถ์ ์ํํธ์จ์ด, ๋ณด๊ณ ๋๊ตฌ๋ฅผ ๋น๋กฏํ ๋ค์ํ ๋ฐ์ดํฐ ๋๊ตฌ์๋ ํธํ๋ฉ๋๋ค. ํ๋ฐํ ๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ์์ ๊ด๋ฒ์ํ ๋ฆฌ์์ค, ๋๊ตฌ ๋ฐ ์ง์์ ์ด์ฉํ ์ ์์ต๋๋ค.
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ค ๋ฐฉ์์ผ๋ก ์๋ํ๋์?
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง ์์ง๊ณผ ํจ๊ป ์๋ํฉ๋๋ค. ์คํ ๋ฆฌ์ง ์์ง์ ๋์คํฌ์ ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง๋ฅผ ๋ด๋นํฉ๋๋ค. SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง๋ค ๋ค๋ฅธ ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด MySQL์ InnoDB ๋ฐ MyISAM์ ์ฌ์ฉํฉ๋๋ค. ์คํ ๋ฆฌ์ง ์์ง์ ๋ฉํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ถ์ํํ๋ฏ๋ก ๋ฌผ๋ฆฌ์ ์คํ ๋ฆฌ์ง์ ๋ํด ๊ฑฑ์ ํ ํ์ ์์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์คํ ๋ฆฌ์ง ์์ง ์ ํ์ ์ฑ๋ฅ, ํธ๋์ญ์ ์ฒ๋ฆฌ ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฅ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์คํค๋ง
์คํค๋ง๋ ํ ์ด๋ธ, ํ ์ด๋ธ ๊ด๊ณ, ์ ์ฝ ์กฐ๊ฑด์ ๋น๋กฏํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ๋ํ ๋ธ๋ฃจํ๋ฆฐํธ ์ญํ ์ ํฉ๋๋ค. SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ํ(๋ ์ฝ๋)๊ณผ ์ด(ํ๋)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ ์ด์ ํน์ ๋ฐ์ดํฐ ์ ํ(์: ์ ์, ํ ์คํธ, ๋ ์ง)์ ๊ฐ์ง๋ฉฐ ํน์ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ๊ฐ ํ์ ๋จ์ผ ๋ ์ฝ๋๋ฅผ ๋ํ๋ ๋๋ค.
SQL ์ธ์ด
SQL์ ๋ชจ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ๊ณผ ์ํธ ์์ฉํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ตฌ์กฐ์ ์ฟผ๋ฆฌ ์ธ์ด์ ๋๋ค. ์ ํ, ์ฝ์ , ์ ๋ฐ์ดํธ, ์ญ์ ์ ๊ฐ์ ๋ช ๋ น์ ํ ์ด๋ธ ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์์ฑ, ๋ณ๊ฒฝ, ์ ์์ ๊ฐ์ ๋ช ๋ น์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ฑฐ๋ ์์ ํฉ๋๋ค.
๊ธฐํ ๋ฉ์ปค๋์ฆ
์คํ ๋ฆฌ์ง ์์ง์ ๋ค์ํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ธ๋ฑ์ค๋ ์คํ ๋ฆฌ์ง ์์ง์ด ๋ฐ์ดํฐ ๊ฒ์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ํน์ ์กฐํ ํ ์ด๋ธ์ ๋๋ค. ์ธ๋ฑ์ค๋ ์ด ๋๋ ์ด ์ธํธ์ ์์ฑ๋๋ฏ๋ก ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ๊ฒ์ํ์ง ์๊ณ ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.

์คํค๋ง, ์ธ์คํด์ค
<!--br {mso-data-placement:same-cell;}-->
์ฉ์ด (์๋ฌธ)ํ๊ธ ๋ช ์นญ์ ์์์ (ํ์ ํ ์ด๋ธ)| Relation | ๋ฆด๋ ์ด์ | - ํ ์ด๋ธ(ํ) ์์ฒด๋ฅผ ์๋ฏธ - ์ํ์ ์งํฉ๋ก ์ '๊ด๊ณ(relation)'์์ ์ ๋ | ํ์ ํ ์ด๋ธ ์ ์ฒด |
| Attribute | ์ดํธ๋ฆฌ๋ทฐํธ | - ๋ฆด๋ ์ด์ ์ ์ด(์ปฌ๋ผ) - ๊ฐ ์ด์ด ๊ฐ์ง๋ ๋ฐ์ดํฐ์ ์์ฑ | ํ๋ฒ, ์ด๋ฆ, ํ๊ณผ |
| Tuple | ํํ | - ๋ฆด๋ ์ด์ ์ ํ(๋ ์ฝ๋) - ํ๋์ ์ํฐํฐ ์ธ์คํด์ค | (2023001, ๊น์ฒ ์, ์ปด๊ณต) |
| Domain | ๋๋ฉ์ธ | - ๊ฐ ์ดํธ๋ฆฌ๋ทฐํธ๊ฐ ๊ฐ์ง ์ ์๋ ๊ฐ์ ์งํฉ(ํ์ฉ ๋ฒ์) - ์๋ฃํ + ์ ์ฝ์กฐ๊ฑด | ํ๋ฒ: 8์๋ฆฌ ์ซ์ ๋ฌธ์์ด ์ด๋ฆ: 20์ ์ด๋ด ํ๊ธ |
| Degree | ์ฐจ์ | - ๋ฆด๋ ์ด์ ์ ํฌํจ๋ ์ดํธ๋ฆฌ๋ทฐํธ(์ด)์ ๊ฐ์ | 3 (ํ๋ฒ, ์ด๋ฆ, ํ๊ณผ) |
| Cardinality | ์นด๋๋๋ฆฌํฐ | - ๋ฆด๋ ์ด์ ์ ํฌํจ๋ ํํ(ํ)์ ๊ฐ์ | 150 (ํ์ 150๋ช ) |
| Schema | ์คํค๋ง | - ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ(ํ ์ด๋ธ ์ ์, ์ ์ฝ์กฐ๊ฑด ๋ฑ)๋ฅผ ๊ธฐ์ ํ ์ค๊ณ๋ | ```CREATE:disable-run |
ํ ์ค ์์ฝ
- ๋ฆด๋ ์ด์ = ํ ์ด๋ธ
- ์ดํธ๋ฆฌ๋ทฐํธ = ์ด
- ํํ = ํ
- ๋๋ฉ์ธ = ์ด์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ ๋ฒ์
- ์ฐจ์ = ์ด ๊ฐ์
- ์นด๋๋๋ฆฌํฐ = ํ ๊ฐ์
- ์คํค๋ง = ํ ์ด๋ธ ๊ตฌ์กฐ ์ ์
2๏ธโฃ ์๋ธ์ฟผ๋ฆฌ ์ข ๋ฅ
- ๋จ์ผ๊ฐ ์๋ธ์ฟผ๋ฆฌ(Scalar Subquery)
- ๊ฒฐ๊ณผ๊ฐ ํ ํ, ํ ์ด
- ์: = (SELECT ...)
- ๋ค์ค๊ฐ ์๋ธ์ฟผ๋ฆฌ(Multi-row Subquery)
- ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฌ ํ
- ์: IN (SELECT ...)
- ๋ค์ค์ด ์๋ธ์ฟผ๋ฆฌ(Multi-column Subquery)
- ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฌ ์ด
- ์: (col1, col2) IN (SELECT col1, col2 FROM ...)
โ WHERE์ ์๋ธ์ฟผ๋ฆฌ
- ์กฐ๊ฑด์ผ๋ก ๋ค๋ฅธ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ
- ๋จ์ผ๊ฐ(scalar) ๋๋ ๋ค์ค๊ฐ(multi-row) ๋ชจ๋ ๊ฐ๋ฅ
์์:
โก FROM์ ์๋ธ์ฟผ๋ฆฌ (Inline View / Derived Table)
- ์์ ํ ์ด๋ธ์ฒ๋ผ ์ฌ์ฉ
- SELECT์์ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์กฐํ ๊ฐ๋ฅ
์์:
โข SELECT์ ์๋ธ์ฟผ๋ฆฌ
- ์ปฌ๋ผ ๊ฐ์ผ๋ก ๋ค๋ฅธ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ฌ ๋
- ๋ณดํต ๋จ์ผ๊ฐ(scalar) ์๋ธ์ฟผ๋ฆฌ ์ฌ์ฉ
์์:
โฃ HAVING์ ์๋ธ์ฟผ๋ฆฌ
- ์ง๊ณ ์กฐ๊ฑด์์ ์๋ธ์ฟผ๋ฆฌ ์ฌ์ฉ ๊ฐ๋ฅ
SELECT team_id, COUNT(*) AS player_count
FROM player
GROUP BY team_id
HAVING COUNT(*) > (SELECT AVG(count)
FROM (SELECT COUNT(*) AS count
FROM player
GROUP BY team_id) AS sub);
์ฃผ์ SQL ํค์๋ ์ ๋ฆฌํ
| ํค์๋ | ์๋ฏธ | ์์ |
| SELECT | ๋ฐ์ดํฐ ์กฐํ | SELECT name |
| FROM | ํ ์ด๋ธ ์ง์ | FROM player |
| WHERE | ์กฐ๊ฑด ํํฐ | WHERE team_id = 'K02' |
| JOIN ... ON | ํ ์ด๋ธ ์ฐ๊ฒฐ | JOIN team ON ... |
| AND / OR | ์กฐ๊ฑด ๊ฒฐํฉ | AND height > 170 |
| IN (...) | ์ฌ๋ฌ ๊ฐ ํฌํจ | IN ('K02', 'K10') |
| BETWEEN a AND b | ๋ฒ์ ์กฐ๊ฑด | BETWEEN 170 AND 180 |
| LIKE '๊ณ %' | ํจํด ๋งค์นญ | ์ฑ์ด ๊ณ ์จ |
| IS NULL | ๊ฐ์ด ์์ | position IS NULL |
| COALESCE(a, b) | NULL์ด๋ฉด b ๋ฐํ | COALESCE(height, 0) |
| ` | ` | |
| ::TEXT | ํ๋ณํ (์ซ์→๋ฌธ์) | 175::TEXT |
| CASE ... END | ์กฐ๊ฑด๋ฌธ | CASE WHEN ... THEN ... |
| ROUND(x, 2) | ์์์ 2์๋ฆฌ | ROUND(22.222, 2) |
| ORDER BY | ์ ๋ ฌ | ORDER BY height DESC |
| DESC | ๋ด๋ฆผ์ฐจ์ | ํฐ → ์๊ฒ |
| ASC | ์ค๋ฆ์ฐจ์ | ์ → ํฌ๊ฒ (๊ธฐ๋ณธ) |
| NULLS LAST | NULL์ ๋งจ ๋ค |
'Project ESG+AI > Tech Basics' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 17์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.31 |
|---|---|
| 16์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.30 |
| 14์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.28 |
| 13์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.27 |
| 12์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.24 |