์ „์ฒด ๊ธ€ 47

[SQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์˜ˆ์ œ | ๊ทธ๋ฃน๋ณ„ ์ตœ๋Œ€๊ฐ’ ๋ ˆ์ฝ”๋“œ ์ถœ๋ ฅ, ๊ทธ๋ฃน๋ณ„ ๋ ˆ์ฝ”๋“œ count | ์„œ๋ธŒ์ฟผ๋ฆฌ์™€ ์กฐ์ธ์˜ ์ฐจ์ด

โœ๏ธ ๋ฌผ๊ณ ๊ธฐ ์ข…๋ฅ˜ ๋ณ„ ๋Œ€์–ด ์ฐพ๊ธฐ : fish_type ๋ณ„๋กœ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ๊ฐ€์ง€๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฒ€์ƒ‰ 1) ์„œ๋ธŒ์ฟผ๋ฆฌ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ SELECT ID, (SELECT FISH_NAME FROM FISH_NAME_INFO WHERE FISH_TYPE = a.FISH_TYPE) AS FISH_NAME, -- ๋‘๋ฒˆ์งธ ํ…Œ์ด๋ธ” ์„œ๋ธŒ์ฟผ๋ฆฌ LENGTH FROM FISH_INFO a WHERE LENGTH IN (SELECT MAX(LENGTH) FROM FISH_INFO GROUP BY FISH_TYPE) -- self ํ…Œ์ด๋ธ” ์„œ๋ธŒ์ฟผ๋ฆฌ ORDER BY ID where ์ ˆ์—์„œ fish_type ๋ณ„๋กœ max(length)์„ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ์ถ”์ถœํ•˜์—ฌ ์—ฐ์‚ฐ์ž in์œผ๋กœ ์ตœ๋Œ€๊ฐ’์„ ์ถฉ์กฑํ•˜๋Š” length์„ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ํ•˜์˜€๋‹ค. 2) ์กฐ์ธ๋งŒ ์‚ฌ์šฉํ•˜..

Tools/- SQL 2024.03.15

[SQL] ์—ฐ์‚ฐ์ž | IN, & (AND ๋น„ํŠธ ์—ฐ์‚ฐ์ž) | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์˜ˆ์ œ

๐Ÿ“Œ IN ์—ฐ์‚ฐ์ž ์—ฌ๋Ÿฌ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ,OR ์กฐ๊ฑด์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ค„ ํ•„์š”์—†์ด,IN ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ๊ด„ํ˜ธ ์•ˆ์— ์กฐ๊ฑด์„ ๋‹ค ๋„ฃ์–ด์„œ ๋น„๊ต๊ฐ€๋Šฅํ•˜๋‹ค.   โœ๏ธ  ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL ๋ฌธ์ œ๋กœ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด์žSELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python' -- OR ์—ฌ๋Ÿฌ ๊ฐœORDER BY ID SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE 'Python' IN (SKILL_1, SKILL_2, SKILL_3)ORDER BY ID ์ฒซ๋ฒˆ์งธ๋Š”..

Tools/- SQL 2024.03.12

[MySQL] ์กฐ์ธ | INNER JOIN, OUTER JOIN

์กฐ์ธ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์„œ๋กœ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒƒ ๋‚ด๋ถ€ ์กฐ์ธ (INNER JOIN) ์ผ๋Œ€๋‹ค ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”๋“ค์˜ ๊ต์ง‘ํ•ฉ (์ผ๋Œ€๋‹ค ๊ด€๊ณ„ = PK-FK ๊ด€๊ณ„) ์˜ˆ์‹œ๋กœ, ํšŒ์›ํ…Œ์ด๋ธ”๊ณผ ๊ตฌ๋งคํ…Œ์ด๋ธ”์—์„œ ๊ตฌ๋งค์ด๋ ฅ์ด ์žˆ๋Š” ํšŒ์›์˜ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚ด๋ถ€ ์กฐ์ธ์˜ ๋ฌธ๋ฒ• SELECT ์—ด FROM ํ…Œ์ด๋ธ” 1 INNER JOIN ํ…Œ์ด๋ธ” 2 -- JOIN์œผ๋กœ๋„ ํ‘œํ˜„ ๊ฐ€๋Šฅ ON ํ…Œ์ด๋ธ” 1.KEY = ํ…Œ์ด๋ธ” 2.KEY ์˜ˆ์ œ) SELECT M.mem_id, M.mem_name, B.prod_name, M.addr FROM buy B -- ํ…Œ์ด๋ธ” ์ด๋ฆ„์— ๋ณ„์นญ์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค JOIN member M ON B.mem_id = M.mem_id ORDER BY M.mem_id ์™ธ๋ถ€ ์กฐ์ธ (OUTER JOIN) ์ผ๋Œ€..

Tools/- SQL 2024.03.12

[MySQL] 7์žฅ ์Šคํ† ์–ด๋“œ ํ•จ์ˆ˜ | ์ปค์„œ | ํŠธ๋ฆฌ๊ฑฐ

์Šคํ† ์–ด๋“œ ํ•จ์ˆ˜ MySQL์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜ ์™ธ์— ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ ์ž…๋ ฅ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์„ ๋”ฐ๋กœ ์„ค์ •ํ•œ๋‹ค ์Šคํ† ์–ด๋“œ ํ•จ์ˆ˜ ๋ฌธ๋ฒ• DELIMITER $$ CREATE FUNCTION ํ•จ์ˆ˜_์ด๋ฆ„ ( ๋งค๊ฐœ๋ณ€์ˆ˜ ) RETURNS ๋ฐ˜ํ™˜ํ˜•์‹ BEGIN ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋”ฉ RETURN ๋ฐ˜ํ™˜๊ฐ’; END $$ DELIMITER ; SELECT ํ•จ์ˆ˜_์ด๋ฆ„(); ์˜ˆ์ œ 1) ๊ณฑํ•˜๊ธฐ SET GLOBAL log_bin_trust_function_creators = 1; -- ์Šคํ† ์–ด๋“œ ํ•จ์ˆ˜ ์ƒ์„ฑ ๊ถŒํ•œ ํ—ˆ์šฉ (ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค) USE market_db; DROP FUNCTION IF EXISTS sumFunc; DELIMITER $$ CREATE FUNCTION sumFunc(number1 INT, number2 INT)..

Tools/- SQL 2024.03.10

[MySQL] 7์žฅ ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ € | ๋งค๊ฐœ๋ณ€์ˆ˜, ๋™์  SQL ํ™œ์šฉ ์˜ˆ์ œ

์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ € : SQL์— ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์„œ ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋น„์Šทํ•œ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ € ๋ฌธ๋ฒ• DELIMITER $$ CREATE PROCEDURE ์ด๋ฆ„ ( IN ๋˜๋Š” OUT ๋งค๊ฐœ๋ณ€์ˆ˜ ) BEGIN ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ ์ž‘์„ฑ END $$ DELIMITER ; ์˜ˆ์ œ 1) ํ…Œ์ด๋ธ” ์ „์ฒด ์„ ํƒ USE market_db; DROP PROCEDURE IF EXISTS user_proc; DELIMITER $$ CREATE PROCEDURE user_proc() BEGIN SELECT * FROM member; -- ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ € ๋‚ด์šฉ END $$ DELIMITER ; CALL user_proc() ; -- ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ ์˜ˆ์ œ 2) ์ž…๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•œ ์กฐ๊ฑด๋ถ€ ๊ฒ€์ƒ‰ DROP PR..

Tools/- SQL 2024.03.09

[MySQL] 6์žฅ ์ธ๋ฑ์Šค | ์ธ๋ฑ์Šค ๊ฐœ๋…, ์ธ๋ฑ์Šค ๋‚ด๋ถ€ ์ž‘๋™, ์ธ๋ฑ์Šค ์‹ค์ œ ์‚ฌ์šฉ

์ธ๋ฑ์Šค ๊ฐœ๋… ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ ์ธ๋ฑ์Šค๊ฐ€ ์—†๋‹ค๋ฉด MySQL์€ ์ „์ฒด ํ…Œ์ด๋ธ” ๊ฒ€์ƒ‰ ( Full Table Scan) ์„ ์‹คํ–‰ํ•  ๊ฒƒ => ์‹œ๊ฐ„ ์ธก๋ฉด์—์„œ ๋น„ํšจ์œจ์  ์ธ๋ฑ์Šค์˜ ์ข…๋ฅ˜ ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค : ์˜์–ด์‚ฌ์ „, ํ•˜๋‚˜๋งŒ ๊ฐ€๋Šฅ, ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ ์ •๋ ฌ ๋ณด์กฐ ์ธ๋ฑ์Šค : ์—ฌ๋Ÿฌ๊ฐœ ์„ค์ • ๊ฐ€๋Šฅ, ์ •๋ ฌ ์ƒ๊ด€ X USE market_db; CREATE TABLE table1 ( col1 INT PRIMARY KEY, col2 INT, col3 INT ); SHOW INDEX FROM table1; CREATE TABLE table2 ( col1 INT PRIMARY KEY, col2 INT UNIQUE, col3 INT UNIQUE); SHOW INDEX FROM table2; DROP TABLE IF EX..

Tools/- SQL 2024.03.08

[์‹œ๊ณ„์—ด ๋ถ„์„] ARIMA ๋ชจ๋ธ | ํŒŒ์ด์ฌ ์˜ˆ์ œ

ARIMA๋ฅผ ๋‹ค๋ฃฌ ์œ ํŠœ๋ธŒ ๊ฐ•์˜์™€ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋“ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ARIMA ๋ชจ๋ธ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด์•˜๊ณ  ๊ฐ„๋‹จํ•œ ํŒŒ์ด์ฌ ์˜ˆ์ œ๋กœ ์ฝ”๋“œ๋„ ๋‹ค๋ค„๋ณด๋ ค ํ•œ๋‹ค. ARIMA ๋ชจ๋ธ์€ Autoregressive Integrated Moving Average ๋ผ๋Š” ๋œป์œผ๋กœ, AR(Autoregression) ๋ชจํ˜•๊ณผ MA(Moving Average) ๋ชจํ˜•์„ ํ•ฉ์นœ ๋ชจํ˜•์ด๋‹ค. ๋…๋ฆฝ๋ณ€์ˆ˜๊ณผ ์ข…์†๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์‹œ๊ฐ„์„ ๋…๋ฆฝ๋ณ€์ˆ˜๋กœ ์ข…์†๋ณ€์ˆ˜๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. ๋˜ํ•œ, ์ „ํ†ต์ ์ธ ํ†ต๊ณ„ ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•œ ๋ชจ๋ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ†ต๊ณ„์ ์ธ ์ดํ•ด๊ฐ€ ์–ด๋А์ •๋„ ํ•„์š”ํ•˜๋‹ค. 0. ์ •์ƒ์„ฑ ์‹œ๊ณ„์—ด ๋ถ„์„์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •์ƒ์„ฑ์„ ๋ ์–ด์•ผ ํ•œ๋‹ค ์‹œ๊ฐ„์— ๊ด€๊ณ„์—†์ด ํ‰๊ท ๊ณผ ๋ถ„์‚ฐ์ด ์ผ์ •ํ•œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ •์ƒ์ ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค๋ฉด,..