๐๐๐ฌ๐ก๐๐จ๐๐ซ๐
/
๐๐ช๐ฅ
Search
Share
๐๐ช๐ฅ
HackerRanck ๋ฌธ์ ํ์ด
Solve Programming Questions | HackerRank
A special-purpose language designed for managing data held in a relational database.
SQL
Search
๊ฐ๋
10
Basic
3
DISTINCT
www.notion.so
LIKE
LEFT, RIGHT
www.notion.so
CEIL
www.notion.so
REPLACE
www.notion.so
COUNT
extbrain.tistory.com
GROUP BY
extbrain.tistory.com
ABS
์ ๋๊ฐ
POW, SQRT
N ์น๊ณผ ๋ฃจํธ
PERCENT_RANK()
www.notion.so
05.24 ๋ฌธ์ ํ์ด
05.25 ๋ฌธ์ ํ์ด
05.26 ๋ฌธ์ ํ์ด
SQLD ์๊ฒฉ์ฆ
SQLD ์๊ฒฉ์ฆ ์ ๋ฆฌ
SQLD
Search
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํ์ค ์ธ๊ณ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ํํํ๊ธฐ ์ํด์ ์ถ์ํํ๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํน์ง
โข
์ถ์ํ
: ๊ณตํต์ ์ธ ํน์ง์ ์ฐพ๊ณ ๊ฐ๋ตํ๊ฒ ํํํ๋ค.
โข
๋จ์ํ
: ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํผํ๊ณ ๋๊ตฌ๋ ์ดํดํ ์ ์๊ฒ ํํ
โข
๋ช ํํ
: ์๋ฏธ์ ํด์์ด ๋ชจํธํ์ง ์๊ณ ๋ช ํํ๊ฒ ํด์. ํ ๊ฐ์ง ์๋ฏธ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
์ํฐํฐ
์ ๊ทํ
โข
์ ๊ทํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถํดํ๋ ๊ณผ์ ์ด๋ค.
โข
์ค๋ณต์ ์ ๊ฑฐํ๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ ๋ฆฝ์ฑ์ ํ๋ณดํ๋ค.
โข
๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ์ฐ์ฑ์ ๋์ด๊ณ , ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ณ๊ฒฝ์ ์ต์ํํ๋ค.
โข
์ค์ง์ ์ผ๋ก ์ 3 ์ ๊ทํ ๊น์ง๋ง ์ํํ๋ค.
โข
์ ์ฐจ
๋ฐ์ ๊ทํ
โข
๋ฐ์ดํฐ ์ค๋ณต์ ํ์ฉํ๊ณ ์กฐ์ธ์ ์ค์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ํฅ์ ๋ฐฉ๋ฒ
โข
๋ฐ์ ๊ทํ๋ ์กฐํ ์๋๋ฅผ ํฅ์ํ์ง๋ง, ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ์ฐ์ฑ์ ๋ฎ์์ง๋ค.
โข
์ํํ๋ ๊ฒฝ์ฐ
๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ์ฑ๋ฅ
๋ฐ์ดํฐ ๋ฒ ์ด์ค
โข
์ด๋ค ํํ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋๋์ ๋ฐ๋ผ์ ๋๋๋ค.
โข
๊ณ์ธตํ ๊ตฌ์กฐ : ํธ๋ฆฌ๊ตฌ์กฐ, 1:N
โข
๋คํธ์ํฌํ ๊ตฌ์กฐ : 1:N, M:N
โข
๊ด๊ณํ ๊ตฌ์กฐ : ๋ฆด๋ ์ด์ โ ์งํฉ์ฐ์ฐ, ๊ด๊ณ์ฐ์ฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)
โข
Oracle, MS-SQL, MySQL, SyBase โฆ
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ํํธ ์จ์ด์ด๋ค.
โข
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ํ๋ค.
๋ฐ์ดํฐ ๋ฒ ์ด์ค์ DBMS
๋ฐ์ดํฐ๋ฒ ์ด์ค
DBMS
SQL
SQL ์ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ํด์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์, ๋ฐ์ดํฐ ์กฐ์, ๋ฐ์ดํฐ ์ ์ด ๋ฑ์ ํ ์ ์๋ ์ ์ฐจํ + ๋น ์ ์ฐจํ ์ธ์ด์ด๋ค.
SQL ๋ฌธ์ ์คํ ์์
โข
ํ์ฑ
โ
์คํ
โ
์ธ์ถ
โข
ํ์ฑ(parsing)
โข
์คํ(execution)
โข
์ธ์ถ(fetch)
DDL
SQL
SQLD
DDL
DML
DCL
TCL
EQUI JOIN
โข
EQUI JOIN (๋ฑ๊ฐ์กฐ์ธ)
โข
INNER JOIN
โข
HASH JOIN
โข
INTERSECT ์ฐ์ฐ
NON-EQUI JOIN
โข
๋ ๊ฐ์ ํ ์ด๋ธ ์กฐ์ธ์ = ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ >, <, โฅ, โค ๋ฑ์ ์ฌ์ฉํ๋ค.
โข
์ ํํ๊ฒ ์ผ์นํ์ง ์๋ ๊ฒ์ ์กฐ์ธํ๋ ๊ฒ์ด๋ค.
SQL ํ์ฉ
JOIN
์๋ธ์ฟผ๋ฆฌ
ํจ์
01
์์ฑ์ ๋ํ ์ค๋ช
โข
์์ฑ์ ์ฃผ์๋ณ์์๊ฒ ํจ์์ ์ผ๋ก ์ข ์ํ๋ค.
โข
ํ๋์ ๊ฐ๋ง ๊ฐ์ง๋ค.
02
ํ๋์ ๋ฆด๋ ์ด์ ์์ ํํ์ ์ ์ฒด ๊ฐ์๋ฅผ ๋ฆด๋ ์ด์ ์
์นด๋๋๋ฆฌํฐ
๋ผ๊ณ ํ๋ค.
03
์ ํ๋๋ ํน์ ์กฐ๊ฑด์ ์ํด์ ์ ํ๋ ๊ฒ์ผ๋ก ์์๋๋ ๋ ์ฝ๋์ ๋น์จ์ด๋ค.
04
์ต๋ํ ๋ฒ์ฉ์ ์ธ ๊ฐ์ ์ฌ์ฉํ๊ณ ์ ์ผํ ๊ฐ์ ๋ง๋ค๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ ์๋ณ์๋ ์ธ์กฐ์๋ณ์์ด๋ค.
์ค๋ต๋ ธํธ
1๊ณผ๋ชฉ
์ค๋ต๋ ธํธ
01
๋ค์ SQL ๋ฌธ ์คํ ๊ฒฐ๊ณผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?
COALESCE ํจ์๋ NULL ์ด ์๋ ์ธ์๋ฅผ ๋ฐํํ๋ ํจ์์ด๋ค. ์ฒซ๋ฒ์งธ๋ NULL, ๋๋ฒ์งธ๋ NULL ์ด ์๋๊ธฐ ๋๋ฌธ์ 2 ๋ฅผ ๋ฐํํ๋ค.
02
๋ค์ ์ค์์ EQUI JOIN ์์๋ง ๋ํ๋๋ ์คํ๊ณํ์ ๋ฌด์์ธ๊ฐ? HASH JOIN
03
๊ณ์ธตํ ์กฐํ์์ ๊ฐ์ฅ ์์ ๋ ๋ฒจ์ ๊ฐ์ ๋ฌด์์ธ๊ฐ? 1
04
๊ทธ๋ฃน ํจ์ ์ค์์ ๊ฐ ๊ทธ๋ฃน์ ๋ํด์ SUB-TOTAL ์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์? ROLLUP
์ค๋ต๋ ธํธ
2๊ณผ๋ชฉ
์ค๋ต๋ ธํธ
01
๋ชจ๋ธ๋ง์ ํ ๋์ ์ธ๊ฐ์ง ๊ด์
โข
๋ฐ์ดํฐ์ ๋ํ ๊ด์
โข
ํ๋ก์ธ์ค์ ๋ํ ๊ด์
โข
๋ฐ์ดํฐ์ ํ๋ก์ธ์ค๊ฐ ์๋ก ์ฐ๊ด์ฑ์ด ํํ๋๋ ์๊ด ๊ด์
02
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ธ ๊ฐ์ง ์ค์๊ฐ๋
โข
์ ๋ฌด๊ฐ ๊ด์ฌํ๋ ์ด๋ค ๊ฒ (things)
โข
์ ๋ฌด๊ฐ ๊ด์ฌํ๋ ์ด๋ค๊ฒ์ ์ฑ๊ฒฉ (attributes)
โข
์ ๋ฌด๊ฐ ๊ด์ฌํ๋ ์ด๋ค๊ฒ์ ๊ด๊ณ (relationships)
03
1 ๊ณผ๋ชฉ ์ ๋ฆฌ
01
ํ ์ด๋ธ๋ช ๊ณผ ์นผ๋ผ๋ช ์ ๋ฐ๋์ ๋ฌธ์๋ก ์์ํด์ผํ๋ค.
02
FROM ์ ์ ํ ์ด๋ธ์ ๋ํ ๋ณ์นญ์ ์ฌ์ฉํ์ ๋ SELECT ์ ์์๋ ๋ฐ๋์ ํ ์ด๋ธ๋ช ์ด ์๋ ๋ณ์นญ์ ์ฌ์ฉํด์ผ ํ๋ค.
03
๋ฑ๊ฐ์กฐ์ธ์ ๋ฐ๋์ ๊ธฐ๋ณธํค, ์ธ๋ํค ๊ด๊ณ์ ์ํด์๋ง ์ฑ๋ฆฝ๋๋๊ฒ์ ์๋๋ค. ์กฐ์ธ์นผ๋ผ์ด 1:1 ๋ก ๋งคํ์ด ๊ฐ๋ฅํ๋ฉด ์ฌ์ฉํ ์ ์๋ค.
04
โข
์ํธ ์ฐ๊ด ์๋ธ์ฟผ๋ฆฌ๋ ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋ฉ์ธ์ฟผ๋ฆฌ์ ํ์ ๋งํผ ์คํ๋๋ ์ฟผ๋ฆฌ๋ก์ ์คํ ์๋๊ฐ ์๋์ ์ผ๋ก ๋จ์ด์ง๋ SQL ๋ฌธ์ฅ์ด๋ค. ๊ทธ๋ฌ๋ ๋ณต์กํ ์ผ๋ฐ ๋ฐฐ์น ํ๋ก๊ทธ๋จ์ ๋์ฒดํ ์ ์๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ ๋ง๋๋ค๋ฉด ์ ๊ทน์ ์ธ ๊ฒํ ๊ฐ ํ์ํ๋ค.
โข
TOP-N ์๋ธ์ฟผ๋ฆฌ๋ INLINE VIEW ์ ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ROWNUM ์ ์ด์ฉํด ๊ฒฐ๊ณผ ํ ์๋ฅผ ์ ํํ๊ฑฐ๋ TOP(N) ์กฐ๊ฑด ์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ์ด๋ค.
โข
INLINE VIEW ๋ FROM ์ ์ ์ฌ์ฉ๋๋ ์๋ธ์ฟผ๋ฆฌ๋ก์ ์ค์ง์ ์ธ OBJECT ๋ ์๋์ง๋ง, SQL ๋ฌธ์ฅ์์ ๋ง์น VIEW ๋ ํ ์ด๋ธ์ฒ๋ผ ์ฌ์ฉ๋๋ ์๋ธ์ฟผ๋ฆฌ์ด๋ค.
2 ๊ณผ๋ชฉ ์ ๋ฆฌ