2-3-1. DML
๊ณผ๋ชฉ2. SQL ๊ธฐ๋ณธ๊ณผ ํ์ฉ
์ 3์ฅ ๊ด๋ฆฌ ๊ตฌ๋ฌธ
์ 1์ DML
์ ์ ์์ ํ ์ด๋ธ์ ์์ฑํ๊ณ ์์ฑ๋ ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด์ ๋ํด์ ์์๋ณด์๋ค. ์ง๊ธ๋ถํฐ๋ ๋ง๋ค์ด์ง ํ ์ด๋ธ์ ๊ด๋ฆฌํ๊ธฐ๋ฅผ ์ํ๋ ์๋ฃ๋ค์ ์ ๋ ฅ, ์์ , ์ญ์ , ์กฐํํ๋ DML(DATA MANIPULATION LANGUAGE) ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.
1. INSERT
๊ฐ. ๋จ์ผ ํ INSERT ๋ฌธ
ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง ์ ํ์ด ์์ผ๋ฉฐ ํ ๋ฒ์ ํ ๊ฑด๋ง ์ ๋ ฅ๋๋ค.
ํด๋น ์นผ๋ผ๋ช ๊ณผ ์ ๋ ฅ๋์ด์ผ ํ๋ ๊ฐ์ ์๋ก 1:1๋ก ๋งคํํด์ ์ ๋ ฅํ๋ฉด ๋๋ค. ํด๋น ์นผ๋ผ์ ๋ฐ์ดํฐ ์ ํ์ด CHAR๋ VARCHAR2 ๋ฑ ๋ฌธ์ ์ ํ์ผ ๊ฒฝ์ฐ ใ ' ใ(SINGLE QUOTATION)๋ก ์ ๋ ฅํ ๊ฐ์ ์ ๋ ฅํ๋ค. ์ซ์์ผ ๊ฒฝ์ฐ ใ ' ใ(SINGLE QUOTATION)์ ๋ถ์ด์ง ์์์ผ ํ๋ค. ์ฒซ ๋ฒ์งธ ์ ํ์ ํ ์ด๋ธ์ ์นผ๋ผ์ ์ ์ํ ์ ์๋๋ฐ, ์ด๋ ์นผ๋ผ์ ์์๋ ํ ์ด๋ธ์ ์นผ๋ผ ์์์ ๋งค์นํ ํ์๋ ์์ผ๋ฉฐ, ์ ์ํ์ง ์์ ์นผ๋ผ์ Default๋ก NULL ๊ฐ์ด ์ ๋ ฅ๋๋ค. ๋จ, Primary Key๋ Not NULL ๋ก ์ง์ ๋ ์นผ๋ผ์ NULL์ด ํ์ฉ๋์ง ์๋๋ค. ๋ ๋ฒ์งธ ์ ํ์ ๋ชจ๋ ์นผ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ๋ก ๊ตณ์ด COLUMN_LIST๋ฅผ ์ธ๊ธํ์ง ์์๋ ๋์ง๋ง, ์นผ๋ผ์ ์์๋๋ก ๋น ์ง์์ด ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋์ด์ผ ํ๋ค.
[์์ ] ์ ์ ํ ์ด๋ธ์ ๋ฐ์ง์ฑ ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ถ ์นผ๋ผ๋ง ์ ๋ ฅํ๋ค.
[์์ ]
โถ ํ ์ด๋ธ๋ช : PLAYER
1๊ฐ์ ํ์ด ๋ง๋ค์ด์ก๋ค.
[ํ โ ก-1-11]์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์๋ PLAYER ํ ์ด๋ธ์ ๋ฐ์ง์ฑ ์ ์ ์ ๋ณด๊ฐ ์ ๋ ฅ๋์ด ์๋ ๊ฒ์ ๋ํ๋ธ ๊ฒ์ด๋ค. INSERT ๋ฌธ์ฅ์์ BACK_NO๊ฐ ๋ง์ง๋ง์ ์ ์๊ฐ ๋์๋๋ผ๋ ํ ์ด๋ธ์๋ ์นผ๋ผ ์์๋๋ก ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋์๋ค. ์นผ๋ผ๋ช ์ด ์ ์๋์ง ์์ ๊ฒฝ์ฐ NULL ๊ฐ์ด ์ ๋ ฅ๋์๋ค.
[์์ ] ํด๋น ํ ์ด๋ธ์ ์ด์ฒญ์ฉ ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํด๋ณธ๋ค.
[์์ ]
1๊ฐ์ ํ์ด ๋ง๋ค์ด์ก๋ค.
๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ ์ ์๋์ง ์์ ๋ฏธ์ง์ ๊ฐ์ธ E_PLAYER_NAME์ ๋ ๊ฐ์ ใ '' ใSINGLE QUOTATION์ ๋ถ์ฌ์ ํํํ๊ฑฐ๋, NATION์ด๋ BIRTH_DATE์ ๊ฒฝ์ฐ์ฒ๋ผ NULL์ด๋ผ๊ณ ๋ช ์์ ์ผ๋ก ํํํ ์ ์๋ค.
๋. ์๋ธ ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ค์ค ํ INSERT ๋ฌธ
2. UPDATE
์ ๋ ฅํ ์ ๋ณด ์ค์ ์๋ชป ์ ๋ ฅ๋๊ฑฐ๋ ๋ณ๊ฒฝ์ด ๋ฐ์ํ์ฌ ์ ๋ณด๋ฅผ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ค์์ UPDATE ๋ฌธ์ฅ์ ๊ธฐ๋ณธ ํํ์ด๋ค. UPDATE ๋ค์์ ์์ ๋์ด์ผ ํ ์นผ๋ผ์ด ์กด์ฌํ๋ ํ ์ด๋ธ๋ช ์ ์ ๋ ฅํ๊ณ SET ๋ค์์ ์์ ๋์ด์ผ ํ ์นผ๋ผ๋ช ๊ณผ ํด๋น ์นผ๋ผ์ ์์ ๋๋ ๊ฐ์ผ๋ก ์์ ์ด ์ด๋ฃจ์ด์ง๋ค.
[์์ ] ์ ์ ํ ์ด๋ธ์ ๋ฐฑ๋๋ฒ๋ฅผ ์ผ๊ด์ ์ผ๋ก 99๋ก ์์ ํ๋ค.
[์์ ]
480๊ฐ์ ํ์ด ์์ ๋์๋ค.
[์์ ] ์ ์ ํ ์ด๋ธ์ ํฌ์ง์ ์ ์ผ๊ด์ ์ผ๋ก 'MF'๋ก ์์ ํ๋ค.
[์์ ]
480๊ฐ์ ํ์ด ์์ ๋์๋ค.
3. DELETE
ํ ์ด๋ธ์ ์ ๋ณด๊ฐ ํ์ ์๊ฒ ๋์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ์ญ์ ๋ฅผ ์ํํ๋ค. ๋ค์์ DELETE ๋ฌธ์ฅ์ ๊ธฐ๋ณธ์ ์ธ ํํ์ด๋ค. DELETE FROM ๋ค์์ ์ญ์ ๋ฅผ ์ํ๋ ์๋ฃ๊ฐ ์ ์ฅ๋์ด ์๋ ํ ์ด๋ธ๋ช ์ ์ ๋ ฅํ๊ณ ์คํํ๋ค. ์ด๋ FROM ๋ฌธ๊ตฌ๋ ์๋ต์ด ๊ฐ๋ฅํ ํค์๋์ด๋ฉฐ, ๋ค์์ ๋ฐฐ์ธ WHERE ์ ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ํ ์ด๋ธ์ ์ ์ฒด ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ค.
[์์ ] ์ ์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ์ญ์ ํ๋ค.
[์์ ]
480๊ฐ์ ํ์ด ์ญ์ ๋์๋ค.
์ฐธ๊ณ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ DDL ๋ช ๋ น์ด์ DML ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์์ด์ ์ฐจ์ด๋ฅผ ๋ณด์ธ๋ค. DDL(CREATE, ALTER, RENAME, DROP) ๋ช ๋ น์ด์ธ ๊ฒฝ์ฐ์๋ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ DDL ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ ์๊ฐ ๋ช ๋ น์ด์ ํด๋นํ๋ ์์ ์ด ์ฆ์(AUTO COMMIT) ์๋ฃ๋๋ค. ํ์ง๋ง DML(INSERT, UPDATE, DELETE, SELECT) ๋ช ๋ น์ด์ ๊ฒฝ์ฐ, ์กฐ์ํ๋ ค๋ ํ ์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ์ ์ฌ๋ ค๋๊ณ ์์ ์ ํ๊ธฐ ๋๋ฌธ์ ์ค์๊ฐ์ผ๋ก ํ ์ด๋ธ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ์๋๋ค. ๋ฐ๋ผ์ ๋ฒํผ์์ ์ฒ๋ฆฌํ DML ๋ช ๋ น์ด๊ฐ ์ค์ ํ ์ด๋ธ์ ๋ฐ์๋๊ธฐ ์ํด์๋ COMMIT ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ TRANSACTION์ ์ข ๋ฃํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ SQL Server์ ๊ฒฝ์ฐ๋ DML์ ๊ฒฝ์ฐ๋ AUTO COMMIT์ผ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ์ค์ ํ ์ด๋ธ์ ๋ฐ์ํ๊ธฐ ์ํด COMMIT ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ํ์๊ฐ ์๋ค. ํ ์ด๋ธ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ, ์์คํ ํ์ฉ ์ธก๋ฉด์์๋ ์ญ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ก๊ทธ๋ก ์ ์ฅํ๋ DELETE TABLE ๋ณด๋ค๋ ์์คํ ๋ถํ๊ฐ ์ ์ TRUNCATE TABLE์ ๊ถ๊ณ ํ๋ค. ๋จ, TRUNCATE TABLE์ ๊ฒฝ์ฐ ์ญ์ ๋ ๋ฐ์ดํฐ์ ๋ก๊ทธ๊ฐ ์์ผ๋ฏ๋ก ROLLBACK์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ SQL Server์ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์์์ ์ผ๋ก ํธ๋์ญ์ ์ ์์ํ ํ TRUNCATE TABLE์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ์ดํ ์ค๋ฅ๊ฐ ๋ฐ๊ฒฌ๋์ด, ๋ค์ ๋ณต๊ตฌ๋ฅผ ์ํ ๊ฒฝ์ฐ ROLLBACK ๋ฌธ์ ์ด์ฉํ์ฌ ํ ์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ก ๋๋๋ฆด ์ ์๋ค. ํธ๋์ญ์ ๊ณผ COMMIT, ROLLBACK์ ๋ํด์๋ ๋ค์ ์ ์์ ์ค๋ช ํ๋ค.
4. MERGE
Last updated
Was this helpful?