๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Oracle/sql

Dql์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

by ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ๊ฐ์ž 2023. 4. 11.

DQL(Data Query Language)

 

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” Select ๊ตฌ๋ฌธ

 

1. ๊ธฐ๋ณธ์ ์ธ Select ๊ตฌ๋ฌธ์˜ ๊ตฌ์„ฑ

    - SELECT ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ์˜ ์ปฌ๋Ÿผ1,  

             ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ์˜ ์ปฌ๋Ÿผ2,  

             ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ์˜ ์ปฌ๋Ÿผ3,  

             ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ์˜ ์ปฌ๋Ÿผ4

        FROM ํ…Œ์ด๋ธ”๋ช…;

    - ํ•ด๋‹น ํ…Œ์ด๋ธ”์—์„œ ์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ์ปฌ๋Ÿผ3, ์ปฌ๋Ÿผ4์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด๋ผ.

    - ์กฐํšŒ์ฟผ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ •์ด ์ผ์–ด๋‚˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋ฐ‹์ด๋‚˜ ๋กค๋ฐฑ์˜ ์‚ฌ์šฉ์ด ๋ถˆํ•„์š”.

    - SELECT ๋’ค์— ์ปฌ๋Ÿผ๋ช… ๋Œ€์‹  *๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ๋‹ค.

 

2. ์กฐํšŒํ•˜๋Š” ์ปฌ๋Ÿผ์ด๋‚˜ ํ…Œ์ด๋ธ”์— ๋ณ„์นญ์„ ๋ถ™์ด๊ธฐ

    - SELECT ์กฐํšŒํ•˜๋Š” ์ปฌ๋Ÿผ AS(์ƒ๋žต๊ฐ€๋Šฅ) ๋ถ™์ผ๋ณ„์นญ : ์ปฌ๋Ÿผ๋ช…๋Œ€์‹  ๋ณ„์นญ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์กฐํšŒํ•˜๋ฉด ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด์ฃผ๋Š”๋ฐ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๋ช…์ด ๋ณ„์นญ์œผ๋กœ ์žกํžŒ๋‹ค.

    - FROM ์กฐํšŒํ•˜๋Š” ํ…Œ์ด๋ธ” ๋ถ™์ผ๋ณ„์นญ : SELECT ํ•ด์˜ฌ ์ปฌ๋Ÿผ๋“ค์„ ์–ด๋–ค ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ์ง€์นญํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณ„์นญ.์ปฌ๋Ÿผ๋ช…์œผ๋กœ SELECT ๊ตฌ๋ฌธ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3. ๋ฐ์ดํ„ฐ๊ฐ€ NULL๊ฐ’์ผ ๋•Œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” NVL(MySQL -> IFNULL)

    - SELECT NVL(์กฐํšŒํ•  ์ปฌ๋Ÿผ, ์กฐํšŒํ•  ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ null์ธ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ๋ฐฉ์‹) : ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์กฐํšŒํ•ด์„œ ๊ฐ’์ด NULL์ธ ๋ฐ์ดํ„ฐ๋งŒ ์ฒ˜๋ฆฌ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.  

 ex) SELECT NVL(SNO, '-')

            FROM STUDENT;

   

4. ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ฐ๊ฒฐ์—ฐ์‚ฐ์ž ||(MySQL -> CONCAT(๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2))

    - ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปฌ๋Ÿผ์„ ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ์œผ๋กœ ๋ฌถ์–ด์„œ ํ‘œ์ถœํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์—ฐ๊ฒฐ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

    - ์—ฐ๊ฒฐํ•  ์ปฌ๋Ÿผ1 || ์—ฐ๊ฒฐํ•  ์ปฌ๋Ÿผ2

 

5. ์ค‘๋ณต์ œ๊ฑฐ์ž DISTINCT

    - DISTINCT ์ปฌ๋Ÿผ๋ช… : ํ•ด๋‹น ์ปฌ๋Ÿผ์— ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ๋‹ค.

    - SELECT ๊ตฌ๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ช‡๊ฐœ๋“ ์ง€ ์ƒ๊ด€์—†์ด ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋งŒ ํ‘œ์ถœ.

 

6. ์ง€์ •ํ•œ ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ๋Š” ORDER BY

    - WHERE์ ˆ ๋‹ค์Œ์ด๋‚˜ GROUP BY์ ˆ ๋‹ค์Œ์— ์‚ฌ์šฉํ•œ๋‹ค.

    - ORDER BY ์ปฌ๋Ÿผ๋ช… ASC or DESC

    - ASC๋‚˜ DESC๋ฅผ ์ƒ๋žตํ•˜๋ฉด ์ž๋™์œผ๋กœ ASC๋กœ ์ธ์‹

    - ASC : ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ(์ž‘์€ ๊ฐ’ -> ํฐ ๊ฐ’)

    - DESC : ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ(ํฐ ๊ฐ’ -> ์ž‘์€ ๊ฐ’)

 

7. ์กฐ๊ฑด์„ ๊ฑธ์–ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ถ”์ถœํ•˜๋Š” WHERE์ ˆ

    - FROM ํ…Œ์ด๋ธ” ๋’ค์— WHERE ์กฐํšŒ์กฐ๊ฑด;

    - ์กฐํšŒ์กฐ๊ฑด์œผ๋กœ๋Š” ๊ฐ’์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ต, ๊ฐ’์ด ๋™์ผํ•œ์ง€, ๊ฐ™์€ ๋‚ ์งœ ๋ฐ์ดํ„ฐ์ธ์ง€, ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š”์ง€ ... ์กฐ๊ฑด์„ ์ค„์ˆ˜ ์žˆ๋‹ค.

    - ๊ฐ’์˜ ํฌ๊ธฐ ๋น„๊ต๋Š” ์ž๋ฐ”์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ถ€๋“ฑํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋น„๊ตํ•œ๋‹ค.(>, >=, <=, <)

    - ๊ฐ’์˜ ๋™์ผ์—ฌ๋ถ€ ๋น„๊ต๋Š” =, !=๋กœ ๋น„๊ตํ•œ๋‹ค.

    - LIKE๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ž์—ด ํฌํ•จ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ %๋ฅผ ์ด์šฉํ•ด์„œ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  •         - LIKE '๋ฌธ์ž์—ด' : ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€์ง€ ๋น„๊ต
  •         - LIKE '%๋ฌธ์ž์—ด' : ๋ฌธ์ž์—ด๋กœ ๋๋‚˜๋Š”์ง€ ๋น„๊ต
  •         - LIKE '๋ฌธ์ž์—ด%' : ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ๋น„๊ต
  •         - LIKE '%๋ฌธ์ž์—ด%' : ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š”์ง€ ๋น„๊ต
  •         - LIKE '๊น€_' : ๊น€์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‘๊ธ€์ž ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰
  •         - LIKE '_๊น€' : ๊น€์œผ๋กœ ๋๋‚˜๋Š” ๋‘๊ธ€์ž ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰
  •         - LIKE '_๋™_' : ๊ฐ€์šด๋ฐ ๊ธ€์ž๊ฐ€ ๋™์ด๋ฉด์„œ ์„ธ๊ธ€์ž์ธ ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰
  •         - LIKE '___' : ์„ธ๊ธ€์ž์ธ ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰

    - NULL ๊ฐ’ ์—ฌ๋ถ€๋ฅผ ๋น„๊ตํ•  ๋•Œ๋Š” IS NULL, IS NOT NULL์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

8. ๋‹ค์ค‘ ์กฐ๊ฑด์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” AND, OR ์ ˆ

 - WHERE ์กฐํšŒ์กฐ๊ฑด1  

        AND ์กฐํšŒ์กฐ๊ฑด2  

        AND ์กฐํšŒ์กฐ๊ฑด3  

        ...;

   

      WHERE์ ˆ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ AND์ ˆ๊นŒ์ง€์˜ ์กฐ๊ฑด์„ ๋ชจ๋‘ ์ถฉ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒ.

   

WHERE ์กฐํšŒ์กฐ๊ฑด1  

         OR ์กฐํšŒ์กฐ๊ฑด2  

         OR ์กฐํšŒ์กฐ๊ฑด3  

        ...;

      WHERE์ ˆ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ OR์ ˆ๊นŒ์ง€์˜ ์กฐ๊ฑด ์ค‘์— ํ•˜๋‚˜๋ผ๋„ ์ถฉ์กฑํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ.