๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์ง€์š”๋ฏธ์˜ IT์„ฑ์žฅ์ผ๊ธฐ
๐Ÿค“์ž๊ฒฉ์ฆ๐Ÿค“/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ DML

by ์ง€์š”๋ฏธ=P 2024. 4. 21.
728x90

 

DML(Data Manipulation Language; ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด)์˜ ๊ฐœ๋…

: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ์ž๋ฃŒ๋“ค์„ ์ž…๋ ฅ, ์ˆ˜์ •, ์‚ญ์ œ, ์กฐํšŒํ•˜๋Š” ์–ธ์–ด

 

 

DML์˜ ์œ ํ˜•

์„ธ์ธ์—…๋ฐ

SELECT ํ…Œ์ด๋ธ” ๋‚ด ์นผ๋Ÿผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ์กฐํšŒ
INSERT ๋ฐ์ดํ„ฐ ๋‚ด ์นผ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€
UPDATE ๋ฐ์ดํ„ฐ ๋‚ด ์นผ๋Ÿผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •
DELETE ๋ฐ์ดํ„ฐ ๋‚ด ์นผ๋Ÿผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ

 

 

SELECT๋ฌธ ๋ฐ์ดํ„ฐ ์กฐํšŒ

: ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์„ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด

์…€ํ”„ ์›จ ๊ตฌํ•ด์˜ค

SELECT [ALL | DISTINCT] ์†์„ฑ๋ช…1 ์†์„ฑ๋ช…2 ...
 FROM ํ…Œ์ด๋ธ”๋ช…1, ...
[WHERE ์กฐ๊ฑด]
[GROUP BY ์†์„ฑ๋ช… 1, ...]
[HAVING ๊ทธ๋ฃน์กฐ๊ฑด]
[ORDER BY ์†์„ฑ [ASC|DESC]];
SELECT - ๊ฒ€์ƒ‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์†์„ฑ๋ช…, ๊ณ„์‚ฐ์‹์„ ๊ธฐ์ˆ 
- ์†์„ฑ๋ช… ๋ณ„์นญ์€ AS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ƒ๋žต ๊ฐ€๋Šฅ
- 2๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ๋Œ€์ƒ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ๋•Œ๋Š” 'ํ…Œ์ด๋ธ”๋ช…, ์†์„ฑ๋ช…'์œผ๋กœ ํ‘œํ˜„
- ์ˆ ์–ด๋ถ€๋ถ„์€ ALL์ด ๊ธฐ๋ณธ๊ฐ’

ALL > ๋ชจ๋“  ํŠœํ”Œ์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ณ ,
           SELECT ๋’ค์— ๋ช…์‹œํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ALL๋กœ ์ธ์‹ํ•จ

DISTINCT >  ์ค‘๋ณต๋œ ์†์„ฑ์ด ์กฐํšŒ๋  ๊ฒฝ์šฐ, ๊ทธ ์ค‘ 1๊ฐœ๋งŒ ๊ฒ€์ƒ‰
         (SELECT ๋’ค์— ๋ช…์‹œ๋œ ์†์„ฑ์ด ์ค‘๋ณต๋  ๊ฒฝ์šฐ ํ•œ ๊ฐœ๋งŒ ๊ฒ€์ƒ‰)

FROM ์งˆ์˜์— ์˜ํ•ด ๊ฒ€์ƒ‰๋  ๋ฐ์ดํ„ฐ๋“ค์„ ํฌํ•จํ•˜๋Š” ํ…Œ์ด๋ธ”๋ช… ๊ธฐ์ˆ 
WHERE ๊ฒ€์ƒ‰ํ•  ์กฐ๊ฑด์„ ๊ธฐ์ˆ 
GROUP BY ์†์„ฑ๊ฐ’์„ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ
HAVING GROUP BY์— ์˜ํ•ด ๋ถ„๋ฅ˜ํ•œ ํ›„ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด ์ง€์ •
ORDER BY - ์†์„ฑ ๊ฐ’์„ ์ •๋ ฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ
- ASC์™€ DESC ํ‚ค์›Œ๋“œ ์ƒ๋žต ์‹œ, ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

ASC: ์˜ค๋ฆ„์ฐจ์ˆœ
DESC: ๋‚ด๋ฆผ์ฐจ์ˆœ

 

 

 

SELECT ๊ณผ๋ชฉ
  FROM ์„ฑ์ ;

 

 

SELECT DISTINCT ๊ณผ๋ชฉ
  FROM ํ…Œ์ด๋ธ”;

 

 

SELECT ๊ณผ๋ชฉ
  FROM ์„ฑ์ ;
  WHERE ํ•™์  = 'A';

 

 

SELECT DISTICT ๊ณผ๋ชฉ
  FROM ์„ฑ์ ;
  WHERE ํ•™์  = 'A';

 

 

SELECT COUNT(DISTINCT ๊ณผ๋ชฉ)
  FROM ์„ฑ์ ;

 

 

 

SELECT DISTICNT ๊ณผ๋ชฉ, ํ•™์ 
  FROM ์„ฑ์ ;

 

 

 

WHERE ์ ˆ

: WHERE์ ˆ ์กฐ๊ฑด์—์„œ๋Š” ๋น„๊ต, ๋ฒ”์œ„, ์ง‘ํ•ฉ, ํŒจํ„ด, NULL, ๋ณตํ•ฉ์กฐ๊ฑด์ด ์žˆ์Œ

๋น„๊ต์ ˆ = ๊ฐ’์ด ๊ฐ™์€ ๊ฒฝ์šฐ ์กฐํšŒ
<> , != ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์กฐํšŒ
<, <=, >, >= ๋น„๊ต ์—ฐ์‚ฐ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ ์กฐํšŒ
๋ฒ”์œ„ BETWWEN ์ปฌ๋Ÿผ BETWEEN ๊ฐ’1 AND ๊ฐ’2


์ปฌ๋Ÿผ >=๊ฐ’1 AND ์ปฌ๋Ÿผ<=๊ฐ’2
๊ฐ’1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , ๊ฐ’2๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์กฐํšŒ
์ง‘ํ•ฉ

IN ์ปฌ๋Ÿผ IN (๊ฐ’1, ๊ฐ’2, ...)
์ปฌ๋Ÿผ์ด IN ์•ˆ์— ํฌํ•จ๋œ ๊ฒฝ์šฐ์˜ ๋ฐ์ดํ„ฐ ์กฐํšŒ
NOT IN ์ปฌ๋Ÿผ NOT IN (๊ฐ’1, ๊ฐ’2, ...)
์ปฌ๋Ÿผ์ด IN ์•ˆ์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์˜ ๋ฐ์ดํ„ฐ ์กฐํšŒ
ํŒจํ„ด LIKE ์ปฌ๋Ÿผ LIKE ํŒจํ„ด
์ปฌ๋Ÿผ์ด ํŒจํ„ด์— ํฌํ•จ๋œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ์กฐํšŒ

% :0๊ฐœ ์ด์ƒ ๋ฌธ์ž์—ด๊ณผ ์ผ์น˜
[ ] :ํŠน์ •์œ„์น˜ 1๊ฐœ์˜ ๋ฌธ์ž์™€ ์ผ์น˜
NULL
IS NULL ์ปฌ๋Ÿผ IS NULL
์ปฌ๋Ÿผ์ด NULL์ธ ๋ฐ์ดํ„ฐ ์กฐํšŒ
IS NOT NULL ์ปฌ๋Ÿผ IN NOT NULL
์ปฌ๋Ÿผ์ด NULL์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ ์กฐํšŒ
๋ณตํ•ฉ ์กฐ๊ฑด AND ์กฐ๊ฑด1 AND ์กฐ๊ฑด2
์กฐ๊ฑด1๊ณผ ์กฐ๊ฑด2 ๋ชจ๋‘๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ ์กฐํšŒ
OR ์กฐ๊ฑด1 OR ์กฐ๊ฑด2
์กฐ๊ฑด1๊ณผ ์กฐ๊ฑด2 ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ ์กฐํšŒ
NOT NOT ์กฐ๊ฑด
์กฐ๊ฑด์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ ์กฐํšŒ

 

 

 

* ์ƒํ’ˆ(PRODUCT) ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€๊ฒฉ(PRICE)์ด 50000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ  80000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ํŠœํ”Œ ์กฐํšŒ

SELECT *
  FROM PRODUCT
  WHERE PRICE BETWEEN 50000 AND 80000;

 

 

* ์ƒํ’ˆ(PRODUCT) ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€๊ฒฉ(PRICE)์ด 40000 ๋˜๋Š”  50000 ๋˜๋Š” 60000์ธ ํŠœํ”Œ ์กฐํšŒ

SELECT *
   FROM PRODUCT
  WHERE PRICE IN (40000, 50000, 60000);

 

 

์ƒํ’ˆ(PRODUCT) ํ…Œ์ด๋ธ”์—์„œ ์ด๋ฆ„(NAME)์ด '์ •๋ณด'๋กœ ์‹œ์ž‘๋˜๋Š” ๋ฌธ์ž์—ด

SELECT *
  FROM PRODUCT
 WHERE NAME LIKE '์ •๋ณด%';

 

 

* ์ƒํ’ˆ(PRODUCT) ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€๊ฒฉ(PRICE)์ด NULL ๊ฐ’์ธ ๊ฒฝ์šฐ์˜ ํŠœํ”Œ์„ ์กฐํšŒ

SELECT *
  FROM PRODUCT
 WHERE PRICE IS NULL;

 

 

 

GROUP BY์ ˆ

: ์†์„ฑ ๊ฐ’์„ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ

 

 

SELECT ์ง์ฑ…, COUNT(์ง์ฑ…), SUM(๊ธ‰์—ฌ)
   FROM ๊ธ‰์—ฌ
   GROP BY ์ง์ฑ…;

 

 

SELECT ๋ถ€์„œ, SUM(๊ธ‰์—ฌ) AS ๊ธ‰์—ฌํ•ฉ๊ณ„
  FROM ๊ธ‰์—ฌ
  GROUP BY ๋ถ€์„œ;

 

 

SELECT ์ง์ฑ…, ๋ถ€์„œ, SUM(๊ธ‰์—ฌ) AS ๊ธ‰์—ฌํ•ฉ๊ณ„
  FROM ๊ธ‰์—ฌ
  GROUP BY ์ง์ฑ…, ๋ถ€์„œ;

 

 

 

SELECT COUNT(*)
  FROM ๊ธ‰์—ฌ;

 

 

 

 

HAVING์ ˆ

: GROUP BY์— ์˜ํ•ด ๋ถ„๋ฅ˜ํ•œ ํ›„ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉ

 

 

SELECT ์ง์ฑ…, ๋ถ€์„œ, SUM(๊ธ‰์—ฌ) AS ๊ธ‰์—ฌํ•ฉ๊ณ„
  FROM ๊ธ‰์—ฌ
  GROUP BY ์ง์ฑ…, ๋ถ€์„œ
  HAVING ๊ธ‰์—ฌํ•ฉ๊ณ„ >=5000;

 

 

ORDER BY์ ˆ

: ์†์„ฑ๊ฐ’์„ ์ •๋ ฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ

 

SELECT *
  FROM ์„ฑ์ 
  ORDER BY ASC ์ด๋ฆ„;

 

 

 

SELECT ์ด๋ฆ„, ๊ณผ๋ชฉ, ํ•™์  
  FROM ์„ฑ์ 
  ORDER BY ๊ณผ๋ชฉ, ์ด๋ฆ„ ASC;

 

 

 

SELECT *
  FROM ์„ฑ์ 
  ORDER BY ํ•™์  DESC , ์ด๋ฆ„ ASC;

 

 

 

 

728x90