ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
์ฝ”๋”ฉ ์ง ๐Ÿ’ช
ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
  • ์นดํ…Œ๊ณ ๋ฆฌ (135)
    • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• (12)
      • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (5)
      • DB (0)
      • Node.js (4)
      • ํ˜•์ƒ ๊ด€๋ฆฌ (2)
      • Spring (1)
    • ์›น (11)
      • React (5)
      • ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ__์›น (6)
    • ๋ชจ๋ฐ”์ผ (2)
      • ์•ˆ๋“œ๋กœ์ด๋“œ (2)
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (55)
      • C (13)
      • Python (15)
      • SQL (5)
      • Java (22)
    • ์‚ฌ๋ฌผ์ธํ„ฐ๋„ท (11)
      • ์•„๋‘์ด๋…ธ (11)
    • ์ผ์ƒ (31)
      • ๋ง›์ง‘ (13)
      • ๋žญํ‚น๋‹ญ์ปด (4)
      • ํ›„๊ธฐ (11)
      • ์š”๋ฆฌ (3)
      • ์žก๋‹ด (0)
    • ๊ต์–‘ (4)
      • ์‹ฌ๋ฆฌํ•™ (3)
      • ํ…Œ๋‹ˆ์Šค (1)
    • ์ž๊ฒฉ์ฆ (9)
      • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿ’ป github

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ

์ฝ”๋”ฉ ์ง ๐Ÿ’ช

[์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 1์ฃผ์ฐจ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/SQL

[์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 1์ฃผ์ฐจ

2022. 5. 31. 03:14

ใ€Š ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ SQL โ€•1์ฃผ์ฐจโ€• ใ€‹

 

[ DB(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์˜ ๊ฐœ๋… ]

 - ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๊ณต์œ ํ•˜๊ณ  ์‚ฌ์šฉํ•  ๋ชฉ์ ์œผ๋กœ ํ†ตํ•ฉ ๊ด€๋ฆฌ๋˜๋Š” ์ •๋ณด์˜ ์ง‘ํ•ฉ

 - ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ด€๋œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ž๋ฃŒ์˜ ๋ชจ์Œ์œผ๋กœ ๋‚ด์šฉ์„ ๊ตฌ์กฐํ™” ํ•œ ๊ฒƒ

 - ๊ณต๋™ ์ž๋ฃŒ๋กœ์„œ ๊ฐ ์‚ฌ์šฉ์ž๋Š” ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ผ ํ• ์ง€๋ผ๋„ ๊ฐ์ž์˜ ์‘์šฉ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

[ DB์˜ ํŠน์ง• ]

  1. ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ์„ฑ
  2. ์ง€์†์ ์ธ ๋ณ€ํ™”
  3. ๋™์‹œ ๊ณต์œ 
  4. ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ฐธ์กฐ
  5. ๋ฐ์ดํ„ฐ ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ

 

[ RDBMS ๊ฐœ๋… ]

 - ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” DataBaseManagementSystem ์œ ํ˜•

 - RDB๋Š” ํ‚ค(key)์™€ ๊ฐ’(value)๋“ค์˜ ๊ฐ„๋‹จํ•œ ๊ด€๊ณ„๋ฅผ ํ…Œ์ด๋ธ”ํ™” ์‹œํ‚จ ๊ฐ„๋‹จํ•œ ์›์น™์˜ ์ „์‚ฐ์ •๋ณด DB๋ฅผ ๋งํ•จ

 - RDBMS๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰(row)๊ณผ ์—ด(column)์„ ์ด๋ฃจ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”(๋˜๋Š” ๊ด€๊ณ„)๋กœ ์ •๋ฆฌํ•˜๋ฉฐ ๊ณ ์œ  ํ‚ค(Prmary key)๊ฐ€ ๊ฐ ํ–‰์„ ์‹๋ณ„

 - ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ ํ…Œ์ด๋ธ”/๊ด€๊ณ„๋Š” ํ•˜๋‚˜์˜ ์—”ํ‹ฐํ‹ฐํƒ€์ž…์„ ๋Œ€ํ‘œํ•œ๋‹ค.

 

[ RDBMS ์ œํ’ˆ ]

 - ๋ฏธ๊ตญ์˜ ์˜ค๋ผํด(Oracle)

 - ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ MS SQL SERVER

 - ๋ฏธ๊ตญ์˜ MySQL

 - MariaDB

 

 

[ SQL ๊ฐœ๋… ]

 - ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ํŠน์ˆ˜ ๋ชฉ์ ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

 - ์ž๋ฃŒ์˜ CRUD ๊ธฐ๋Šฅ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด ์ ‘๊ทผ ์กฐ์ • ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ณ ์•ˆ ๋˜์—ˆ์Œ

 - ๋‹ค๋งŒ ์ตœ๊ทผ NoSQL ๊ณ„์—ด์˜ DBMS์—์„œ๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

 

[ SQL ์‚ฌ์šฉ ์ด์œ  ]

 - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‚ฌ์ดํŠธ ์„ ์ • ์ƒ์œ„ ์ ์œ ์œจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ์ตœ๊ทผ๊นŒ์ง€ ์„ ์ • ๋  ์ •๋„๋กœ ์‚ฌ์šฉ ์ •๋„๊ฐ€ ์žฆ์Œ

 - ๋งŽ์€ ์ˆ˜์˜ DBMS๋“ค์ด SQL์„ ํ‘œ์ค€์œผ๋กœ ์ฑ„ํƒํ•˜๊ณ  ์žˆ์Œ

 - ๋ฐ์ดํ„ฐ์˜ CRUD ๊ธฐ๋Šฅ์„ ์ง๊ด€์„ฑ ์žˆ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ง€์›

 

[ DB์˜ CRUD ๊ธฐ๋Šฅ ]

 - CRUD๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐ€์ง€๋Š” ์ตœ์†Œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์˜๋ฏธํ•จ

์ด๋ฆ„ ์กฐ์ž‘ SQL๋ฌธ
Create ์ƒ์„ฑ INSERT
Read or Retrieve ์ฝ๊ธฐ(์ธ์ถœ) SELECT
Update ๊ฐฑ์‹  UPDATE
Delete or Destroy ์‚ญ์ œ(ํŒŒ๊ดด) DELETE

 

 

[ ์ฟผ๋ฆฌ๋ฌธ ]

 - ์ฟผ๋ฆฌ(Query)๋ฌธ์ด๋ž€ ์งˆ์˜๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ์„ ์˜๋ฏธ(์งˆ์˜๋ฌธ)

 

 

[ SELECT ์ฟผ๋ฆฌ๋ฌธ ]

 - ์–ด๋–ค ํ…Œ์ด๋ธ”์—์„œ ์–ด๋–ค ํ•„๋“œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ์ง€๋ฅผ ๋ช…๋ น

 - ์•„๋ž˜์˜ ์ฝ”๋“œ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง

# The SQL SELECT Statement
select (๊ฐ€์ ธ์˜ฌ ํ•„๋“œ ๋ฒ”์œ„) from (๊ฐ€์ ธ์˜ฌ ํ…Œ์ด๋ธ”๋ช…)

 

 

[ WHERE ์ฟผ๋ฆฌ๋ฌธ ]

 - SELECT ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ์— ์กฐ๊ฑด์„ ๋ถ€์—ฌ

 - ์•„๋ž˜์˜ ์ฝ”๋“œ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง

# The SQL WHERE Statement
SELECT * from table
WHERE ์กฐ๊ฑด

 

[ WHERE ์ ˆ๊ณผ ํ•จ๊ป˜ ์ž์ฃผ ์“ฐ์ด๋Š” ์กฐ๊ฑด ]

์˜๋ฏธ SQL ๋ฌธ
๋ฒ”์œ„ ์„ค์ • BETWEEN
๊ฐ™์ง€ ์•Š์Œ !=
ํฌํ•จ IN
ํŒจํ„ด(๋ฌธ์ž์—ด ๊ทœ์น™) LIKE

 

 

[ ์ฟผ๋ฆฌ๋ฌธ ๊ธฐ๋ณธ ์˜ˆ์ œ ]

 

โ‘  ํฌ์ธํŠธ๊ฐ€ 20,000์  ์ดˆ๊ณผ์ธ ์œ ์ €๋งŒ ๋ฝ‘์•„์˜ค๊ธฐ

select *from point_users 
where point > 20000

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

โ‘ก ์›น๊ฐœ๋ฐœ ์ข…ํ•ฉ๋ฐ˜์ด๋ฉด์„œ ๊ฒฐ์ œ์ˆ˜๋‹จ์ด CARD์ธ ์ฃผ๋ฌธ๊ฑด๋งŒ ๋ฝ‘์•„๋ณด๊ธฐ

select * from orders
where 
	course_title = '์›น๊ฐœ๋ฐœ ์ข…ํ•ฉ๋ฐ˜' and payment_method = 'CARD'

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

โ‘ข 2020-07-13 ~ 2020-07-14์ผ์˜ ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ๋งŒ ํ™•์ธ [๋ฒ”์œ„ ์กฐ๊ฑด ๊ฑธ๊ธฐ]

select * from orders
where created_at between '2020-07-13' and '2020-07-15'

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

โ‘ฃ ํ•™์Šต ํ‰๊ฐ€ ๋ฐ์ดํ„ฐ์—์„œ 1, 3์ฃผ์ฐจ์˜ ๋ฐ์ดํ„ฐ๋งŒ ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ [ํฌํ•จ ์กฐ๊ฑด ๊ฑธ๊ธฐ]

select * from checkins
where week in (1,3)

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

โ‘ค ์ด๋ฉ”์ผ์ด s๋กœ ์‹œ์ž‘ํ•˜๊ณ  com์œผ๋กœ ๋๋‚˜๋ฉด์„œ ์„ฑ์ด ์ด์”จ์ธ ์œ ์ €๋งŒ ์ถ”์ถœ

select * from users
where email like 's%com' and name like '์ด%'

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

โ‘ฅ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ : LIMIT

select * from users
limit 5

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

โ‘ฆ ์œ ์ € ์ •๋ณด ๋ฐ์ดํ„ฐ์—์„œ ๋ช‡ ๊ฐœ ์„ฑ์”จ์˜ ์œ ์ € ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ : COUNT() & DISTINCT()

# ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ๋ฐ์ดํ„ฐ ์ถ”์ถœ ํ•จ์ˆ˜ : DISTINCT()
# ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋Ÿ‰์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ : COUNT()
select count(distinct(name)) from users

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

โ‘ง Gmail์„ ์‚ฌ์šฉํ•˜๋Š” 2020/07/12 ~ 13์— ๊ฐ€์ž…ํ•œ ์œ ์ €์˜ ์ˆ˜๋ฅผ ์„ธ๊ธฐ

select count(*) from users
where 
	email like '%gmail.com' and created_at BETWEEN '2020-07-12' and '2020-07-14'

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

โ‘จ naver ์ด๋ฉ”์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ, ์›น๊ฐœ๋ฐœ ์ข…ํ•ฉ๋ฐ˜์„ ์‹ ์ฒญํ–ˆ๊ณ  ๊ฒฐ์ œ๋Š” kakaopay๋กœ ์ด๋ค„์ง„ ์ฃผ๋ฌธ๋ฐ์ดํ„ฐ ์ถ”์ถœ

select * from orders
where 
	email like '%naver.com' 
    and course_title = '์›น๊ฐœ๋ฐœ ์ข…ํ•ฉ๋ฐ˜'
    and payment_method = 'kakaopay'

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

 

[ ๐ŸŒ‘ 1์ฃผ์ฐจ ์†Œ๊ฐ ]

์‚ฌ์‹ค ์ด์ „์— ํ•™๊ต๋ฅผ ํ†ตํ•ด ์˜ค๋ผํด RDBMS๋ฅผ ์‚ฌ์šฉํ•œ DB ๊ด€๋ฆฌ๋ฅผ ๋ฐฐ์šด์ ์ด ์žˆ๋‹ค.

๋ฌผ๋ก  ๊ทธ๋•Œ๋Š” ์ •๋ง ๊ฐœ๋…์ ์ธ ๋ถ€๋ถ„์„ 1๋„ ๋ชฐ๋ž๋˜ ํ„ฐ๋ผ ์ƒˆ๋กœ์šด ์šฉ์–ด์™€ ๊ฐœ๋…๋“ค์— ๋งŽ์ด ๋‚œํ•ดํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

๋‹น์‹œ์— ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ERD ์ œ์ž‘ ๋“ฑ์„ ๊ต๊ณผ๊ณผ์ •์— ๋งž์ถฐ ๋ฐฐ์šฐ๋‹ค ๋ณด๋‹ˆ ๊ฐœ๋…์ด ๊ต‰์žฅํžˆ ๋ถ€์กฑํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋‚จ๋Š”๋‹ค.

 

์š”๋ฒˆ ์ˆ˜๊ฐ• ๊ณผ์ •์—์„œ๋Š” DBeaver๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์šฐ์„  ํ”„๋กœ๊ทธ๋žจ ์•„์ด์ฝ˜์ด ๊ต‰์žฅํžˆ ๊ท€์—ฝ๋‹ค(!)ใ…‹ใ…‹

๋‹ค์‹œ๊ธˆ ๋ณต์Šตํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ๊ฐ•์ขŒ๋ฅผ ๋“ค์—ˆ๋Š”๋ฐ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๋ถ€๋ถ„๋„ ์žˆ์—ˆ๋‹ค.

๋ฌด์—‡๋ณด๋‹ค ๊ฐ•์ขŒ์—์„œ ์ด๋ก  ์œ„์ฃผ์˜ ๊ฐœ๋…๋„ ๋‹ค๋ฃจ์ง€๋งŒ ์‹ค๋ฌด์ ์ธ ๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์„ ์šฐ์„ ์ ์œผ๋กœ ๊ฐ•์กฐํ•˜์—ฌ

์•Œ๋ ค์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ ๋“ค์ด ๋ถ„๋ช… ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐ์ด๋“ ๋‹ค. 

DBeaver ์•„์ด์ฝ˜ / ๋น„๋ฒ„๋‹ค....

 

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    'ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/SQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [MySQL] Constraint / DML / DDL / DCL / TCL
    • [์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 4์ฃผ์ฐจ (ๅฎŒ)
    • [์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 3์ฃผ์ฐจ
    • [์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ๐Ÿ›ข์—‘์…€๋ณด๋‹ค ์‰ฌ์šด SQL - 2์ฃผ์ฐจ
    ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
    ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
    ๐Ÿ‘Š ๋ธ”๋กœ๊ทธ๋„ ๊ทผ์„ฑ์ด๋‹ค? ๐Ÿ‘Š

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