Banner

My Tech Blog (MySQL)

์˜ค๋Š˜์˜ ๋ช…์–ธ
" ์šฐ์—ฐ์€ ์ค€๋น„๋œ ๋งˆ์Œ์—๊ฒŒ๋งŒ ๋ฏธ์†Œ ์ง“๋Š”๋‹ค. "
- ๋ฃจ์ด ํŒŒ์Šคํ‡ด๋ฅด (ํ”„๋ž‘์Šค ์ƒ๋ฌผํ•™์ž, ํ™”ํ•™์ž)
์–ด๋ ค์›Œ์„œ ๋ฏธ๋ฃจ๋‹ค๊ฐ€ ๋ชป ํ‘ผ ๋ฌธ์ œ๊ฐ€ 2๊ฐœ ์žˆ์—ˆ๋‹ค. Lv4 ๋ฌธ์ œ 1๊ฐœ๋ž‘ Lv5 ๋ฌธ์ œ 1๊ฐœ์ด๋‹ค. ๋‚œ์ด๋„ ์ตœ์ƒ์ธ ๋งŒํผ, ๋ฌธ์ œ ์ฝ๊ธฐ๋„ ์ „์— ํ’€๊ธฐ๊ฐ€ ๋‘๋ ค์šด ๋งˆ์Œ์ด ์žˆ์—ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์™ ์ง€ ์˜ค๋žซ ๋™์•ˆ ๋…ธํŠธ๋ถ ์•ž์— ์•‰์•„์„œ ๋จธ๋ฆฌ ๋งŽ์ด ์“ฐ๊ณ  ๊ณ ๋ฏผํ•ด ๋ด์•ผ ๋  ๊ฒƒ ๊ฐ™์•„์„œ ํ•˜๊ธฐ์‹ซ์—ˆ๋‹ค. MySQL์—์„œ๋Š” START WITH CONNECT BY๊ฐ€ ์•ˆ๋œ๋‹ค๋Š” ๊ฑฐ ์•Œ๊ณ ๋ถ€ํ„ฐ๋Š” ๋˜ ์ƒˆ๋กœ์šด๊ฑฐ ๋ฐฐ์šฐ๊ธฐ ์‹ซ์–ด์„œ ๋ฏธ๋ค˜๋Š”๋ฐ ์˜ค๋Š˜ ์–ผ๋ฅธ ๋๋‚ด๋ฒ„๋ฆฌ๊ณ  ์ž์•ผ์ง€1. ๋ฌธ์ œ์„ค๋ช…2. ์ ‘๊ทผ๋ฐฉ์‹์ฒ˜์Œ์—๋Š” ์–ด๋ ค์›Œ ๋ณด์—ฌ์„œ ๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ๋ญ˜ ๊ตฌํ•ด์•ผ ํ•˜๋Š”์ง€ ์ƒ๊ฐ์˜ ํ๋ฆ„์„ ํ•œ๊ธ€๋กœ ๋ฐ›์•„ ์ ์–ด ๋ดค๋‹ค. PARENT_ID๊ฐ€ NULL์ด๋ฉด 1์„ธ๋Œ€์ด๋‹ค. PARENT_ID๊ฐ€ NULL์ธ ID๋ฅผ ๋ถ€๋ชจ๋กœ ๊ฐ€์ง€๋Š” ํ–‰์ด 2์„ธ๋Œ€ ์ด๋‹ค. PARENT_ID๊ฐ€ NULL์ธ ID๋ฅผ ๋ถ€๋ชจ๋กœ ๊ฐ€์ง€๋Š” ํ–‰์˜ ID๋ฅผ ๋ถ€๋ชจ๋กœ ๊ฐ€..
1. ๋ฌธ์ œ ์„ค๋ช… 2. ์ ‘๊ทผ ๋ฐฉ๋ฒ•๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋“  ์ƒ๊ฐ์€ `์—ฐ๊ด€ ์ปฌ๋Ÿผ์ด ์—†์„ ๋•Œ๋Š” ํ…Œ์ด๋ธ”์„ ์–ด๋–ป๊ฒŒ ์กฐ์ธํ•˜๋Š”๊ฐ€?` -> ๊ทธ๋ž˜์„œ ์นดํ…Œ์‹œ์•ˆ ๊ณฑ์ด ๋– ์˜ฌ๋ž๋‹ค.๋ชจ๋“  ์กฐํ•ฉ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์นดํ…Œ์‹œ์•ˆ ๊ณฑ(Cartesian Product)์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ CROSS JOIN ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.์ผ๋‹จ ์—ฌ๊ธฐ๊นŒ์ง€๋งŒ ์ž‘์„ฑ ํ•˜๊ณ  ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰์‹œ์ผœ ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ํ…Œ์ด๋ธ”์ด ์˜†์œผ๋กœ ๋ถ™์—ˆ๋‹ค.  ์—ฌ๊ธฐ์„œ ๋‚ ์งœ๋ณ„๋กœ GROUP BY ํ•ด ๋ณด๊ณ  ๋ญ”๊ฐ€ ํ•ด ๋ณด๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ค‘๊ฐ„์— ๊ธฐ๊ฐ€ ๋ง‰ํžŒ ์ƒ๊ฐ์ด ๋‚ฌ๋‹ค.ํ…Œ์ด๋ธ”์„ ์˜†์ด ์•„๋‹ˆ๋ผ ์•„๋ž˜๋กœ ๋ถ™์ด๋ฉด ๋˜๊ฒ ๋‹ค. ๊ทธ๋Ÿผ UNION ALL์„ ์จ ๋ณด๋Š”๊ฒŒ ์–ด๋–จ๊นŒ?๊ทธ๋ž˜์„œ ์•„๋ž˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ™์ด๋Š”๊ฒŒ ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ์ค‘๋ณต๊ฐ’์„ ์—†์• ๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— UNION์ด ์•„๋‹ˆ๋ผ UNION ALL... ์„ค๋งˆ...!!  SELECT SALES_DATE..
๋‚œ์ด๋„ 3์ด๋ผ ์–ด๋ ค์šธ ์ค„ ์•Œ์•˜๋Š”๋ฐ ๋„ˆ๋ฌด ์‰ฌ์›Œ์„œ ๊ทธ๋ƒฅ ์ฝ”๋“œ๋งŒ ํฌ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์žฅ๊ท ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ 1 ์ •๋‹ต์ฝ”๋“œSELECT ID, SIZEFROM ( SELECT ID, CASE WHEN SIZE_OF_COLONY > 1000 THEN 'HIGH' WHEN SIZE_OF_COLONY ๋Œ€์žฅ๊ท ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ 2 ๋ฌธ์ œ๋Œ€์žฅ๊ท  ๊ฐœ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๋•Œ ์ƒ์œ„ 0% ~ 25% ๋ฅผ 'CRITICAL', 26% ~ 50% ๋ฅผ 'HIGH', 51% ~ 75% ๋ฅผ 'MEDIUM', 76% ~ 100% ๋ฅผ 'LOW' ๋ผ๊ณ  ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์žฅ๊ท  ๊ฐœ์ฒด์˜ ID(ID) ์™€ ๋ถ„๋ฅ˜๋œ ์ด๋ฆ„(COLONY_NAME)์„ ์ถœ๋ ฅํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ๊ฐœ์ฒด์˜ ID ์— ๋Œ€ํ•ด ์˜ค๋ฆ„..
[๋ชฉ์ฐจ]1. ๊ฒฝ๊ธฐ๋„์— ์œ„์น˜ํ•œ ์‹ํ’ˆ์ฐฝ๊ณ  ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ2. ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์˜ ์•„์ด๋”” / ์ด๋ฆ„์ด ์žˆ๋Š” ๋™๋ฌผ์˜ ์•„์ด๋””3. NULL ์ฒ˜๋ฆฌํ•˜๊ธฐ4. ๋‚˜์ด ์ •๋ณด๊ฐ€ ์—†๋Š” ํšŒ์› ์ˆ˜ ๊ตฌํ•˜๊ธฐ5. ROOT ์•„์ดํ…œ ๊ตฌํ•˜๊ธฐ6. ์žก์€ ๋ฌผ๊ณ ๊ธฐ์˜ ํ‰๊ท  ๊ธธ์ด ๊ตฌํ•˜๊ธฐ7. โญ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†๋Š” ์•„์ดํ…œ ๊ตฌํ•˜๊ธฐ1. ๊ฒฝ๊ธฐ๋„์— ์œ„์น˜ํ•œ ์‹ํ’ˆ์ฐฝ๊ณ  ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐSELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, (IFNULL(FREEZER_YN,'N')) AS FREEZER_YNFROM FOOD_WAREHOUSEWHERE ADDRESS LIKE '๊ฒฝ๊ธฐ๋„%'ORDER BY WAREHOUSE_ID;2. ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์˜ ์•„์ด๋”” & ์ด๋ฆ„์ด ์žˆ๋Š” ๋™๋ฌผ์˜ ์•„์ด๋””SELECT ANIMAL_IDFROM ANIMAL_INSWHERE..
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..
๋„ˆ๋ฌด ์‰ฌ์›Œ์„œ ๊ตณ์ด ๋ธ”๋กœ๊ทธ์— ์•ˆ ์˜ฌ๋ฆฌ๋ ค๋‹ค๊ฐ€ ์ฝ”๋“œ๋งŒ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค > ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต > 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 ..
๐Ÿฆ๋ฌธ์ œ์„ค๋ช… ์ฒ˜์Œ์—๋Š” ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์ง€ ๋ชปํ–ˆ๋‹ค. ๋‚˜๋Š” `๋‘ ํ…Œ์ด๋ธ”์„ ์กฐ์ธ์„ ํ•ด์•ผ ํ•˜๋Š”๋ฐ ์กฐ์ธ ์กฐ๊ฑด์„ ์–ด๋–ป๊ฒŒ ์ฃผ์ง€?` ์ด๋ ‡๊ฒŒ ์ƒ๊ฐ์„ ํ•˜๊ณ  ๋ฌธ์ œ์— ์ ‘๊ทผํ–ˆ๋‹ค. ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด ์กฐ์ธ์„ ํ•  ์ˆ˜ ์—†๋‹ค.์ด๊ฑด ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ํ‘ธ๋Š” ๋ฌธ์ œ์˜€๋‹ค. ๋‚˜๋Š” ์ฒ˜์Œ์— ์ด ๋ฌธ์ œ๊ฐ€ ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์ฒ˜๋Ÿผ ๋Š๊ปด์กŒ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚ด๊ฐ€ ์ง์ ‘ ์ด์ง„์ˆ˜ ๊ณ„์‚ฐ์„ ํ•˜๋Š” ๋กœ์ง์„ ์งœ์•ผ ํ•˜๋Š”๊ฑด๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.์ž๋ฆฌ์ˆ˜2561286432168421์ด์ง„์ˆ˜110010000 ์‹ญ์ง„์ˆ˜๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” `BIN(SKILL_CODE)` ํ•จ์ˆ˜ ์จ์„œ CODE ์ปฌ๋Ÿผ์ด๋ž‘ ๋งž์ถฐ๋ณผ๊นŒ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์ข‹์„ ์ง€ ์‰ฝ๊ฒŒ ์ƒ๊ฐ์ด ๋‚˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ ํ›„์— `SUBSTRING(BIN(SKILL_CODE),?,?)` ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ฐ’์„ ์ž˜๋ผ ์ค˜์•ผ ํ•˜๋‚˜ ์ƒ๊ฐ๋„ ํ•ด ๋ดค..
์ƒ๋‹จ์œผ๋กœ