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 : ํธ๋์ญ์ ์ ์์ ์ ์ทจ์ ๋ฐ ์๋๋๋ก ๋ณต๊ตฌ