Banner

My Tech Blog (๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ)

1. ๋ฌธ์ œ์„ค๋ช… 2. ์ ‘๊ทผ๋ฐฉ์‹ & ์ •๋‹ต์ฝ”๋“œ ๋ฌธ์ œ๋งŒ ์ฝ์–ด๋„ ์•„์ดํ…œ์ด ์ƒ์œ„ ์•„์ดํ…œ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฑธ ๋ณด๋‹ˆ, ๊ณ„์ธต๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๋ณด์—ฌ์ง„๋‹ค. 1. ๋จผ์ € ITEM_INFOํ…Œ์ด๋ธ”์—์„œ RARITY ๊ฐ€ 'RARE'์ธ ์•„์ดํ…œ๋“ค์˜ ITEM_ID ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.2. ITEM_INFO ํ…Œ์ด๋ธ”์˜ ITEM_ID๋ž‘ ITEM_TREE์˜ PARENT_ITEM_ID๊ฐ€ ๊ฐ™๋‹ค๋Š” ์กฐ๊ฑด์œผ๋กœ ITEM_INFO์™€ ITEM TREE ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ–ˆ๋‹ค. WHERE ์ ˆ์— 1์กฐ๊ฑด์„ ๋‹ฌ์•„์„œ ITEM_TREE.PARENT_ITEM_ID๊ฐ€ 1์กฐ๊ฑด ์— ํ•ด๋‹นํ•˜๋Š”์ง€ ์ฐพ์•„ ์ค€๋‹ค.   ๊ณ„์† ํ‹€๋ฆฐ๋‹ค....ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹์•„์ด๊ณ  ๋จธ๋ฆฌ์•ผ  ๐Ÿฆ JOIN 1๋ฒˆ ํ•˜๋Š” ์ •๋‹ต์ฝ”๋“œSELECT ITEM_INFO.ITEM_ID, ITEM_INFO.ITEM_NAME, ITE..
์˜ค๋Š˜ ํ•  ์ผ ์˜ค๋Š˜ ์ €๋…์— ์‹ ์„ธ๊ณ„ ํŒ์—… ์ž”๋ง ๋ฃจํ”ผ 2๊ฐœ ๋‹น๊ทผ ๊ฑฐ๋ž˜ ์ด๋ฒˆ์ฃผ ์ˆœ์ฒœ๋งŒ ๊ตญ๊ฐ€์ •๊ถŒ ๊ฐ€๋Š” ๊ธฐ์ฐจํ‘œ ์˜ˆ๋งค OK 10์‹œ๋ฐ˜ ๊ธฐ์ฐจ ๋ ˆ๋ชฌ์ฆ™, ๋•…์ฝฉ๋ฒ„ํ„ฐ, ์‚ฌ๊ณผ, ์œ ์‚ฐ๊ท  ์ž˜ ๋จน๊ธฐ 11์›” ์‡ผํ•‘๋ฆฌ์ŠคํŠธ ์ •๋ฆฌ 2.2km 30๋ถ„ ๋ถ„๋ฆฌ์ˆ˜๊ฑฐ ๋ฒ„๋ฆฌ๊ธฐ ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ ๋…ธ์…˜์— ์ •๋ฆฌ ์˜ค๋Š˜ ํฌ์ŠคํŒ… ํ• ๊ฑฐ ๋‚จ์€๊ฑฐ ์—ฐ๋„๋ณ„ ๋Œ€์žฅ๊ท  ํฌ๊ธฐ์˜ ํŽธ์ฐจ ๊ตฌํ•˜๊ธฐ ๋ฌผ๊ณ ๊ธฐ ์ข…๋ฅ˜ ๋ณ„ ๋Œ€์–ด ์ฐพ๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋œ ์•„์ดํ…œ ๊ตฌํ•˜๊ธฐ ํŠน์ • ๋ฌผ๊ณ ๊ธฐ๋ฅผ ์žก์€ ์ด ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๋น„ํŠธ์—ฐ์‚ฐ ๋ณต์Šต ์„ธ ๊ฐœ ์ฐจ์ด ์ •ํ™•ํžˆ ๋ณต์Šต [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป (MySQL) ํŠน์ • ํ˜•์งˆ์„ ๊ฐ€์ง€๋Š” ๋Œ€์žฅ๊ท  ์ฐพ๊ธฐ ๋ฌธ์ œ ํ’€์ด1. ๋ฌธ์ œ์„ค๋ช… 2. ์ ‘๊ทผ๋ฐฉ์‹ & ์ •๋‹ต์ฝ”๋“œSELF JOIN์œผ๋กœ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๋™์ผํ•œ ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ์กฐ์ธํ•ด์„œ ํ’€์–ด์ฃผ์ž.ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ALIAS๋ฅผ ์ค˜์„œ ๋งˆ์น˜ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋‘ ๋ฒˆ..
๋„ˆ๋ฌด ์‰ฌ์›Œ์„œ ๊ตณ์ด ๋ธ”๋กœ๊ทธ์— ์•ˆ ์˜ฌ๋ฆฌ๋ ค๋‹ค๊ฐ€ ์ฝ”๋“œ๋งŒ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค > ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต > 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๋ฅผ ํฐ ๊ฐ’๋ถ€ํ„ฐ ์ •..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (12 Page)
์ƒ๋‹จ์œผ๋กœ