Ability ๐ฑ/SQL
์๋ธ์ฟผ๋ฆฌ - ํ๋์ SQL ๋ช ๋ น๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ SQL ๋ช ๋ น๋ฌธ์ ์ ๋ฌํ๊ธฐ ์ํด ๋ ๊ฐ ์ด์์ SQL ๋ช ๋ น๋ฌธ์ ํ๋์ SQL๋ช ๋ น๋ฌธ์ผ๋ก ์ฐ๊ฒฐํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ - ์๋ธ์ฟผ๋ฆฌ์ ๋จผ์ ์ฐพ๊ณ ์ถ์ ๋ฐ์ดํฐ ์ค - ์๋ธ์ฟผ๋ฆฌ๋ ๊ดํธ๋ก ๋๋ฌ์ธ์ผ ํจ - ์๋ธ์ฟผ๋ฆฌ๋ ๋น๊ต ์ฐ์ฐ์ ์ค๋ฅธ์ชฝ์ ์์น ์ฒ๋ฆฌ๊ณผ์ 1. ์๋ธ์ฟผ๋ฆฌ๋ ๋ฉ์ธ์ฟผ๋ฆฌ๊ฐ ์คํ๋๊ธฐ ์ ์ ํ๋ฒ์ฉ ์คํ๋จ 2. ์๋ธ์ฟผ๋ฆฌ์์ ์คํ๋ ๊ฒฐ๊ณผ๊ฐ ๋ฉ์ธ ์ฟผ๋ฆฌ์ ์ ๋ฌ๋์ด ์ต์ข ์ ์ธ ๊ฒฐ๊ณผ ์ถ๋ ฅ ๋จ์ผํ ์๋ธ์ฟผ๋ฆฌ - ์๋ธ์ฟผ๋ฆฌ์์ ๋จ ํ๋์ ํ๋ง ๊ฒ์ํ์ฌ ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋ฐํํ๋ ์ง์๋ฌธ - ๋ฉ์ธ์ฟผ๋ฆฌ์ WHERE์ ์์ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ๋น๊ตํ ๊ฒฝ์ฐ์ธ๋ ๋ฐ๋์ ๋จ์ผํ ๋น๊ต ์ฐ์ฐ์ ์ค ํ๋๋ง ์ฌ์ฉ ๋จ์ผํ ๋น๊ต ์ฐ์ฐ์ : =, >, >=, ANY - ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์์ ์๋ธ์ฟผ๋ฆฌ์ ์ถ๋ ฅ ๊ฒฐ๊ณผ์ ํ๋๋ผ๋ ์ผ..
SQL ํจ์ - ์นผ๋ผ์ ๊ฐ์ด๋ ๋ฐ์ดํฐ ํ์ ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ - ์ซ์, ๋ ์ง ๋ฐ์ดํฐ์ ์ถ๋ ฅ ํ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ - ํ๋ ์ด์์ ํ์ ๋ํ ์ง๊ณ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ SQL ํจ์ ์ ํ 1) ๋จ์ผํ ํจ์ ํ ์ด๋ธ์ ์ ์ฅ๋์ด ์๋ ๊ฐ๋ณ ํ์ ๋์์ผ๋ก ํจ์๋ฅผ ์ ์ฉํ์ฌ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์ ๋ฌธ์, ์ซ์, ๋ ์ง ๋ฐ์ดํฐ ํ์ ์ ์ ์ฉํ ์ ์๋ ํจ์์ ๋ฐ์ดํฐ ํ์ ์ ๋ณํํ๊ธฐ ์ํ ํจ์ ์กด์ฌ 2) ๋ณต์ํ ํจ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฌ๋ฌ ํ์ ๊ทธ๋ฃนํํ์ฌ ๊ทธ๋ฃน๋ณ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ๋์ฉ ๋ฐํํ๋ ํจ์ ๋จ์ผํ ํจ์ - ๋ฐ์ดํฐ ๊ฐ์ ์กฐ์ํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉ - ํ๋ณ๋ก ํจ์๋ฅผ ์ ์ฉํ์ฌ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์ - ์ฌ๋ฌ ๊ฐ์ ์ธ์๋ฅผ ์ฌ์ฉํ ์ ์๊ณ , ์์/๋ณ์/์นผ๋ผ์ด๋ฆ/ํํ์์ ์ธ์๋ก ์ฌ์ฉ ๊ฐ๋ฅ - SQL ๋ช ๋ น์ฌ๋ฌธ์ select์ , ..
์กฐ์ธ ๊ฐ๋ - ํ๋์ SQL ๋ช ๋ น๋ฌธ์ ์ํด ์ฌ๋ฌ ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์กฐํํ ์ ์๋ ๊ธฐ๋ฅ - ๋๊ฐ ์ด์์ ํ ์ด๋ธ์ '๊ฒฐํฉ'ํ๋ค๋ ์๋ฏธ ์ข ๋ฅ - ์นดํฐ์ ๊ณฑ, EQUI join, NON-EQUI join, OUTER join, SELF join ์นผ๋ผ ์ด๋ฆ ์ ๋งค๋ชจํธ์ฑ - ์๋ก ๋ค๋ฅธ ํ ์ด๋ธ์ ์๋ ๋์ผํ ์นผ๋ผ ์ด๋ฆ์ ์ฐ๊ฒฐํ ๊ฒฝ์ฐ ์นผ๋ผ ์ด๋ฆ ์์ ํ ์ด๋ธ ์ด๋ฆ์ ์ ๋์ฌ๋ก ์ฌ์ฉ - ํ ์ด๋ธ ์ด๋ฆ๊ณผ ์นผ๋ผ์ ์ ( . )์ผ๋ก ๊ตฌ๋ถ - ํ ์ด๋ธ๋ช .์นผ๋ผ๋ช ํ ์ด๋ธ ๋ณ๋ช - ํ ์ด๋ธ ์ด๋ฆ์ ๋์ ํ๋ ๋ณ๋ช ์ฌ์ฉ ๊ฐ๋ฅ - from์ ์์ ํ ์ด๋ธ ์ด๋ฆ ๋ค์์ ๊ณต๋ฐฑ์ ๋๊ณ ๋ณ๋ช ์ ์ - ํ ์ด๋ธ ๋ณ๋ช ์์ฑ ๊ท์น ํ ์ด๋ธ ๋ณ๋ช ์ 30์๊น์ง ๊ฐ๋ฅ from์ ์์ ํ ์ด๋ธ ์ด๋ฆ์ ๋ช ์ํ๊ณ ๊ณต๋ฐฑ์ ๋ ๋ค์ ํ ์ด๋ธ ๋ณ๋ช ์ง์ ํ๋์ SQL ๋ช ๋ น๋ฌธ..
๊ทธ๋ฃน ํจ์ - ํ ์ด๋ธ์ ์ ์ฒด ํ์ ํ๋ ์ด์์ ์นผ๋ผ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ์ฌ ๊ทธ๋ฃน๋ณ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํจ์ - ๊ทธ๋ฃนํจ์๋ ํต๊ณ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋๋ฐ ์์ฃผ ์ฌ์ฉ select ์นผ๋ผ๋ช , ๊ทธ๋ฃนํจ์(์นผ๋ผ๋ช ) from ํ ์ด๋ธ๋ช [where ์กฐ๊ฑด] [group by ๊ทธ๋ฃน_์ปฌ๋ ด๋ช |ํํ์] [having ๊ทธ๋ฃน_์กฐ๊ฑด] โช group by : ์ ์ฒด ํ์ ๊ทธ๋ฃน_์ปฌ๋ ด๋ช |ํํ์์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ โช having : group by์ ์ ์ํด ์์ฑ๋ ๊ทธ๋ฃน๋ณ๋ก ์กฐ๊ฑด ๋ถ์ฌ ๊ทธ๋ฃน ํจ์ ์ข ๋ฅ ์ข ๋ฅ ์๋ฏธ COUNT ํ์ ๊ฐ์ ์ถ๋ ฅ MAX NULL ์ ์ธํ ๋ชจ๋ ํ์์ ์ต๋๊ฐ MIN NULL ์ ์ธํ ๋ชจ๋ ํ์์ ์ต์๊ฐ SUM NULL ์ ์ธํ ๋ชจ๋ ํ์ ํฉ๊ณ AVG NULL ์ ์ธํ ๋ชจ๋ ํ์ ํ๊ท ๊ฐ STDDEV NULL ์ ์ธํ ๋ชจ๋ ํ์ ํ์คํธ์ฐจ V..
WHERE ์ ์ ์ด์ฉํ ์กฐ๊ฑด ๊ฒ์ - ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค์์ ์ํ๋ ๋ฐ์ดํฐ๋ง ์ ํ์ ์ผ๋ก ๊ฒ์ํ๋ ๊ธฐ๋ฅ - where ์ ์ ์กฐ๊ฑด๋ฌธ์ ์นผ๋ผ ์ด๋ฆ, ์ฐ์ฐ์, ์์, ์ฐ์ ํํ์์ ๊ฒฐํฉํ์ฌ ๋ค์ํ ํํ๋ก ํํ ๊ฐ๋ฅ - where์ ์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ํ์ : ๋ฌธ์, ์ซ์, ๋ ์ง ๋ฌธ์, ๋ ์ง ํ์ ์ ์์ ๊ฐ์ ์์ ๋ฐ์ดํ( ' ' )๋ก ๋ฌถ์ด์ ํํ ์ซ์ ๊ทธ๋๋ก ์ฌ์ฉ ์์ ๊ฐ์์ ์๋ฌธ์๋ ๋์๋ฌธ์ ๊ตฌ๋ณ ๋น๊ต ์ฐ์ฐ์ - ์ซ์, ๋ฌธ์, ๋ ์ง์ ํฌ๊ธฐ๋ ์์๋ฅผ ๋น๊ตํ๋ ์ฐ์ฐ์ ์ฐ์ฐ์ ์๋ฏธ = ๊ฐ๋ค !=, ๊ฐ์ง ์๋ค > ํฌ๋ค >= ํฌ๊ฑฐ๋ ๊ฐ๋ค = 50 and weight IN ์ฐ์ฐ์ โช IN(a, b, c, ... ) ํน์ ์นผ๋ผ์ ๋ฐ์ดํฐ ๊ฐ์ด a, b, c, ... ๊ฐ ์ค์ ํ๋๋ผ๋ ์ผ์นํ๋ฉด ์ฐธ โช OR ๋ ผ๋ฆฌ ์ฐ์ฐ์..
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ์ฅ์ - ๋ฐ์ดํฐ์ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ์ ๋ณด์ฅ - ํ ์ด๋ธ ์์ฑ ์ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ์ ์ ๊ฐ๋ฅ - ํ ์ด๋ธ์ ๋ํด ์ ์, ๋ฐ์ดํฐ ๋์ ๋๋ฆฌ์ ์ ์ฅ๋๋ฏ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ ๋ ฅ๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ํด ๋์ผํ๊ฒ ์ ์ฉ - ์ ์ฝ์กฐ๊ฑด์ ํ์ฑํ, ๋นํ์ฑํ ํ ์ ์๋ ์ตํต์ฑ ์ข ๋ฅ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ์ค๋ช NOT NULL ํด๋น ์นผ๋ผ ๊ฐ์ NULL์ ํฌํจํ ์ ์์ ๊ณ ์ ํค ํ ์ด๋ธ ๋ด์์ ํด๋น ์นผ๋ผ ๊ฐ์ ํญ์ ์ ์ผํด์ผ ํจ NULL๊ฐ์ ํ์ฉ ๊ธฐ๋ณธํค ํด๋น ์นผ๋ผ ๊ฐ์ ๋ฐ๋์ ์กด์ฌํด์ผ ํ๋ฉฐ, ์ ์ผํด์ผ ํจ NOT NULL + ๊ณ ์ ํค ์ ์ฝ์กฐ๊ฑด ์ฐธ์กฐ ํด๋น ์นผ๋ผ ๊ฐ์ ์ฐธ์กฐ๋๋ ํ ์ด๋ธ์ ์นผ๋ผ ๊ฐ ์ค ํ๋์ ์ผ์นํ๊ฑฐ๋ NULL์ ๊ฐ์ง CHECK ํด๋น ์นผ๋ผ์ ์ ์ฅ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ฐ์ ๋ฒ์๋ ์กฐ๊ฑด ์ง์ (๋๋ฉ์ธ ์ ์ฝ์กฐ๊ฑด) NOT N..
๋ฐ์ดํฐ ์ ์์ด DDL(Data Definition Langange) - ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ ์์ฉ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ธ์ด - ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ์์ฑ, ์ญ์ ์ข ๋ฅ ๊ธฐ๋ฅ CREATE TABLE ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ ์ด๋ธ ์์ฑ ALTER TABLE ๊ธฐ์กด ํ ์ด๋ธ์ ํ๋, ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ DROP TABLE ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ ์ด๋ธ ์ญ์ ํ ์ด๋ธ ์์ฑ CREATE TABLE - ํ ์ด๋ธ์ ๋ํ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ ํ ๋นํ๋ ๊ณผ์ - ํ ์ด๋ธ์ ๋ํ ๊ตฌ์กฐ ์ ์๋ ํ ์ด๋ธ์ ๊ตฌ์ฑํ๋ ์นผ๋ผ์ ๋ฐ์ดํฐ ํ์ ๊ณผ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ์ ์ํ๋ ๊ณผ์ create table ํ ์ด๋ธ๋ช ( column ๋ฐ์ดํฐํ์ (๊ธธ์ด) [ ๊ธฐ๋ณธ๊ฐ ] [ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ] [..
๋ฐ์ดํฐ ์กฐ์์ด ( DML : Data Manipulation Language) - ํ ์ด๋ธ์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์์ ๋๋ ์ญ์ ํ๊ธฐ ์ํ ๋ช ๋ น์ด ์ข ๋ฅ ๊ธฐ๋ฅ INSERT ์๋ก์ด ๋ฐ์ดํฐ ์ ๋ ฅ ๋ช ๋ น์ด UPDATE ๊ธฐ์กด ๋ฐ์ดํฐ ์์ ๋ช ๋ น์ด DELETE ๊ธฐ์กด ๋ฐ์ดํฐ ์ญ์ ๋ช ๋ น์ด MERGE ๋๊ฐ์ ํ ์ด๋ธ์ ํ๋์ ํ ์ด๋ธ๋ก ๋ณํฉํ๋ ๋ช ๋ น์ด ๋ฐ์ดํฐ ์ ๋ ฅ INSERT - ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ธฐ ์ํ ๋ฐ์ดํฐ ์กฐ์์ด ๋จ์ผ ํ ์ ๋ ฅ : ํ ๋ฒ์ ํ๋์ ํ์ ํ ์ด๋ธ์ ์ ๋ ฅ ๋ค์ค ํ ์ ๋ ฅ : ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ํ ๋ฒ์ ์ฌ๋ฌ ํ ๋์์ ์ ๋ ฅ 1) ๋จ์ผ ํ ์ ๋ ฅ INSERT INTO ... VALUES - INTO ์ ์ ๋ช ์ํ ์นผ๋ผ์ VALUES ์ ์์ ์ง์ ํ ์นผ๋ผ ๊ฐ์ ์ ๋ ฅ - INTO ์ ์ ์นผ๋ผ์ ๋ช ์ํ..