๐ฉ๐ปโ๐ป ํจ์คํธ์บ ํผ์ค ๊ตญ๋น์ง์๊ณผ์ 'SQL๋ก ์์ํ๋
๋ฐ์ดํฐ ๋ถ์ ์ฒซ๊ฑธ์' ๊ฐ์ ๋ด์ฉ ์ ๋ฆฌ๋ฅผ ๋ชฉ์ ์ผ๋ก ๊ฐ์ธ ๊ณต๋ถ์ฐจ ์์ฑํ ๊ธ์
๋๋ค.
โ๏ธ ์๊ฐ ์ค์ธ ๊ต์ก๊ณผ์ : https://fastcampus.co.kr/b2g_kdc_sql
ย
1. ๋ฐ์ดํฐ ํ์
MySQL ๋ฐ์ดํฐ ํ์
- ์ ์ํ : ์์์ ์ด ์๋ ์ซ์ ๋ฐ์ดํฐ ์) 123
- ์ค์ํ : ์์์ ์ด ์๋ ์ซ์ ๋ฐ์ดํฐ ์) 1.1
- ๋ฌธ์ํ : ํ
์คํธ๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด ๋ฐ์ดํฐ ์) โ๊ฐ๋๋ค๋ผโ
- ๋ ์งํ : ๋ ์ง์ ์๊ฐ ๋ฐ์ดํฐ ์) โ2022-03-01โ
ย
๋ฐ์ดํฐ ํ์
์ ์์์ผ ํ๋์ง?
- MySQL์์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ ์ ์ ์ฅ ๊ณต๊ฐ์ ๋ฐ์ดํฐ ํ์
์ ๋ฏธ๋ฆฌ ์ ํด์ค์ผ ํ๋ค.
- ๋ฏธ๋ฆฌ ์ ํด๋ ๋ฐ์ดํฐ ํ์
์ด ์๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ ์ ์ฅ์ด ๋ถ๊ฐ๋ฅ ํจ
ย
์ซ์ํ ๋ฐ์ดํฐ ํ์
1) ์ ์ํ
๋ฐ์ดํฐ ํ์
| ๋ฐ์ดํธ ์ |
---|
TINYINT | 1 |
SMALLINT | 2 |
MEDIUMINT | 3 |
INT (๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ) | 4 |
BIGINT | 8 |
2) ์ค์ํ
๋ฐ์ดํฐ ํ์
| ๋ฐ์ดํธ ์ |
---|
FLOAT (๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ) | 4 |
DOUBLE | 8 |
3) ๋ฌธ์ํ
๋ฐ์ดํฐ ํ์
| ์ต๋ ๋ฐ์ดํธ ์ | ํน์ง |
---|
CHAR(n) | 255 | n์ 1๋ถํฐ 255๊น์ง ์ง์ ๊ฐ๋ฅ, ์ง์ ํ์ง ์์ผ๋ฉด 1์ด ์๋ ์
๋ ฅ/ ๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด ์ ์ฅ |
VARCHAR(n) | 65535 | n์ 1๋ถํฐ 65535๊น์ง ์ง์ ๊ฐ๋ฅ, ์ง์ ์ํ๋ฉด ์ฌ์ฉ ๋ถ๊ฐ / ๋ณ๋ ๊ธธ์ด ๋ฌธ์์ด ์ ์ฅ |
(n) : ๊ดํธ์์ ๋ช ๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ์
๋ ฅํด์ค์ผ ํ๋ค.
๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด
- ์ ํด์ง ๋งํผ์ ๊ณต๊ฐ์ ๋ชจ๋ ์ฌ์ฉ
- CHAR(6)์ โ๊ฐ๋๋ค"๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ, 6๊ฐ์ ๊ณต๊ฐ ์ค์์ โ๊ฐ๋๋ค" 3๊ฐ์ ๊ณต๊ฐ๋ง ์ฐจ์งํ๊ณ , ๋จ์ 3๊ฐ์ ๊ณต๊ฐ์ ๊ทธ๋๋ก ๋๋ค.
๋ณ๋ ๊ธธ์ด ๋ฌธ์์ด
- ํ์ํ ๋งํผ์ ๊ณต๊ฐ๋ง ์ฌ์ฉ
- VARCHAR(6)์ โ๊ฐ๋๋ค"๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ, 6๊ฐ์ ๊ณต๊ฐ ์ค์์ โ๊ฐ๋๋ค" 3๊ฐ์ ๊ณต๊ฐ๋ง ์ฐจ์งํ๊ณ , ๋จ์ 3๊ฐ์ ์ปดํจํฐ๊ฐ ์ง์ฐ๊ณ ๋ค๋ฅธ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํจ
4) ๋ ์งํ
๋ฐ์ดํฐ ํ์
| ๋ฐ์ดํธ ์ |
---|
DATE | 3 |
DATETIME | 3 |
TIME | 4 |
YEAR | 1 |
ย ย
2. ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ
MySQL์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ์์
๊ณผ ์ ์ฌํ๋ค.
์ซ์ํ ๋ฐ์ดํฐ์ ๊ธฐ๋ณธ ํน์ง
- ์ซ์ํ ๋ฐ์ดํฐ๋ โ์' ์ด๋ค.
- ๋ฐ์ดํฐ๊ฐ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
ย
๋ฌธ์ํ ๋ฐ์ดํฐ ํน์ง
- ๋ฐ๋์ ๋ฐ์ดํ์ ํจ๊ป ์ฌ์ฉํด์ผ ํจ
- ๋ฐ์ดํ๊ฐ ์๋ ๋ฌธ์๋ ํค์๋๋ ํจ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค/ํ
์ด๋ธ/์ปฌ๋ผ์ ์ด๋ฆ์ผ๋ก ์ธ์ํจ
ย
๋ฐ์ดํฐ ํ์
๊ฐ ํ์
๋ณํ
์ซ์ํ, ๋ฌธ์ํ, ๋ ์งํ ๋ฐ์ดํฐ๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก ํ์
๋ณํ์ด ๊ฐ๋ฅํ๋ค.
ย ย
ย
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ค๋ฃจ๊ธฐ
ํ
์ด๋ธ์ด๋?
- ํ๊ณผ ์ด๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ํ
ย
ํ
์ด๋ธ ๊ตฌ์ฑ ์์
1) ์ปฌ๋ผ(์ด)
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ํ
- ์ปฌ๋ผ์ ์ด๋ฆ๊ณผ ๋ฐ์ดํฐ ํ์
์ ํ
์ด๋ธ์ ๋ง๋ค ๋ ๋ฏธ๋ฆฌ ์ ํด์ง
- ์ปฌ๋ผ์ ์ด๋ฆ์ ๋์ผํ ํ
์ด๋ธ ๋ด์ ์ค๋ณต๋ ์ ์์
- ํ
์ด๋ธ์ ๋ฐ๋์ 1๊ฐ ์ด์์ ์ปฌ๋ผ์ ๊ฐ์ ธ์ผ ํจ
2) ๋ก์ฐ(ํ)
- ๊ด๊ณ๋ ๊ฐ ๋ฆฌ์คํธ
- ํ๋์ ๋ก์ฐ๋ ํ๋์ ๊ด๊ณ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํจ
- ๊ฐ์ ํ
์ด๋ธ ์์์ ๋ก์ฐ๋ ํญ์ ๋์ผํ ๊ตฌ์กฐ
- ๋ก์ฐ๋ฅผ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์
3) ๊ฐ
- ์ปฌ๋ผ์ ์ํ๋ ์ค์ ๋ฐ์ดํฐ ๊ฐ
- ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์
๋ง์ ๊ฐ์ผ๋ก ๊ฐ์ง ์ ์์
ย
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ฏธ
- ๋ฐ์ดํฐ ์ ์ฅ์
- ํ
์ด๋ธ์ ์ ์ฅํด๋๋ ์ ์ฅ์ = ์คํค๋ง
ย
ํ
์ด๋ธ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฑ ์์
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ฑ โ ํ
์ด๋ธ ์์ฑ
ย
ย
4. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ
์ฟผ๋ฆฌ ์์ฑ ์ ์ฃผ์ํ ์
- ์ฟผ๋ฆฌ๊ฐ ๋๋ ๋๋ ๋ช
๋ น์ ๋ง์น๋ค๋ ์๋ฏธ์ ;(์ธ๋ฏธ์ฝ๋ก )์ ๋ถ์ฌ์ผ ํจ
- ํค์๋๋ ์ฝ์ (create database)
ย
์ฟผ๋ฆฌ ๋ฌธ๋ฒ ์์๋ณด๊ธฐ!
1) ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
CREATE DATABASE[๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ];
2) ํ์ฌ ์กด์ฌํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชฉ๋ก ํ์ธ
- โSโ ๊ผญ ๋ถ์ฌ์ผ ํจ!
SHOW DATABASES;
3) [๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ] ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์.
- ํ
์ด๋ธ ์์ฑ์ use๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋ฒ๊ฑฐ๋กญ์ง ์์
- use๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์์ฑํ๊ณ ์ ํ๋ ํ
์ด๋ธ ๋ช
์์ [๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ].[ํ
์ด๋ธ ์ด๋ฆ] ์ผ๋ก ์์ฑํด์ผ ํจ
USE [๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ];
4) ํ
์ด๋ธ ๋ง๋ค๊ธฐ
CREATE TABLE [ํ
์ด๋ธ ์ด๋ฆ] (
[์ปฌ๋ผ ์ด๋ฆ] [๋ฐ์ดํฐ ํ์
],
);
์ด๋ฆ ์ ํ๊ธฐ ๊ท์น
- ๋ฌธ์, ์ซ์, _๋ฅผ ์ฌ์ฉ
- ์๋ฌธ ์๋ฌธ์ ์ฌ์ฉ
- ์์ฝ์ด๋ ์ฌ์ฉ ๋ถ๊ฐ
- ๋จ์ด์ ๋จ์ด ์ฌ์ด์๋ ๋น์นธ ๋์ ๋ฅผ ์ฌ์ฉ ์)new_age
- ๋ฌธ์๋ก ์์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ์ค๋ณต๋ ์ ์์
- ํค์๋๋ ํจ์๋ช
์ ๋๋ฌธ์ ์ฌ์ฉ
- ์ฌ์ฉ์๊ฐ ์ ์ํ ์ด๋ฆ์๋ ์๋ฌธ์ ์ฌ์ฉ
5) ํ
์ด๋ธ ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ
ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] RENAME [๋ณ๊ฒฝํ ํ
์ด๋ธ ์ด๋ฆ];
6) ์๋ก์ด ์ปฌ๋ผ ์ถ๊ฐํ๊ธฐ
ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] ADD COLUMN [์ปฌ๋ผ ์ด๋ฆ][ํ
์ดํฐ ํ์
];
7) ๊ธฐ์กด ์ปฌ๋ผ ํ์
๋ณ๊ฒฝ
ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] MODIFY COLUMN [์ปฌ๋ผ ์ด๋ฆ][์๋ก์ด ํ
์ดํฐ ํ์
];
8) ๊ธฐ์กด ์ปฌ๋ผ ์ด๋ฆ๊ณผ ํ์
๋ณ๊ฒฝํ๊ธฐ
ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] CHANGE COLUMN [์ปฌ๋ผ ์ด๋ฆ][์๋ก์ด ์ปฌ๋ผ ์ด๋ฆ][์๋ก์ด ํ
์ดํฐ ํ์
];
9) ์ปฌ๋ผ ์ง์ฐ๊ธฐ
ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] DROP COLUMN [์ปฌ๋ผ ์ด๋ฆ];
ย
5. ํ
์ด๋ธ ์ง์ฐ๊ธฐ
DROP ์ ํ
์ด๋ธ ์์ฒด๋ฅผ ์ง์ฐ์ง๋ง TRUNCATE ๊ฐ๋ง ์ง์
1) ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์ฐ๊ธฐ
DROP DATABASE [๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ];
2) ํ
์ด๋ธ ์ง์ฐ๊ธฐ
DROP TABLE [ํ
์ด๋ธ ์ด๋ฆ];
3) ํ
์ด๋ธ ๊ฐ๋ง ์ง์ฐ๊ธฐ
TRUNCATE TABLE [ํ
์ด๋ธ ์ด๋ฆ];
4) ๋ฐ์ดํฐ๋ฒ ์ด์ค/ ํ
์ด๋ธ์ด ์กด์ฌํ๋ค๋ฉด ์ง์ฐ๊ธฐ
DROP DATABASE IF EXISTS [๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ];
DROP TABLE IF EXISTS [ํ
์ด๋ธ ์ด๋ฆ];
ย ย
ย
6. ๋ฐ์ดํฐ ์ฝ์
, ์ญ์ , ์์ ํ๊ธฐ
1) ๋ฐ์ดํฐ ํ๋ ์ฝ์
ํ๊ธฐ
- ์ปฌ๋ผ ์ด๋ฆ๊ณผ ๊ฐ์ ๋ํ ๋ฆฌ์คํธ ๊ฐฏ์๊ฐ ์ผ์นํด์ผ ํจ
INSERT INTO [ํ
์ด๋ธ ์ด๋ฆ] ([์ปฌ๋ผ1 ์ด๋ฆ], [์ปฌ๋ผ2 ์ด๋ฆ])
VALUES([์ปฌ๋ผ1 ๊ฐ], [์ปฌ๋ผ2 ๊ฐ]) // ๊ฐ๊ฐ์ ๋ก์ฐ๋ ํ๋์ ๊ดํธ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค.
2) ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ
DELETE FROM [ํ
์ด๋ธ ์ด๋ฆ] WHERE [์กฐ๊ฑด ๊ฐ]; // ์กฐ๊ฑด์ ํด๋นํ๋ ๋ก์ฐ๋ง ์ญ์
3) ๋ฐ์ดํฐ ์์ ํ๊ธฐ
UPDATE [ํ
์ด๋ธ ์ด๋ฆ] SET [์ปฌ๋ผ ์ด๋ฆ]=[์ ๊ฐ] WHERE [์กฐ๊ฑด ๊ฐ];