๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

DB/MySQL16

[MySQL] ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ํ˜•์‹ - BLOB,TEXT BLOB & TEXT ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ varchar, varbinary ์™€ ๋‹ค๋ฅด๊ฒŒ ์ธ๋ฑ์Šค ์ง€์ •์‹œ ๋ฐ˜๋“œ์‹œ prefix(์ ‘๋‘์‚ฌ) ๊ธธ์ด๋ฅผ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. BLOB์ด๋ž€? Binary Large OBject์˜ ์•ฝ์ž๋กœ ์ด๋ฏธ์ง€, ์‚ฌ์šด๋“œ ๋“ฑ ํฌ๊ธฐ๊ฐ€ ํฌ๋ฉด์„œ, ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์œผ๋กœ ๋‹ค๋ฃจ์–ด์ง€๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ์•ฝ์–ด ์ž…๋‹ˆ๋‹ค. MySQL์—์„œ BLOB ๋ฐ์ดํ„ฐ๋Š” ์ด 4๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. BLOB ํƒ€์ž… ์šฉ๋Ÿ‰ TINYBLOB 2^8 - 1 [256 Bytes] BLOB 2^16 - 1 [64 KB] MEDIUMBLOB 2^24 - 1 [8 MB] LONGBLOB 2^32 - 1 [4 GB] ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ปฌ๋Ÿผ ๊ฐ’์˜ byte์— ๊ธฐ๋ฐ˜ํ•œ ์ •๋ ฌ๊ณผ ๋น„๊ต๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. TEXT์ด๋ž€? TEXT ๋˜ํ•œ .. 2022. 7. 19.
[MySQL] IS NULL ASC, IS NULL DESC ์•ˆ๋…•ํ•˜์„ธ์š” yunamom ์ž…๋‹ˆ๋‹ค :D MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ NULL ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํฌ์ŠคํŒ…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. IS NULL DESC : ์ •๋ ฌํ•˜๊ณ ์ž ํ•˜๋Š” NULL ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐ์ดํ„ฐ ์•ž์— ๋‚˜์˜ค๊ฒŒ ํ•œ๋‹ค. IS NULL ASC : ์ •๋ ฌํ•˜๊ณ ์ž ํ•˜๋Š” NULL ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐ์ดํ„ฐ ๋’ค์— ๋‚˜์˜ค๊ฒŒ ํ•œ๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Order BY [์ •๋ ฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ปฌ๋Ÿผ๋ช…] IS NULL ASC; Default ๊ฐ’์€ DESC(๋‚ด๋ฆผ์ฐจ์ˆœ) ์ž…๋‹ˆ๋‹ค. *NULL ์ด ๋จผ์ € ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. 2022. 4. 14.
[MySQL] ๋ฐ์ดํ„ฐ ์ˆ˜์ •ํ•˜๊ธฐ - UPDATE UPDATE - ๋ฐ์ดํ„ฐ ์ˆ˜์ • UPDATE ๋ฌธ์€ ํ•ด๋‹น ํ…Œ์ด๋ธ”์—์„œ WHERE ์ ˆ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ์˜ ๊ฐ’๋งŒ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’ก(WHERE ์กฐ๊ฑด์‹์„ ์ƒ๋žตํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ(๋กœ์šฐ)๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.) UPDATE ํ…Œ์ด๋ธ”์ด๋ฆ„ SET ํ•„๋“œ์ด๋ฆ„1=๋ฐ์ดํ„ฐ๊ฐ’1, ํ•„๋“œ์ด๋ฆ„2=๋ฐ์ดํ„ฐ๊ฐ’2, ... WHERE ํ•„๋“œ์ด๋ฆ„=๋ฐ์ดํ„ฐ๊ฐ’ 2022. 3. 29.
[MySQL] ์ œ์•ฝ ์กฐ๊ฑด - constraint โœจ์ œ์•ฝ ์กฐ๊ฑด(constraint)์ด๋ž€? ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด, ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ๊ฒ€์‚ฌ ๊ทœ์น™์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ œ์•ฝ ์กฐ๊ฑด์€ CREATE ๋ฌธ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ๋‚˜ ALTER ๋ฌธ์œผ๋กœ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋„ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. MySQL์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ œ์•ฝ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ถ„ ์„ค๋ช… 1. NOT NULL ๋ฌด์กฐ๊ฑด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. 2. UNIQUE ์ค‘๋ณต๋œ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค. 3. PRIMARY KEY๐Ÿ”‘ ๊ณ ์œ ํ‚ค - NOT NULL๊ณผ UNIQUE ์ œ์•ฝ ์กฐ๊ฑด์˜ ํŠน์ง•์„ ๋ชจ๋‘ ๊ฐ€์ง„๋‹ค. 4. FOREIGN KEY ์™ธ๋ž˜ํ‚ค - ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ•  5. DEFAULT ๊ธฐ๋ณธ๊ฐ’ ์„ค์ • ๐Ÿ‘‡NOT NULL CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ ( ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž… NOT .. 2022. 3. 29.
[MySQL] ์„œ๋ธŒ์ฟผ๋ฆฌ( subquery) ๋ž€? โœจ์„œ๋ธŒ์ฟผ๋ฆฌ(subquery) ์„œ๋ธŒ์ฟผ๋ฆฌ(subquery)๋ž€ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ ๋‚ด๋ถ€์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” SELETE ๋ฌธ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์™ธ๋ถ€์ฟผ๋ฆฌ(outer query)๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋‚ด๋ถ€์ฟผ๋ฆฌ(inner query)๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋ฐ˜๋“œ์‹œ ๊ด„ํ˜ธ(())๋กœ ๊ฐ์‹ธ์ ธ ์žˆ์–ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. MySQL์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ์™ธ๋ถ€์ฟผ๋ฆฌ๋Š” SELECT, INSERT, UPDATE, DELETE, SET, DO ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋˜ ๋‹ค์‹œ ๋‹ค๋ฅธ ์„œ๋ธŒ์ฟผ๋ฆฌ ์•ˆ์— ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ํŠน์ง• ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์กฐํ™”์‹œํ‚ค๋ฏ€๋กœ, ์ฟผ๋ฆฌ์˜ ๊ฐ ๋ถ€๋ถ„์„ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. 2. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋ณต์žกํ•œ J.. 2022. 3. 29.
[MySQL] CASE ์กฐ๊ฑด๋ฌธ SELECT ( CASE ์ปฌ๋Ÿผ๋ช… WHEN '๊ฐ’1' THEN '์ถœ๋ ฅํ• ๊ฐ’1' WHEN '๊ฐ’2' THEN '์ถœ๋ ฅํ• ๊ฐ’2' WHEN '๊ฐ’3' THEN '์ถœ๋ ฅํ• ๊ฐ’3' END )AS ์ปฌ๋Ÿผ๋ช… // 2022. 3. 28.
[MySQL] ๋ฐ์ดํ„ฐ์˜ ๊ต์ง‘ํ•ฉ & ํ•ฉ์ง‘ํ•ฉ - JOIN โœจ MySQL JOIN ์ด๋ž€? ๋‘˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ํ…Œ์ด๋ธ”๋“ค์ด ์ ์–ด๋„ ํ•˜๋‚˜์ด์ƒ์˜ ์ปฌ๋Ÿผ์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณต์œ ํ•˜๊ณ  ์žˆ๋Š” ์ปฌ๋Ÿผ์„ PK ๋˜๋Š” FK๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. INNER JOIN LEFT/RIGHT JOIN OUTER JOIN ๊ต์ง‘ํ•ฉ,๊ณตํ†ต์ ์ธ ๋ถ€๋ถ„๋งŒ SELECT๋จ ์กฐ์ธ๊ธฐ์ค€ ์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋‘ SELECT ๋จ OUTER JOIN์—์„  INNER Table์— ์ผ์น˜ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ์—†์œผ๋ฉด ๋ชจ๋‘ NULL๋กœ ์ฑ„์›Œ์„œ ๊ฐ€์ ธ์˜จ๋‹ค. ์ž‘์„ฑ๋ฒ• ) ์ฒซ๋ฒˆ์งธํ…Œ์ด๋ธ”์ด๋ฆ„ JOIN ๋‘๋ฒˆ์งธํ…Œ์ด๋ธ”์ด๋ฆ„ ON ์กฐ๊ฑด ์ž‘์„ฑ๋ฒ• ) ์ฒซ๋ฒˆ์งธํ…Œ์ด๋ธ”์ด๋ฆ„ LEFT JOIN ๋‘๋ฒˆ์งธํ…Œ์ด๋ธ”์ด๋ฆ„ ON ์กฐ๊ฑด ์ž‘์„ฑ๋ฒ• ) SELECT ํ•„๋“œ์ด๋ฆ„ FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ UNION SELECT ํ•„๋“œ์ด๋ฆ„ FRO.. 2022. 3. 28.
[MySQL] ๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™” - GROUP BY GROUP BY ๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ฒƒ, ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„ํ•˜๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์—์„œ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. GROUP BY๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํฌ์ŠคํŒ… ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :D ๐Ÿ’ก์™œ ํ–‰์„ ๊ทธ๋ฃนํ™”ํ•ด์•ผ ํ• ๊นŒ์š”? ์šฐ๋ฆฌ๋Š” SQL์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์ธ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์™œ ๊ทธ๋ฃนํ™”ํ•ด์•ผ ํ• ๊นŒ์š”? ์ฐธ๊ณ ๋กœ, GROUP BY ์ ˆ์€ ์ฃผ๋กœ ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ํ–‰์˜ ๊ฐ’์„ ๋”ํ•˜๊ฑฐ๋‚˜, ํ‰๊ท ๊ฐ’์„ ๋‚ด๊ฑฐ๋‚˜, ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ์— ๊ด€ํ•œ ๊ณ„์‚ฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์ง‘๊ณ„ ํ•จ์ˆ˜์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. COUNT() : ํ–‰์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด์คŒ 2. AVG() : ํ–‰ ์•ˆ์— ์žˆ๋Š” ๊ฐ’์˜ ํ‰๊ท ์„ ๋‚ด์–ด์คŒ 3. MIN() : ํ–‰ ์•ˆ์— ์žˆ๋Š” ๊ฐ’์˜ ์ตœ์†Ÿ๊ฐ’์„ .. 2022. 3. 28.
[MySQL] ์ˆซ์ž, ๋ฌธ์ž์—ด, ๋‚ ์งœ ํ•จ์ˆ˜ # ์ˆซ์ž ํ•จ์ˆ˜ # ABS์ ˆ๋Œ€๊ฐ’ # CEIL์†Œ์ˆ˜์  ์˜ฌ๋ฆผ # FLOOR์†Œ์ˆ˜์  ๋ฒ„๋ฆผ # ROUND์†Œ์ˆ˜์  ๋ฐ˜์˜ฌ๋ฆผ (์ž๋ฆฌ์ˆ˜์ง€์ •๊ฐ€๋Šฅ) # TRUNCATE ์†Œ์ˆ˜์  ๋ฒ„๋ฆผ(์ž๋ฆฌ์ˆ˜์ง€์ •๊ฐ€๋Šฅ) # POWx์˜ y์Šน # MOD๋‚˜๋จธ์ง€ # GREATEST max # LEAST min SELECT ABS(100) , ABS(-100); SELECT CEIL(10.1), CEIL(10.4) , CEIL(10.8); SELECT FLOOR(10.1), FLOOR(10.4) , FLOOR(10.8); SELECT ROUND(10.1), ROUND(10.4) , ROUND(10.8); SELECT ROUND(166.555, 0);# ์†Œ์ˆ˜์  ์ดํ•˜ 0์ž๋ฆฌ SELECT ROUND(166.555, 1);# ์†Œ์ˆ˜์  ์ดํ•˜ 1์ž๋ฆฌ SELECT ROUND.. 2022. 3. 27.
728x90
๋ฐ˜์‘ํ˜•