DML (Data Manipulation Language) ๋ฐ์ดํฐ ์กฐ์์ด
: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ๋ค์ด์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ / ์์ / ์ญ์ / ์กฐํ ํ๋ ๋ช ๋ น์ด
INSERT : ๋ฐ์ดํฐ ์ฝ์
UPDATE : ๋ฐ์ดํฐ ์์
DELETE : ๋ฐ์ดํฐ ์ญ์
UPSERT : ์ ๋ ฅ๋๋ KEY๊ฐ ์ค๋ณต์ผ ๊ฒฝ์ฐ UPDATE, ์๋ ๊ฒฝ์ฐ INSERT
1. ๋ฐ์ดํฐ ์ฝ์ (INSERT)
INSERT INTO [ํ ์ด๋ธ๋ช ] ([์ปฌ๋ผ๋ช ]) VALUES ([์ปฌ๋ผ์ ํด๋นํ๋ ๊ฐ]);
๊ฐ ์ปฌ๋ผ์ ํด๋นํ๋ ๊ฐ๋ค์ ์ปฌ๋ผ ์์๋๋ก ์จ์ค๋ค.
ํ
์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ค ๋ ์ปฌ๋ผ ์๋ฆฌ์ * ์ ์จ์ฃผ๋ฉด ๋๋ค.
ํ์ง๋ง DB๋ ํผ์ ๋ณด๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ปฌ๋ผ๋ช
์ ๋ชจ๋ ์จ์ฃผ๋ ๊ฒ์ด ์ข๊ณ ,
* ์ ์ฌ์ฉํ๋ฉด values๋ฅผ ์ปฌ๋ผ์ด ํ
์ด๋ธ์ ๋ค์ด๊ฐ์๋ ์์๋๋ก ์จ์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ ์ ์๋ค.
ํน์ ์ปฌ๋ผ๋ง ์ ์ด์ฃผ๋ฉด ๊ทธ ๊ฐ๋ค๋ง ๋ฃ์ ์ ์๋ค. ( ๊ฐ์ ๋ฃ์ง ์์ ์ปฌ๋ผ์ null ์ด ๋ค์ด๊ฐ๋ค.)
2. ๋ฐ์ดํฐ ์์
UPDATE [ํ ์ด๋ธ๋ช ] SET [์ปฌ๋ผ๋ช ] = [๋ณ๊ฒฝํ ๊ฐ] where [์กฐ๊ฑด];
UPDATE [ํ
์ด๋ธ] : [ํ
์ด๋ธ]์ ์์ ํด๋ผ
SET [์ปฌ๋ผ๋ช
] = [๋ณ๊ฒฝํ ๊ฐ] : ์ด ๊ฐ์ผ๋ก ์ธํ
WHERE [์กฐ๊ฑด] : ์ด ์กฐ๊ฑด์ธ ๊ณณ์
- ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ๋ where ์ ์ ํตํด์ ์กฐ๊ฑด์ ์ค ์ ์๋ค.
3. ๋ฐ์ดํฐ ์ญ์
DELETE FROM [ํ ์ด๋ธ๋ช ];
ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ญ์ ํ ๋๋ ์กฐ๊ฑด์ ์ฃผ์ง ์๋๋ค.
4. UPSERT
upsert : ๊ฐ์ด ์์ผ๋ฉด ๋ฃ๊ณ (insert), ๊ฐ์ด ์์ผ๋ฉด ์์ (update) ํ๋ค.
INSERT INTO [ํ ์ด๋ธ๋ช (์ปฌ๋ผ) VALUES (์ปฌ๋ผ ๊ฐ) ON DUPLICATE KEY UPDATE (๋ณ๊ฒฝํ ๊ฐ);
๊ทธ๋ฅ insert ๋ฌธ์ on duplicate key update ๋ฅผ ๋ถ์ธ ๊ฒ.
์ฐ์ emp_no ๊ฐ ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์ ์ฝ์กฐ๊ฑด์ด ๊ฑธ๋ ค์๋ค๋ ์ ์ ํ์
emp_no ์ 112๊ฐ ์๋ค๋ฉด insert ๋ฌธ์ ์๋ ๊ฐ๋ค์ ๋ฃ๋๋ค.
ํ์ง๋ง emp_no ์ 112๊ฐ ์ด๋ฏธ ์๋ค๋ฉด on duplicate key ๋ค์ ์๋ update ๊ตฌ๋ฌธ์ ์คํํ๋ค.
๋๋ ์ด๋ฏธ ํ ์ด๋ธ์ emp_no = 112๋ฅผ ๋ฃ์ด๋จ์ผ๋ฏ๋ก ์๋ง๋๊ฐ ์๊ฐ์๋ก ์์ ๋๋ค.
> DML 2 ์์ SELECT ๋ฌธ์ ์์ธํ ๋ค๋ฃฌ๋ค.
https://bamdal.tistory.com/entry/DB-DML-2-select
'Data > MariaDB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DB] ์ ์ฝ ์กฐ๊ฑด(constraint) 1 - ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด / NOT NULL (0) | 2022.04.28 |
---|---|
DB] DML 2 - SELECT (0) | 2022.04.28 |
DB] DDL(๋ฐ์ดํฐ ์ ์์ด) / ํ ์ด๋ธ (0) | 2022.04.28 |
DB] DBeaver ์ฌ์ฉ (0) | 2022.04.28 |
DB] DDL(๋ฐ์ดํฐ ์ ์์ด) / root - ์ ์ ์์ฑ, ๊ถํ ์ค์ (0) | 2022.04.28 |