์ค๋ ํ ์ผ ์ค๋ ์ ๋
์ ์ ์ธ๊ณ ํ์
์๋ง ๋ฃจํผ 2๊ฐ ๋น๊ทผ ๊ฑฐ๋ ์ด๋ฒ์ฃผ ์์ฒ๋ง ๊ตญ๊ฐ์ ๊ถ ๊ฐ๋ ๊ธฐ์ฐจํ ์๋งค OK 10์๋ฐ ๊ธฐ์ฐจ ๋ ๋ชฌ์ฆ, ๋
์ฝฉ๋ฒํฐ, ์ฌ๊ณผ, ์ ์ฐ๊ท ์ ๋จน๊ธฐ 11์ ์ผํ๋ฆฌ์คํธ ์ ๋ฆฌ 2.2km 30๋ถ ๋ถ๋ฆฌ์๊ฑฐ ๋ฒ๋ฆฌ๊ธฐ ํ๋ ์ด๋ฆฌ์คํธ ๋
ธ์
์ ์ ๋ฆฌ ์ค๋ ํฌ์คํ
ํ ๊ฑฐ ๋จ์๊ฑฐ ์ฐ๋๋ณ ๋์ฅ๊ท ํฌ๊ธฐ์ ํธ์ฐจ ๊ตฌํ๊ธฐ ๋ฌผ๊ณ ๊ธฐ ์ข
๋ฅ ๋ณ ๋์ด ์ฐพ๊ธฐ ์
๊ทธ๋ ์ด๋ ๋ ์์ดํ
๊ตฌํ๊ธฐ ํน์ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ์ก์ ์ด ์ ๊ตฌํ๊ธฐ ๋นํธ์ฐ์ฐ ๋ณต์ต ์ธ ๊ฐ ์ฐจ์ด ์ ํํ ๋ณต์ต [ํ๋ก๊ทธ๋๋จธ์ค] ๐ฉ๐ป๐ป (MySQL) ํน์ ํ์ง์ ๊ฐ์ง๋ ๋์ฅ๊ท ์ฐพ๊ธฐ ๋ฌธ์ ํ์ด1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ & ์ ๋ต์ฝ๋SELF JOIN์ผ๋ก ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋์ผํ ํ
์ด๋ธ ๋ด์์ ์กฐ์ธํด์ ํ์ด์ฃผ์.ํ๋์ ํ
์ด๋ธ์ ALIAS๋ฅผ ์ค์ ๋ง์น ๋ ๊ฐ์ ํ
์ด๋ธ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ ๋ฒ..
My Tech Blog (์ ์ฒด ๊ธ)
๐ ๐ต๐ ๐๐๐๐ก๐๐๐ข๐, ๐ ๐๐๐ก๐ก๐๐ ๐๐๐๐๐๐๐๐๐ก๐๐๐ ๐๐๐๐ ๐ ๐๐๐๐ ๐ค๐๐ฆ โจ๐ฟ๐๐๐ ๐๐ ๐ ๐๐๐๐๐. ๐ธ๐๐๐๐ฆ ๐๐๐ ๐ต๐๐๐๐ ๐๐๐ฆ.๋๋ฌด ์ฌ์์ ๊ตณ์ด ๋ธ๋ก๊ทธ์ ์ ์ฌ๋ฆฌ๋ ค๋ค๊ฐ ์ฝ๋๋ง ์ฌ๋ฆฝ๋๋ค.ํ๋ก๊ทธ๋๋จธ์ค > ์ฝ๋ฉํ
์คํธ ์ฐ์ต > SLQ > `SUM, MAX, MIN`์นดํ
๊ณ ๋ฆฌ์ ์๋ ๋ฌธ์ ๋ค์
๋๋ค. ๊ทธ๋ฅ ํ ๋์ ๋ณด๊ณ ๋ฐ๋ก ํ ์ ์๋ 5์ด์ปท ๋ฌธ์ ๋ค์ํ ํฌ์คํ
๋ด์ ์ฌ๋ฌ ๊ฐ ๋ฌถ์ด์ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ ๊ตฌ์ฒด์ ์ธ ์ค๋ช
์ด ํ์ํ์๊ฑฐ๋ ๊ถ๊ธํ ์ ์ ๋๊ธ๋ก ๋ถํ๋๋ฆฝ๋๋ค.ํ์ธํ๋ ๋๋ก ๋ต ๋๋ฆฝ๋๋ค. 1. ๊ฐ์ฅ ๋น์ผ ์ํ ๊ตฌํ๊ธฐ MAX()SELECT MAX(PRICE) AS MAX_PRICEFROM PRODUCT ํ์ด์ ์ฐ๋ ์ฝ๋SELECT PRICE AS MAX_PRICEFROM PRODUCTORDER BY PRICE DESCLIMIT 1;2. ์ต๋๊ฐ ๊ตฌํ๊ธฐ SELECT MAX(DATETIME)FROM ANIMAL_INS;3. ์ก์ ๋ฌผ๊ณ ๊ธฐ ์ค ๊ฐ์ฅ ํฐ ๋ฌผ๊ณ ..
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ & ์ ๋ต์ฝ๋SELF JOIN์ผ๋ก ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋์ผํ ํ
์ด๋ธ ๋ด์์ ์กฐ์ธํด์ ํ์ด์ฃผ์.ํ๋์ ํ
์ด๋ธ์ ALIAS๋ฅผ ์ค์ ๋ง์น ๋ ๊ฐ์ ํ
์ด๋ธ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ ๋ฒ ์ฐธ์กฐํ๋ ๊ฒ์ด๋ค. ๋ด๊ฐ ์๊ณ ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ SELF JOIN ์์๋ ์ง์๋ณ ๋งค๋์ ๋ฅผ ๋ํ๋ธ 1๊ฐ์ ํ
์ด๋ธ์ ์๊ธฐ์์ ๊ณผ ์กฐ์ธํ๋ ๊ฒ์ด๋ค. ๋ ๊ณ์ธต์ฟผ๋ฆฌ์์๋ SELF JOIN์ด ๋ง์ด ์ฐ์ธ๋ค. ์ด ๋ฌธ์ ์์๋ ํ๋์ ํ
์ด๋ธ์ ๋ถ๋ชจ์ ์์ด๋์ ์์์ ์์ด๋, ๊ฐ์ฒด์ ํ์ง(GENOTYPE)์ด ๋ชจ๋ ๋ค์ด ์๋ค. ๋ถ๋ชจ์ ํ
์ด๋ธ์ P๋ก, ์์์ ํ
์ด๋ธ์ ๊ทธ๋ฅ A๋ผ๊ณ ๋ณ์นญ์ ์ค ๋ค ์์ํ
์ด๋ธ์ PARENT_ID์ปฌ๋ผ์ ๋ถ๋ชจ ํ
์ด๋ธ์ ID ๊ฐ์ผ๋ก ์กฐ์ธ ํ๋ค. ๊ทธ ํ WHERE ์ ์ `A.GENOTYPE & P.GENOTYPE ..
์ค๋์ ์ ๊ฐ ์ข์ํ๋ ๋
ธ๋ TLC - Turntable ๋ค๊ณ ์ ๋ดค์ด์ ใ
ใ
ใ
๋จ 3์ฅ์ ์จ๋ฒ์ผ๋ก 90๋
๋๋ฅผ ์ง๋ฐฐํ๋ ๊ฐ์ TLC์ ๋ํด ์๊ฐ ํด ๋๋ฆฌ๋ ค๊ณ ํด์.์์ ๋กญ๊ณ ๊ธ์ ์ ์ธ ๋ถ์๊ธฐ์ ๋
ธ๋๊ฐ ๋ง์์ ์์ฃผ ๋ฃ๋๋ฐ์.. ๋๋ฌด๋๋ฌด ์ข์ํ๋ ๊ฐ์์ธ๋ฐ๋ฉค๋ฒ ๋ ํํธ ์์ด์ ๋น๋ณด๋ฅผ ๋ฃ๊ณ ์ฌํผ ํ๋ ๊ธฐ์ต์ด ๋๋ค์~ ๋ง์ ์ฌ๋๋ค์๊ฒ ์์ ์ ํ๋ณต๊ฐ์ ์ ์ฌํ์ง๋ง...์ ์ ๋ณธ์ธ๋ค์ ์์ ๋กญ์ง ๋ชปํ๋ TLC์ ์ด์ผ๊ธฐ์ง๊ธ๋ถํฐ ๋ค๋ ค๋๋ฆด๊ฒ์ ์ฐ๋ฆฌ๋ ์ญ์ฌ์ ๊ฐ์ฅ ํฌ๊ฒ ์ฑ๊ณตํ ๊ฑธ๊ทธ๋ฃน์ด๊ณ 1000๋ง์ฅ์ด ๋๋ ์จ๋ฒํ๋งค๋์5๋
๋์ ์ด ๋ฐ๋ฅ์์ ์ฃฝ์ด๋ผ ์ผํ๋๋ฐ๊ฒฐ๊ตญ ํ์ฐํ ๋๋ก ํ์ฐํด๋ฒ๋ ธ๋ค์(We Are Broken As Broke Can Be)- 1996๋
๊ทธ๋๋ฏธ ์ด์์ฆ์์ Chilli์ ์์์๊ฐ - ์ผ์ชฝ๋ถํฐ ํฐ๋ณด์ฆ, ์น ๋ฆฌ, ๋ํํธ ์์ด์์..
1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ ๋ฐฉ๋ฒ & ์ ๋ต์ฝ๋`GENOTYPE`์ ์ด์ง์๋ก ๋ณํํ ๊ฐ์ `๊ฐ ์๋ฆฟ์`๊ฐ `๋ณด์ ํ ํ์ง`์ ๋ํ๋ด๋ฏ๋ก๋นํธ์ฐ์ฐ์ ํด ์ฃผ์ด์ผ ํ๋ ๋ฌธ์ ๋ผ๋ ๊ฑธ ์ ์ ์๋ค ! SELECT COUNT(*) AS COUNTFROM ECOLI_DATA AWHERE 1=1 AND (GENOTYPE & 2) != 2 AND ((GENOTYPE & 4) = 4 OR (GENOTYPE & 1) = 1) ์ด ๋ฌธ์ ๋ WHERE์ ์์ฑํ๊ธฐ๊ฐ ์กฐ๊ธ ์ด๋ ค์ธ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋์ฉ ์ฐจ๊ทผ ์ฐจ๊ทผ ์ค๋ช
์ ํด ๋ณด๊ฒ ๋ค. ๋จผ์ ๋นํธ์ฐ์ฐ์ด๋ ๊ฑธ ๋ชจ๋ฅด๋ฉด ์ดํด๊ฐ ์ด๋ ค์ธ ์ ์๊ธฐ ๋๋ฌธ์ ๋นํธ์ฐ์ฐ ๋จผ์ ์์๋ณด์.๋นํธ์ฐ์ฐ์ด๋?๋นํธ ์ฐ์ฐ์ ์ซ์๋ฅผ ์ด์ง์ ํํ๋ก ๋ณํํ์ฌ ๊ฐ ๋นํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐ์ฐ์ ์ํํ๋ ๋ฐฉ์์ด๋ค. ํ๋ก๊ทธ..
๐ฆ๋ฌธ์ ์ค๋ช
์ฒ์์๋ ๋ณต์กํ๊ฒ ์๊ฐํด์ ๋ฌธ์ ๋ฅผ ํ์ง ๋ชปํ๋ค. ๋๋ `๋ ํ
์ด๋ธ์ ์กฐ์ธ์ ํด์ผ ํ๋๋ฐ ์กฐ์ธ ์กฐ๊ฑด์ ์ด๋ป๊ฒ ์ฃผ์ง?` ์ด๋ ๊ฒ ์๊ฐ์ ํ๊ณ ๋ฌธ์ ์ ์ ๊ทผํ๋ค. ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ์กฐ์ธ์ ํ ์ ์๋ค.์ด๊ฑด ์๋ธ์ฟผ๋ฆฌ๋ก ํธ๋ ๋ฌธ์ ์๋ค. ๋๋ ์ฒ์์ ์ด ๋ฌธ์ ๊ฐ ์๋ฐ ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ
์คํธ์ฒ๋ผ ๋๊ปด์ก๋ค. ์๋ํ๋ฉด ๋ด๊ฐ ์ง์ ์ด์ง์ ๊ณ์ฐ์ ํ๋ ๋ก์ง์ ์ง์ผ ํ๋๊ฑด๊ฐ? ๋ผ๋ ์๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.์๋ฆฌ์2561286432168421์ด์ง์110010000 ์ญ์ง์๋ฅผ ์ด์ง์๋ก ๋ฐ๊พธ๋ `BIN(SKILL_CODE)` ํจ์ ์จ์ CODE ์ปฌ๋ผ์ด๋ ๋ง์ถฐ๋ณผ๊น ์๊ฐํ๋๋ฐ ์ด๋ป๊ฒ ํด์ผ ์ข์ ์ง ์ฝ๊ฒ ์๊ฐ์ด ๋์ง ์์๋ค. ๊ทธ ํ์ `SUBSTRING(BIN(SKILL_CODE),?,?)` ์ด๋ฐ ์์ผ๋ก ๊ฐ์ ์๋ผ ์ค์ผ ํ๋ ์๊ฐ๋ ํด ๋ดค..
๐ ๊ฐ์ฅ ํฐ ๋ฌผ๊ณ ๊ธฐ 10๋ง๋ฆฌ ๊ตฌํ๊ธฐ ๊ฐ์ฅ ํฐ ๋ฌผ๊ณ ๊ธฐ 10๋ง๋ฆฌ๋ฅผ ์ ํํ๋ผ๊ณ ํ์ผ๋๊น, ROWNUM์์จ์ผ ํ๋ค. ํ์ง๋ง ROWNUM์ Oracle์๋ง ์๋ ๋ฌธ๋ฒ์ด๊ณ , MySQL์์๋ LIMIT ํค์๋๋ก ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋ค. ์ฃผ์ํ ์ , ROWNUM / LIMIT ์ ์๋ธ์ฟผ๋ฆฌ(subquery)์ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ค. ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ ์ฐ๋ฉด WHERE์ ์ด SELECT์ ๋ณด๋ค ๋จผ์ ์ํ๋์ด ์ํ๋ ๊ฐ์ด ๋์ค์ง ์๋๋ค. ๊ธธ์ด๊ฐ ํฐ ์์ผ๋ก 10๊ฐ๋ฅผ ๊ฐ์ ธ์์ผ ํ๋๋ฐ, ๊ธธ์ด์ ์๊ด ์์ด ๋๋คํ ๊ฐ 10๊ฐ๊ฐ ์ ํ๋๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ SQL๋ฌธ์ ์คํ์์ ๋๋ฌธ์ด๋ค. SQL์ ์คํ ์์FROM - WHERE(ROWNUM ์คํ) - GROUP BY - HAVING - SELECT - ORDER BY LENGTH๋ฅผ ํฐ ๊ฐ๋ถํฐ ์ ..
์ฌ์ด ๋ฌธ์ ๋ ํ ๋ฒ์ ๋ ์ธ๊ฐ์ฉ ํฌ์คํ
ํ๋ ค๊ณ ํ๋๋ฐ์ด ๋ฌธ์ ๋ ์๊ฐ ํด ๋ณผ ์ฌ์ง๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ํ๋๋ง ์ฌ๋ฆฐ๋ค.๋
ผ๋์ ์ฌ์ง๊ฐ ์๊ณ ๋ง์ ์๋ฌธ์ด ์ ๊ธฐ๋๋ ๋ฌธ์ ์ธ๋ฐ ๊ฐ์ ๊ณ ๋ฏผ์ ํ์ ๋ถ๋ค๊ป ์ด ๋ฌธ์ ์ ๊ด๋ จํด์ ๋ด๊ฐ ์๊ฐํด๋ณด๊ณ ์กฐ์ฌํ ๋ด์ฉ์ ๊ณต์ ๋ฅผ ํด๋ณด๊ณ ์ํ๋ค. ๋ด๊ฐ ๊ถ๊ธํ๋ ์ ์ ์๋ ๋ ๊ฐ์ง์๋ค. - "LENGTH ์ NULL ๋ง ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค"๋ผ๋ ์กฐ๊ฑด์ ์ ํ์ํ ๊ฒ์ธ๊ฐ์?- ์ ํ
์คํธ ์ผ์ด์ค 2๋ง ์คํจ๊ฐ ๋จ๋ ๊ฒ์ธ๊ฐ์? ๋ด์ง 10cm ์ดํ์ธ๋ฐ ์ ์ ๋ต์ฝ๋์์๋ ` ์ด ํฌ์คํ
์ ๋ํด์๋ ์ ์ง๋ฌธ๋ค์ ๋ํด ๋ช
์พํ ํด๋ต์ ํ ๊ฒ์ด๋ค์ฒซ๋ฒ์งธ ์ง๋ฌธ์ ๋ฌธ์ ๋ฅผ ์์ธํ ์ฝ๊ณ ์๊ฐํด๋ณด๋ ๋ต์ ์ฐพ์ ์ ์์๊ณ ๋๋ฒ์งธ ์ง๋ฌธ์ ๋ค๋ฅธ ์ฌ๋์ ์ค๋ช
์ ์ฐธ๊ณ ํ๋ค. ๐ ์์ฑ์ด ์ก์ ์ ๊ตฌํ๊ธฐ LENGTH ์ปฌ๋ผ์ NULL๊ฐ์ด..
๐ ๋ชจ๋ ๋ ์ฝ๋ ์กฐํํ๊ธฐ10์ด์ปท ๋ฌธ์ SELECT *FROM ANIMAL_INSORDER BY ANIMAL_ID; ๐ฆ ์กฐ๊ฑด์ ๋ง๋ ํ์์ ๊ตฌํ๊ธฐSELECT COUNT(*)FROM USER_INFOWHERE YEAR(JOINED) = '2021' AND AGE BETWEEN 20 AND 29;๐ป Python ๊ฐ๋ฐ์ ์ฐพ๊ธฐ ๋ณดํต ์ฉ์ด๋ณด๋ค์ด ํธ๋ ๋ฐฉ๋ฒSELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python'ORDER BY ID; ํ ๋ฒ ์๊ฐ ํด ๋ณด๊ณ ํ๋ฉด ์ด๋ ๊ฒ ใ
ใ
ใ
SELECT ID, EMAIL, FIRST_NAME, L..