[SQL] SQL ๊ธฐ์ดˆ

2021. 7. 24. 21:55ยท๐Ÿฅ Web/โ” Back-end | etc.
728x90

3ํ•™๋…„์ด๋‚˜ ๋๋Š”๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ข€ ์•Œ๊ธด ์•Œ์•„์•ผ๋˜์ง€ ์•Š๊ฒ ๋‚˜ ์‹ถ์€ ๋งˆ์Œ์œผ๋กœ SQL ๋ฌธ๋ฒ•์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณต๋ถ€ํ•ด์„œ ์˜ฌ๋ ค๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Mode์˜ SQL ํŠœํ† ๋ฆฌ์–ผ์„ ์ฝ๊ณ  ์ •๋ฆฌํ•˜๊ณ  ์‹ค์Šตํ•ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป ์ดํ•ดํ–ˆ๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์€ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

Mode์—์„œ ๋กœ๊ทธ์ธ ํ›„ ์ƒˆ report๋ฅผ ๋งŒ๋“œ์…”์„œ ๋”ฐ๋ผํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ ์•„๋ž˜์— ๋‹ฌ์•„๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.

https://app.mode.com/

SQL์ด๋ž€?

SQL(Structured Query Language)์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

SELECT - FROM

ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ select๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, SELECT๋กœ FROM์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ์˜ ์—ด์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SELECT A, B, C
    FROM tutorial.us_housing_units

๋Œ€๋ฌธ์ž๋กœ ์“ด select-from์€ ์†Œ๋ฌธ์ž๋กœ ์จ๋„ ์‹คํ–‰์ด ๋ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ์ผ์ข…์˜ ์•ฝ์†์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€์ˆ˜ ์ด๋ฆ„์ด๋‚˜ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ •ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํ‘œ๊ธฐ ์•ฝ์†๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ด ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž + ๊ณต๋ฐฑ์€ _๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ด๋ฉฐ, ํŽธ์˜๋ฅผ ์œ„ํ•ด ์—ด ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์„œ ๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์“ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

SELECT A AS "A_region"
    FROM tutorial.us_housing_units

์ด๋ ‡๊ฒŒ ๋˜๋ฉด A๋ผ๋Š” ์—ด์˜ ์ด๋ฆ„์„ A_region์œผ๋กœ ๋ฐ”๊พผ ๊ฒƒ์ด ๋ฉ๋‹ˆ๋‹ค.

ํ–‰ ๊ฐœ์ˆ˜ ์ œํ•œ - LIMIT

SELECT year, month, west
  FROM tutorial.us_housing_units
LIMIT 100

๋ฐฑ ๊ฐœ์˜ ํ–‰์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ DB์—์„œ ์ˆ˜๋งŒ๊ฐœ์˜ ํ–‰์„ ์ „๋ถ€ ๋กœ๋“œํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์œ„ํ•ด ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง

SELECT *
  FROM tutorial.us_housing_units
WHERE month = 1

WHERE์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ํ•„ํ„ฐ๋ฅผ ๊ฑฐ์ณ ํ•ด๋‹น ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ select - from - where์˜ ์ˆœ์„œ๋กœ ์“ด๋‹ค. ์ด์™ธ์—๋„ ์กฐ๊ฑด๋ฌธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋น„๊ต ๋ฐ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž, ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ์ข…์˜ SQL์˜ ์กฐ๊ฑด๋ฌธ์ž…๋‹ˆ๋‹ค. ๋’ค์— ๋‚˜์˜ฌ CASE์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

SELECT year,
       month,
       west,
       south,
       west + south - 4 * year AS nonsense_column
  FROM tutorial.us_housing_units

๊ฐ ์—ด๋ผ๋ฆฌ ์‚ฐ์ˆ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

LIKE, ILIKE, _

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE "group" LIKE 'Snoop%'

์—ด ์ด๋ฆ„์€ ""๋กœ, ๋‚ด์šฉ์€ ''๋กœ ๋ฌถ๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.(์—ด ์ด๋ฆ„๊ณผ ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ตฌ๋ถ„์„ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค). ์ด ๊ฒฝ์šฐ์—๋Š” GROUP BY์™€ ์—ด ์ด๋ฆ„ group์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. LIKE๋Š” group์ด๋ผ๋Š” ์—ด์—์„œ Snoop์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด๋ฆ„๋“ค์€ ์ „๋ถ€ ์ฐพ์•„๋‹ฌ๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ %๋ฅผ ์™€์ผ๋“œ์นด๋“œ ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. LIKE๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ , ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ILIKE๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE "group" ILIKE 'snoop%'

ํ•˜๋‚˜์˜ ๋ฌธ์ž๋งŒ ์™€์ผ๋“œ์นด๋“œ ์ ์šฉ์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด _๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE artist ILIKE 'dr_ke'

IN, BETWEEN

SELECT * FROM tutorial.billboard_top_100_year_end
WHERE artist IN ('Elvis Presley', 'M.C. Hammer', 'Hammer')

python in ๋ช…๋ น์–ด์™€ ๊ฑฐ์˜ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋’ค์— ๋‚˜์˜ค๋Š” ๋ฆฌ์ŠคํŠธ ์ค‘์— ํฌํ•จ๋˜๋Š” ํ•ญ๋ชฉ์„ ํ•„ํ„ฐ๋งํ•ด์„œ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE year_rank BETWEEN 5 AND 10
-- WHERE year_rank >= 5 AND year_rand <= 10

BETWEEN์€ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ํ•„ํ„ฐ๋ง ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ฃผ์„์ฒ˜๋ฆฌ๋œ ๋ถ€๋ถ„๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

IS NULL, AND, OR, NOT

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE artist IS NULL

---

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE year = 2013
   AND artist IS NOT NULL

NULL์ธ ํ•ญ๋ชฉ์ด ์žˆ๋Š” ํ–‰์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. NOT์„ ์ด์šฉํ•ด ์ œ์™ธํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ํ•œ ๋ฒˆ์— ์˜ˆ์ œ๋กœ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์–ด์š”.

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE year = 2013
   AND ("group" ILIKE '%macklemore%' OR "group" ILIKE '%timberlake%')

AND/OR์„ ์ด์šฉํ•ด ํ•„ํ„ฐ๋ง ํ•ญ๋ชฉ์„ ๋” ์ž์„ธํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

ORDER BY

๋ฐ์ดํ„ฐ ์ •๋ ฌ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. sort ํ•จ์ˆ˜์™€ ์œ ์‚ฌํ•ด์š”.

SELECT *
  FROM tutorial.billboard_top_100_year_end
 ORDER BY artist

artist ์˜ ์•ŒํŒŒ๋ฒณ ๊ธฐ์ค€ ์ •๋ ฌ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. DESC๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”.(reverse๊ฐœ๋…๊ณผ ๋™์ผ)

SELECT *
  FROM tutorial.billboard_top_100_year_end
  WHERE year_rank <= 3
 ORDER BY year DESC, year_rank

์—ฌ๋Ÿฌ์ค„ ์ •๋ ฌ์„ ํ•˜๋ฉด ๋จผ์ € ์•ž์— ๋‚˜์˜จ ๊ฒƒ์„ ์ •๋ ฌํ•˜๊ณ , ๊ทธ ๋‚ด์šฉ์— ๋งž์ถฐ์„œ ์ดํ›„๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

์—ด์„ ๋ฒˆํ˜ธ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (์ผ๋ถ€ SQL์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์–ด์š”)

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE year_rank <= 3
 ORDER BY 2, 1 DESC

 

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿฅ Web > โ” Back-end | etc.' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Elasticsearch] Index Template ๊ตฌ์„ฑํ•˜๊ธฐ with Kibana & Logstash (1) - Setting  (0) 2023.07.06
[Elasticsearch] Logstash๋ฅผ ํ†ตํ•ด PostgreSQL๊ณผ Elastic Stack ์—ฐ๋™ํ•˜๊ธฐ  (0) 2023.06.29
[Elasticsearch] Logstash ์‚ฌ์šฉํ•ด๋ณด๊ธฐ  (0) 2023.06.29
[Elasticsearch] Elasticsearch ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฐ ์„ค์น˜, kibana ์—ฐ๋™ํ•˜๊ธฐ  (1) 2023.06.29
[SQL] SQL ์ค‘๊ธ‰  (0) 2021.08.22
'๐Ÿฅ Web/โ” Back-end | etc.' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Elasticsearch] Logstash๋ฅผ ํ†ตํ•ด PostgreSQL๊ณผ Elastic Stack ์—ฐ๋™ํ•˜๊ธฐ
  • [Elasticsearch] Logstash ์‚ฌ์šฉํ•ด๋ณด๊ธฐ
  • [Elasticsearch] Elasticsearch ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฐ ์„ค์น˜, kibana ์—ฐ๋™ํ•˜๊ธฐ
  • [SQL] SQL ์ค‘๊ธ‰
darly213
darly213
ํ˜ธ๋ฝํ˜ธ๋ฝํ•˜์ง€ ์•Š์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ณด์ž
  • darly213
    ERROR DENY
    darly213
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
      • ๐Ÿฌ ML & Data (50)
        • ๐ŸŒŠ Computer Vision (2)
        • ๐Ÿ“ฎ Reinforcement Learning (12)
        • ๐Ÿ“˜ ๋…ผ๋ฌธ & ๋ชจ๋ธ ๋ฆฌ๋ทฐ (8)
        • ๐Ÿฆ„ ๋ผ์ดํŠธ ๋”ฅ๋Ÿฌ๋‹ (3)
        • โ” Q & etc. (5)
        • ๐ŸŽซ ๋ผ์ดํŠธ ๋จธ์‹ ๋Ÿฌ๋‹ (20)
      • ๐Ÿฅ Web (21)
        • โšก Back-end | FastAPI (2)
        • โ›… Back-end | Spring (5)
        • โ” Back-end | etc. (9)
        • ๐ŸŽจ Front-end (4)
      • ๐ŸŽผ Project (8)
        • ๐ŸงŠ Monitoring System (8)
      • ๐Ÿˆ Algorithm (0)
      • ๐Ÿ”ฎ CS (2)
      • ๐Ÿณ Docker & Kubernetes (3)
      • ๐ŸŒˆ DEEEEEBUG (2)
      • ๐ŸŒ  etc. (8)
      • ๐Ÿ˜ผ ์‚ฌ๋‹ด (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ๋ฐฉ๋ช…๋ก
    • GitHub
    • Notion
    • LinkedIn
  • ๋งํฌ

    • Github
    • Notion
  • ๊ณต์ง€์‚ฌํ•ญ

    • Contact ME!
  • 250x250
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
darly213
[SQL] SQL ๊ธฐ์ดˆ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”