Post

[SQL] DML DCL DDL ์ง‘๊ณ„ํ•จ์ˆ˜

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” SQL์˜ ์„ธ ๊ฐ€์ง€ ์–ธ์–ด ๋ถ„๋ฅ˜ DMLยทDDLยทDCL๊ณผ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์ •๋ฆฌํ•œ๋‹ค. ์ด ๋ช…๋ น์–ด๋“ค์€ ANSI ํ‘œ์ค€ ์ฟผ๋ฆฌ๋ผ ๋Œ€๋ถ€๋ถ„์˜ DBMS์—์„œ ๊ณตํ†ต์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

SQL์€ ๋ชฉ์ ์— ๋”ฐ๋ผ ์„ธ ๋ถ€๋ฅ˜๋กœ ๋‚˜๋‰œ๋‹ค.

๋ถ„๋ฅ˜์ด๋ฆ„๋ช…๋ น์–ด
DML๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ดINSERT UPDATE DELETE SELECT
DDL๋ฐ์ดํ„ฐ ์ •์˜์–ดCREATE ALTER DROP
DCL๋ฐ์ดํ„ฐ ์ œ์–ด์–ดGRANT REVOKE (๊ถŒํ•œ)

1. DML โ€” ๋ฐ์ดํ„ฐ ์กฐ์ž‘

INSERT โ€” ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€

1
insert into emp(empno, ename, sal) values(7777, 'Dong Hee', 40000);

Desktop View Desktop View

๐Ÿ’ก ์ง€์ •ํ•œ ์ปฌ๋Ÿผ(๋ฒˆํ˜ธยท์ด๋ฆ„ยท๊ธ‰์—ฌ)๋งŒ ๋„ฃ์œผ๋ฉด ๋‚˜๋จธ์ง€๋Š” NULL๋กœ ์ฑ„์›Œ์ง„๋‹ค.

DELETE โ€” ๋ ˆ์ฝ”๋“œ ์‚ญ์ œ

1
delete from emp where ename = 'MILLER';

Desktop View

โš ๏ธ WHERE๋ฅผ ๋นผ๋ฉด ์ „์ฒด ๋ ˆ์ฝ”๋“œ๊ฐ€ ์‚ญ์ œ๋˜๋‹ˆ ์ฃผ์˜.

UPDATE โ€” ๋ ˆ์ฝ”๋“œ ์ˆ˜์ •

1
UPDATE EMP SET JOB = 'PRESIDENT', SAL = 5000 WHERE EMPNO = 7369;

Desktop View

SET์œผ๋กœ ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์„ ํ•œ ๋ฒˆ์— ๋ฐ”๊พผ๋‹ค. (SMITH๊ฐ€ ๋ฒผ๋ฝ ์ง„๊ธ‰!)


2. DDL โ€” ๋ฐ์ดํ„ฐ ์ •์˜

CREATE(์ƒ์„ฑ) ์™ธ์— ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ž์ฒด๋ฅผ ๋ฐ”๊พธ๋Š” ALTER๊ฐ€ ๊ฐ•๋ ฅํ•˜๋‹ค.

ALTER โ€” ์ปฌ๋Ÿผ ์‚ญ์ œ/์ถ”๊ฐ€

1
2
ALTER TABLE EMP DROP COLUMN COMM;      -- ์ปฌ๋Ÿผ ์‚ญ์ œ
ALTER TABLE EMP ADD phone char(13);    -- ์ปฌ๋Ÿผ ์ถ”๊ฐ€

Desktop View Desktop View

๋ช…๋ น์—ญํ• 
ALTER TABLE ~ DROP COLUMN์ปฌ๋Ÿผ(์—ด) ์ž์ฒด ์‚ญ์ œ
ALTER TABLE ~ ADD์ปฌ๋Ÿผ ์ถ”๊ฐ€ (๊ฐ’์€ NULL๋กœ ์‹œ์ž‘)

โš ๏ธ DDL์€ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฐ•๋ ฅํ•œ ๋ช…๋ น์–ด๋ผ ์‹ ์ค‘ํžˆ ์จ์•ผ ํ•œ๋‹ค.


3. DCL โ€” ๊ถŒํ•œ ์ œ์–ด

DCL์€ ๊ถŒํ•œ์„ ์ฃผ๊ณ (GRANT) ๋บ๋Š”(REVOKE) ๊ฒƒ์ด๋‹ค. ์˜ค๋ผํด์—์„œ ํŠน์ • ์‚ฌ์šฉ์ž(BATMAN)์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ–ˆ๋˜ ๊ฒƒ์ด ์ด์— ํ•ด๋‹นํ•œ๋‹ค.


4. ์ง‘๊ณ„ํ•จ์ˆ˜

์—ฌ๋Ÿฌ ํ–‰์„ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์š”์•ฝํ•œ๋‹ค.

ํ•จ์ˆ˜์—ญํ• 
COUNT()์ด ๊ฐœ์ˆ˜
AVG()ํ‰๊ท 
MAX() / MIN()์ตœ๋Œ€ / ์ตœ์†Œ
SUM()ํ•ฉ๊ณ„
1
2
3
4
5
SELECT COUNT(EMPNO) AS ์ด์‚ฌ์›์ˆ˜ FROM EMP;
SELECT AVG(SAL) AS ํ‰๊ท ๊ธ‰์—ฌ FROM EMP;
SELECT MAX(SAL) AS ์ตœ๋Œ€๊ฐ’ FROM EMP;
SELECT MIN(SAL) AS ์ตœ์†Œ๊ฐ’ FROM EMP;
SELECT SUM(SAL) AS ๊ธ‰์—ฌํ•ฉ FROM EMP;

Desktop View

๐Ÿ’ก AS๋Š” ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์— ๋ณ„์นญ์„ ๋ถ™์ธ๋‹ค. ๋ณ„์นญ์ด ์—†์œผ๋ฉด COUNT(EMPNO)์ฒ˜๋Ÿผ ๊ทธ๋Œ€๋กœ ๋‚˜์˜ค๋ฏ€๋กœ, ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.


5. ์ •๋ ฌยท๊ทธ๋ฃนํ™”

1
2
3
SELECT * FROM EMP ORDER BY SAL DESC;   -- ๋‚ด๋ฆผ์ฐจ์ˆœ
SELECT * FROM EMP ORDER BY SAL ASC;    -- ์˜ค๋ฆ„์ฐจ์ˆœ
SELECT DEPTNO FROM EMP GROUP BY DEPTNO; -- ๊ทธ๋ฃนํ™”(์ค‘๋ณต ์ œ๊ฑฐ)

Desktop View Desktop View

์ ˆ์—ญํ• 
ORDER BY ์ปฌ๋Ÿผ DESC/ASC๋‚ด๋ฆผ/์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
GROUP BY ์ปฌ๋Ÿผ์ค‘๋ณต ๊ฐ’์„ ๋ฌถ์–ด ์ข…๋ฅ˜๋ณ„๋กœ

๐Ÿ“ ์ •๋ฆฌ

1
2
3
4
5
6
SQL 3๋ถ„๋ฅ˜ + ์ง‘๊ณ„
โ”œโ”€ DML  INSERT/UPDATE/DELETE/SELECT (๋ฐ์ดํ„ฐ ์กฐ์ž‘)
โ”œโ”€ DDL  CREATE/ALTER/DROP (๊ตฌ์กฐ ์ •์˜)
โ”œโ”€ DCL  GRANT/REVOKE (๊ถŒํ•œ ์ œ์–ด)
โ”œโ”€ ์ง‘๊ณ„  COUNT/AVG/MAX/MIN/SUM (+ AS ๋ณ„์นญ)
โ””โ”€ ์ •๋ ฌ  ORDER BY(์ •๋ ฌ) / GROUP BY(๊ทธ๋ฃนํ™”)
๊ฐœ๋…ํ•œ ์ค„ ์ •์˜
DML/DDL/DCL์กฐ์ž‘ / ๊ตฌ์กฐ ์ •์˜ / ๊ถŒํ•œ
AS๊ฒฐ๊ณผ ์ปฌ๋Ÿผ ๋ณ„์นญ
ORDER BY / GROUP BY์ •๋ ฌ / ๊ทธ๋ฃนํ™”

SQL์€ ๋ชฉ์ ์— ๋”ฐ๋ผ DML(์กฐ์ž‘)ยทDDL(์ •์˜)ยทDCL(์ œ์–ด)๋กœ ๋‚˜๋‰œ๋‹ค. ํŠนํžˆ DDL์€ ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฐ•๋ ฅํ•œ ๋ช…๋ น์–ด์ด๋‹ˆ ์‹ ์ค‘ํžˆ, WHERE ์—†๋Š” DELETE/UPDATE๋Š” ํ•ญ์ƒ ์กฐ์‹ฌํ•˜์ž.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.