Banner

My Tech Blog (ํ’€์ด)



1. ๋ฌธ์ œ์„ค๋ช… 2. ์ ‘๊ทผ๋ฐฉ์‹ & ์ •๋‹ต์ฝ”๋“œSELF JOIN์œผ๋กœ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๋™์ผํ•œ ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ์กฐ์ธํ•ด์„œ ํ’€์–ด์ฃผ์ž.ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ALIAS๋ฅผ ์ค˜์„œ ๋งˆ์น˜ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋‘ ๋ฒˆ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค.  ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ SELF JOIN ์˜ˆ์‹œ๋Š” ์ง์›๋ณ„ ๋งค๋‹ˆ์ €๋ฅผ ๋‚˜ํƒ€๋‚ธ 1๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์ž๊ธฐ์ž์‹ ๊ณผ ์กฐ์ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ ๊ณ„์ธต์ฟผ๋ฆฌ์—์„œ๋„ SELF JOIN์ด ๋งŽ์ด ์“ฐ์ธ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋„ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ๋ถ€๋ชจ์˜ ์•„์ด๋””์™€ ์ž์‹์˜ ์•„์ด๋””, ๊ฐœ์ฒด์˜ ํ˜•์งˆ(GENOTYPE)์ด ๋ชจ๋‘ ๋“ค์–ด ์žˆ๋‹ค. ๋ถ€๋ชจ์˜ ํ…Œ์ด๋ธ”์€ P๋กœ, ์ž์‹์˜ ํ…Œ์ด๋ธ”์€ ๊ทธ๋ƒฅ A๋ผ๊ณ  ๋ณ„์นญ์„ ์ค€ ๋’ค ์ž์‹ํ…Œ์ด๋ธ”์˜ PARENT_ID์ปฌ๋Ÿผ์„ ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ ID ๊ฐ’์œผ๋กœ ์กฐ์ธ ํ•œ๋‹ค. ๊ทธ ํ›„ WHERE ์ ˆ์— `A.GENOTYPE & P.GENOTYPE ..
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..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค. 1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€์˜ ์ •๋‹ต์ด ์ˆœ์„œ๋Œ€๋กœ ๋“ค์€ ๋ฐฐ์—ด answers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งžํžŒ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๋ช…ํ•จ ์ง€๊ฐ‘์„ ๋งŒ๋“œ๋Š” ํšŒ์‚ฌ์—์„œ ์ง€๊ฐ‘์˜ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ชจ์–‘๊ณผ ํฌ๊ธฐ์˜ ๋ช…ํ•จ๋“ค์„ ๋ชจ๋‘ ์ˆ˜๋‚ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ, ์ž‘์•„์„œ ๋“ค๊ณ  ๋‹ค๋‹ˆ๊ธฐ ํŽธํ•œ ์ง€๊ฐ‘์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์š”๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ง€๊ฐ‘์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋””์ž์ธํŒ€์€ ๋ชจ๋“  ๋ช…ํ•จ์˜ ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๋ฅผ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.์•„๋ž˜ ํ‘œ๋Š” 4๊ฐ€์ง€ ๋ช…ํ•จ์˜ ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธด ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๊ฐ€ ๊ฐ๊ฐ 80, 70์ด๊ธฐ ๋•Œ๋ฌธ์— 80(๊ฐ€๋กœ) x 70(์„ธ๋กœ) ํฌ๊ธฐ์˜ ์ง€๊ฐ‘์„ ๋งŒ๋“ค๋ฉด ๋ชจ๋“  ๋ช…ํ•จ๋“ค์„ ์ˆ˜๋‚ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 2๋ฒˆ ๋ช…ํ•จ์„ ๊ฐ€๋กœ๋กœ ๋ˆ•ํ˜€ ์ˆ˜๋‚ฉํ•œ๋‹ค๋ฉด 80(๊ฐ€๋กœ) x 50(์„ธ๋กœ) ํฌ๊ธฐ์˜ ์ง€๊ฐ‘์œผ๋กœ ๋ชจ๋“  ๋ช…ํ•จ๋“ค์„ ์ˆ˜๋‚ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ์˜ ์ง€๊ฐ‘ ํฌ๊ธฐ๋Š” 4000(=80 x 50)์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ช…ํ•จ์˜ ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'ํ’€์ด' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)
์ƒ๋‹จ์œผ๋กœ