1. ๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด (DDL : Data Definition Language)

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ์–ธ์–ด์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๋“ฑ์˜ ๋ฐ์ดํ„ฐ์˜ ์ „์ฒด์˜ ๊ณจ๊ฒฉ์„ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์–ธ์–ด
- DDL์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํ…Œ์ด๋ธ” ์ด๋ฆ„, ์ปฌ๋Ÿผ ์ด๋ฆ„์— ๋Œ€ํ•ด ๋”ฐ์˜ดํ‘œ๊ฐ€ ์•„๋‹Œ ๋ฐฑํ‹ฑ(`)์œผ๋กœ ๊ฐ์‹ธ์ค€๋‹ค. (์†์„ฑ๋ช…์€ ๋”ฐ์˜ดํ‘œ ๊ฐ€๋Šฅ)

 

1 ) CREATE : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ” ์ƒ์„ฑ

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ
`CREATE DATABASE `DATABASENAME`;`
- ํ…Œ์ด๋ธ” ์ƒ์„ฑ
`CREATE TABLE `DB_TABLENAME`(
โ€˜์†์„ฑ๋ช… 1โ€™ ํƒ€์ž…,
โ€˜์†์„ฑ๋ช… 2โ€™ ํƒ€์ž…,
...
)`

 

ใ„ฑ ) ํƒ€์ž… ์ข…๋ฅ˜

- ๋ฌธ์žํ˜• ๋ฐ์ดํ„ฐํƒ€์ž…
๋ฐ์ดํ„ฐ ์œ ํ˜• ์ •์˜
CHAR(n) ๊ณ ์ • ๊ธธ์ด ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ตœ๋Œ€ 255byte)- ์ง€์ •๋œ ๊ธธ์ด๋ณด๋‹ค ์งฆ์€ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ๋  ์‹œ ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„ ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.
VARCHAR(n) ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ตœ๋Œ€ 65535byte)- ์ง€์ •๋œ ๊ธธ์ด๋ณด๋‹ค ์งฆ์€ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ๋  ์‹œ ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„์€ ์ฑ„์šฐ์ง€ ์•Š๋Š”๋‹ค.
TINYTEXT(n) ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ตœ๋Œ€ 255byte)
TEXT(n) ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ตœ๋Œ€ 65535byte)
MEDIUMTEXT(n) ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ตœ๋Œ€ 16777215byte)
LONGTEXT(n) ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ตœ๋Œ€ 4294967295byte)
JSON JSON ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ํƒ€์ž… - JSON ํ˜•ํƒœ์˜ ํฌ๋งท์„ ๊ผญ ์ค€์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค.

 

- ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…
๋ฐ์ดํ„ฐ ์œ ํ˜• ์ •์˜
TINYINT(n) ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…(1byte) -128 ~ +127 ๋˜๋Š” 0 ~ 255์ˆ˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
SMALLINT(n) ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…(2byte) -32768 ~ 32767 ๋˜๋Š” 0 ~ 65536์ˆ˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
MEDIUMINT(n) ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…(3byte) -8388608 ~ +8388607 ๋˜๋Š” 0 ~ 16777215์ˆ˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
INT(n) ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…(4byte) -2147483648 ~ +2147483647 ๋˜๋Š” 0 ~ 4294967295์ˆ˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
BIGINT(n) ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…(8byte) - ๋ฌด์ œํ•œ ์ˆ˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
FLOAT(๊ธธ์ด, ์†Œ์ˆ˜) ๋ถ€๋™ ์†Œ์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…(4byte) -๊ณ ์ • ์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉ ํ˜•ํƒœ์ด๋‹ค.
DECIMAL(๊ธธ์ด, ์†Œ์ˆ˜) ๊ณ ์ • ์†Œ์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณ ์ •(๊ธธ์ด+1byte) -์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉ ํ˜•ํƒœ์ด๋‹ค.
DOUBLE(๊ธธ์ด, ์†Œ์ˆ˜) ๋ถ€๋™ ์†Œ์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…(8byte) -DOUBLE์„ ๋ฌธ์ž์—ด๋กœ ์ €์žฅํ•œ๋‹ค.

 
- ๋‚ ์งœํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…

๋ฐ์ดํ„ฐ ์œ ํ˜• ์ •์˜
DATE ๋‚ ์งœ(๋…„๋„, ์›”, ์ผ) ํ˜•ํƒœ์˜ ๊ธฐ๊ฐ„ ํ‘œํ˜„ ๋ฐ์ดํ„ฐ ํƒ€์ž…(3byte)
TIME ์‹œ๊ฐ„(์‹œ, ๋ถ„, ์ดˆ) ํ˜•ํƒœ์˜ ๊ธฐ๊ฐ„ ํ‘œํ˜„ ๋ฐ์ดํ„ฐ ํƒ€์ž…(3byte)
DATETIME ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ํ˜•ํƒœ์˜ ๊ธฐ๊ฐ„ ํ‘œํ˜„ ๋ฐ์ดํ„ฐ ํƒ€์ž…(8byte)
TIMESTAMP ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ํ˜•ํƒœ์˜ ๊ธฐ๊ฐ„ ํ‘œํ˜„ ๋ฐ์ดํ„ฐ ํƒ€์ž…(4byte) -์‹œ์Šคํ…œ ๋ณ€๊ฒฝ ์‹œ ์ž๋™์œผ๋กœ ๊ทธ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์ด ์ €์žฅ๋œ๋‹ค.
YEAR ๋…„๋„ ํ‘œํ˜„ ๋ฐ์ดํ„ฐ ํƒ€์ž…(1byte)

 

- ์ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž…
๋ฐ์ดํ„ฐ ์œ ํ˜• ์ •์˜
BINARY(n) & BYTE(n) CHAR์˜ ํ˜•ํƒœ์˜ ์ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ตœ๋Œ€ 255byte)
VARBINARY(n) VARCHAR์˜ ํ˜•ํƒœ์˜ ์ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ตœ๋Œ€ 65535byte)
TINYBLOB(n) ์ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ตœ๋Œ€ 255byte)
BLOB(n) ์ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ตœ๋Œ€ 65535byte)
MEDIUMBLOB(n) ์ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ตœ๋Œ€ 16777215byte)
LONGBLOB(n) ์ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ตœ๋Œ€ 4294967295byte)

 

2 ) ALTER : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ” ์ˆ˜์ •

- ์ปฌ๋Ÿผ ์ถ”๊ฐ€
ALTER TABLE `์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” ํ…Œ์ด๋ธ” ์ด๋ฆ„` ADD COLUMN `์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” ์ปฌ๋Ÿผ ๋ช…` `์†์„ฑ๊ฐ’`;
- ์ปฌ๋Ÿผ ์‚ญ์ œ
ALTER TABLE `์‚ญ์ œํ•˜๊ณ ์ž ํ•˜๋Š” ํ…Œ์ด๋ธ” ์ด๋ฆ„` DROP COLUMN `์‚ญ์ œํ•˜๊ณ ์ž ํ•˜๋Š” ์ปฌ๋Ÿผ ์ด๋ฆ„`;
- ์ปฌ๋Ÿผ ์ด๋ฆ„ ๋ณ€๊ฒฝ
ALTER TABLE `๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” ์ปฌ๋Ÿผ์ด ์žˆ๋Š” ํ…Œ์ด๋ธ” ์ด๋ฆ„` CHANGE COLUMN `๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” ์ปฌ๋Ÿผ ๋ช…` `์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ๋ช…` ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” ์†์„ฑ๊ฐ’;
- ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋ณ€๊ฒฝ
ALTER TABLE `๋ณ€๊ฒฝํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ” ์ด๋ฆ„` RENAME `์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ” ์ด๋ฆ„`;

ย 

3 ) DROP : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ” ์‚ญ์ œ

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ
DROP DATABASE `DATABASE NAME`;
- ํ…Œ์ด๋ธ” ์‚ญ์ œ
DROP TABLE `TABLE NAME`;

ย 

4 ) TRUNCATE : ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™”

- DELETE๋ฌธ๊ณผ ๋‹ค๋ฅธ์  : ์กฐ๊ฑด์—†์ด ๋ชจ๋‘ ์‚ญ์ œํ•œ๋‹ค๋Š” ๊ฒƒ
TRUNCATE TABLE [TABLE NAME];

 

2. ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (DML : Data Manipulation Language)

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋“ฑ๋ก๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๋“ฑ์˜ ์—ญํ• ์„ ํ•˜๋Š” ์–ธ์–ด
- ์ฒ˜๋ฆฌ ์ˆœ์„œ : WHERE > GROUP BY > HAVING > SELECT > ORDER BY
- ๊ตฌ๋ฌธ ์ž‘์„ฑ ์ˆœ์„œ : SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY

1) SELECT : ๋ฐ์ดํ„ฐ ์กฐํšŒ

ใ„ฑ ) ๊ธฐ๋ณธ

- ์ „์ฒด ๋ฐ์ดํ„ฐ ์กฐํšŒ

SELECT * FROM [TABLE NAME];

- ์›ํ•˜๋Š” ์ปฌ๋Ÿผ ์กฐํšŒ

SELECT [COLUMN1], [COLUMN2], ... FROM [TABLE NAME];

- ์ถœ๋ ฅ ๊ฐœ์ˆ˜ ์ง€์ •

SELECT * FROM [TABLE NAME] LIMIT [์›ํ•˜๋Š” ๊ฐœ์ˆ˜];

- ์˜ค๋ฆ„์ฐจ์ˆœ

SELECT [COLUMN1] FROM [TABLE NAME] ORDER BY [๊ธฐ์ค€ ์ปฌ๋Ÿผ] ASC;

- ๋‚ด๋ฆผ์ฐจ์ˆœ

SELECT [COLUMN1] FROM [TABLE NAME] ORDER BY [๊ธฐ์ค€ ์ปฌ๋Ÿผ] DESC;

- ์กฐ๊ฑด ๊ฑธ๊ธฐ

SELECT [COLUMN1], [COLUMN2], ... FROM [TABLE NAME] WHERE [๊ธฐ์ค€ ์ปฌ๋Ÿผ] = โ€˜์กฐ๊ฑด๊ฐ’โ€™;

- AS -> ์ปฌ๋Ÿผ ์ด๋ฆ„์ด AS ๋’ค์— ๋‚˜์˜จ ์ด๋ฆ„์œผ๋กœ ์ถœ๋ ฅ ๋จ.

SELECT [COLUMN1] AS A FROM [TABLE NAME];
 

ใ„ด ) ์ง‘๊ณ„ํ•จ์ˆ˜(SUM, AVG, MIN, MAX, COUNT)

A ) ๊ธฐ๋ณธ

SELECT ์ง‘๊ณ„ํ•จ์ˆ˜(์ปฌ๋Ÿผ ์ด๋ฆ„) FROM [TABLE NAME];

- SUM : ํ•ฉ์‚ฐ

SELECT SUM(์ปฌ๋Ÿผ ์ด๋ฆ„) FROM [TABLE NAME];

- AVG : ํ‰๊ท 

SELECT AVG(์ปฌ๋Ÿผ ์ด๋ฆ„) FROM [TABLE NAME];

- MIN : ์ตœ์†Œ๊ฐ’

SELECT MIN(์ปฌ๋Ÿผ ์ด๋ฆ„) FROM [TABLE NAME];

- MAX : ์ตœ๋Œ€๊ฐ’

SELECT MAX(์ปฌ๋Ÿผ ์ด๋ฆ„) FROM [TABLE NAME];

- COUNT : ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜

SELECT COUNT(์ปฌ๋Ÿผ ์ด๋ฆ„) FROM [TABLE NAME];

- ROUND(์ปฌ๋Ÿผ๋ช…, ์ˆซ์ž) : ์ปฌ๋Ÿผ์„ ์ˆซ์ž๋งŒํผ๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์†Œ์ˆ˜์ ์„ ๋ฐ˜์˜ฌ๋ฆผํ•ด์คŒ

SELECT ROUND(์ปฌ๋Ÿผ ์ด๋ฆ„, 2) FROM [TABLE NAME];
-> ์†Œ์ˆ˜์  3๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•ด์„œ ์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ๊นŒ์ง€๋งŒ ๋ณด์—ฌ์คŒ
 

B ) 2๊ฐœ ์ด์ƒ์˜ ์ปฌ๋Ÿผ์„ ํ•ฉ์ณ์„œ ์กฐํšŒํ•˜๊ธฐ
- || ' ' || ์‚ฌ์šฉ

SELECT [COLUMN1] || ' ' || [COLUMN2] FROM [TABLE NAME];

SELECT [COLUMN1] || ' ' || [COLUMN2] AS COLUMN12 FROM [TABLE NAME];
 

C ) ์ค‘๋ณต ์ œ๊ฑฐ ์กฐํšŒ
- DISTINCT ์‚ฌ์šฉ

SELECT DISTINCT(COLUMN1) FROM [TABLE NAME];
 

ใ„ท ) JOIN

A ) ๊ธฐ๋ณธ

 

B ) ๊ธฐ๋ณธ

 

ใ„น ) ์‘์šฉ

A ) UNION
- ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์ณ์ฃผ๋Š” ํ•จ์ˆ˜
- ์œ ์˜ํ• ์  : ์ปฌ๋Ÿผ๋ช…์ด ๊ฐ™์•„์•ผํ•จ ๋‹ค๋ฅด๋‹ค๋ฉด AS๋กœ ๋ณ„์นญ์„ ๊ฐ™๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๊ธฐ
- UNION์€ ์ค‘๋ณต ์ œ๊ฑฐ, UNION ALL์€ ์ค‘๋ณต ํฌํ•จ

 

B ) COALESCE(์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ..., ์ปฌ๋Ÿผn)
- ์ปฌ๋Ÿผ1์ด NULL๊ฐ’์ด ์•„๋‹ˆ๋ฉด ์ปฌ๋Ÿผ1์„ RETURN
- ์ปฌ๋Ÿผ1์ด NULL์ด๋ฉด ์ปฌ๋Ÿผ2๊ฐ’์„ ํ™•์ธํ•˜์—ฌ ์ปฌ๋Ÿผ2๊ฐ€ NULL์ด ์•„๋‹ˆ๋ฉด ์ปฌ๋Ÿผ2 RETURN
- ์ปฌ๋Ÿผ2๊ฐ€ NULL์ด๋ผ๋ฉด ์ปฌ๋Ÿผn-1๊นŒ์ง€ ํ™•์ธํ›„ ์ปฌ๋Ÿผ n-1๊นŒ์ง€ NULL์ด๋ผ๋ฉด ์ปฌ๋Ÿผn RETURN

 

2) INSERT : ๋ฐ์ดํ„ฐ ์‚ฝ์ž…

 

3) UPDATE : ๋ฐ์ดํ„ฐ ์ˆ˜์ •

 

4) DELETE : ๋ฐ์ดํ„ฐ ์‚ญ์ œ

 

3. ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด (DCL : Data Control Language)

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๊ฐ์ฒด์— ๊ถŒํ•œ์„ ์ฃผ๋Š” ๋“ฑ์˜ ์—ญํ• ์„ ํ•˜๋Š” ์–ธ์–ด

 

1) GRANT : ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•œ ์ˆ˜ํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌ

 

2) REVOKE : ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•œ ์ˆ˜ํ–‰ ๊ถŒํ•œ์„ ๋ฐ•ํƒˆ, ํšŒ์ˆ˜

 

3) COMMIT : ํŠธ๋žœ์žญ์…˜์˜ ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜์˜

 

4) ROLLBACK : ํŠธ๋žœ์žญ์…˜์˜ ์ž‘์—…์„ ์ทจ์†Œ ๋ฐ ์›๋ž˜๋Œ€๋กœ ๋ณต๊ตฌ

 

By Dozzing

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๋Š” *๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค