29 Fri

TIL

๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ๊ธฐ์ดˆ SQL

OT

๊ฐ•์ขŒ ์†Œ๊ฐœ

  • SELECT - ์งˆ์˜์–ด

  • INSERT, UPDATE, DELETE - ์กฐ์ž‘์–ด

๊ฐ•์˜ ์ˆ˜๊ฐ•์„ ์œ„ํ•œ ์ค€๋น„ & ๋งํฌ ์•ˆ๋‚ด

  • ํ•ด์ปค๋žญํฌ ๊ฐ€์ž… -> ๋ฌธ์ œ ํ’€์ด๋ฅผ ์œ„ํ•จ

  • w3school -> ์‹ค์Šต

๋ณด๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ ๊บผ๋‚ด์˜ค๊ธฐ

SELECT / FROM /LIMIT

  • ๋ฐ์ดํ„ฐ๋Š” ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๊ฐ€๋กœ๋Š” row, ์„ธ๋กœ๋Š” column

  • ๊ฐ€๋กœ๋Š” ๋ฐ์ดํ„ฐ ํ•œ ๊ฐœ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ์„ธ๋กœ๋Š” ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์„ ์˜๋ฏธ

SELECT * FROM Customers;
  • FROM : ์–ด๋–ค ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ง€

  • SELECT : ๋ฌด์—‡์„ ๊ฐ€์ ธ์˜ฌ์ง€

  • *: ์ „์ฒด ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  ์˜ค๋ผ๋Š” ๋‹จ์ถ•์–ด(asterisk)

SELECT CustomerName, Address FROM Customers LIMIT 10;
  • SELECT ๋’ค์— ํ•„๋“œ ๋ช…์„ ์ž…๋ ฅํ•˜๋ฉด ๋˜๊ณ  ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ•„๋“œ ๋ช…์€ ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ

  • LIMIT : ๋ฐ์ดํ„ฐ๋ฅผ N๊ฐœ๋งŒ ๋ฝ‘์•„ ์˜ค๋Š” ๋ฐฉ๋ฒ•

    • ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ๋งŽ์€ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฉฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค.

    • ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํŒŒ์•…ํ•  ๋•Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  • SQL์—์„œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ณ„์— ๋Œ€ํ•œ ๊ฐ•์ œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์ง€๋งŒ, ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์˜ˆ์•ฝ์–ด๋Š” ๋Œ€๋ฌธ์ž๋กœ, ๋‚˜๋จธ์ง€ ๋ฌธ์ž๋“ค์€ ์†Œ๋ฌธ์ž๋กœ ์“ฐ๋Š”๊ฒƒ์ด ๊ถŒ์žฅ๋œ๋‹ค.

์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ํ•˜๊ธฐ

๋น„๊ต์—ฐ์‚ฐ์ž์™€ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž

  • ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ณผ ์ผ์€ ์—†์Œ

    • ID๊ฐ€ 30๋ฒˆ ์ด์ƒ์ด๊ฑฐ๋‚˜ VALUE๊ฐ€ 5 ์ด์ƒ์ธ ๋ฐ์ดํ„ฐ๋งŒ์„ ๋ณด๋Š” ๋“ฑ์˜ ์กฐ๊ฑด๋ถ€ ๋ฐ์ดํ„ฐ ๊ด€์ฐฐ์„ ๋งŽ์ดํ•จ

SELECT *
From Customers
WHERE Country = 'Germany'
  • WHERE : ํŠน์ • ์ปฌ๋Ÿผ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์˜ค๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ

    • EX

      • Customers < "B"

      • Country = 'Germany'

      • CustomerID = 5 AND City = 'Berlin

    • WHERE ๊ตฌ๋ฌธ์—์„œ AND ๋˜๋Š” OR ์—ฐ์‚ฐ์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

LIKE, IN, BETWEEN, IS NULL

SELECT *
From Customers
WHERE Country LIKE'%r%'
  • LIKE : ๋ฌธ์ž์—ด์˜ ํŒจํ„ด์„ ๊ฐ€์ง€๊ณ  ๊ฒ€์ƒ‰์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

    • EX

      • LIKE '%r%' : ์ค‘๊ฐ„์— 'r'์ด ๋“ค์–ด๊ฐ€๋Š” ๋ฌธ์ž์—ด

      • LIKE 'br%' : 'br' ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด

  • IN : ๊ตฌ๋ฌธ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ๋•Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

    • Counttry IN ('Germany', 'France', 'Korea')

  • BETWEEN : ๋ฒ”์œ„ํ˜• ์ง‘ํ•ฉ์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

    • CustomerID BETWEEN 3 AND 5

    • ์ˆซ์ž, ๋ฌธ์ž์—ด, ๋‚ ์งœ ๋ฐ์ดํ„ฐ ๋“ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.

    • ์‹œ์ž‘๊ฐ’๊ณผ ๋๊ฐ’๋„ ํฌํ•จํ•œ๋‹ค.

  • ISNULL : ๋น„์–ด์žˆ๋Š” ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋น„๊ต์—ฐ์‚ฐ์ž๋กœ ๋น„๊ตํ•  ์ˆ˜๋Š” ์—†๋‹ค.

    • CustomerID != NULL (X)

    • CustomerID IS NULL

    • CustomerID IS NOT NULL

LIKE ์‹ฌํ™”

SELECT *
From Customers
WHERE Country LIKE'br%'
  • % : ์–ด๋–ค ๋ฌธ์ž์—ด๊ณผ๋„ ๋งค์นญ๋˜๋ฉฐ ์ด ๋ฌธ์ž๋ฅผ ์™€์ผ๋“œ์นด๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • = ์ด LIKE ๋ณด๋‹ค ๋น ๋ฅด๋‹ค

    • ๊ฒ€์ƒ‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ๋ช…๋ฃŒํ•˜์ž๋ฉด = ์„ ์‚ฌ์šฉํ•  ๊ฒƒ.

  • LIKE 'B_____'

    • B๋กœ ์‹œ์ž‘ํ•œ ๋‹ค์Œ์— 5๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ ๋”ฐ๋ผ์˜จ๋‹ค๋Š” ์˜๋ฏธ. ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜์™€ ์–ธ๋”๋ฐ”์˜ ๊ฐœ์ˆ˜์™€ ๋™์ผํ•˜๋‹ค.

    • ์ด์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” Brazil์€ ์ฐพ์•„์ง€์ง€๋งŒ Belgium์€ ์ฐพ์•„์ง€์ง€ ์•Š๋Š”๋‹ค.

  • string %

    • ์™€์ผ๋“œ์นด๋“œ๊ฐ€ ์•„๋‹Œ ์‹ค์ œ ํผ์„ผํŠธ๋ฅผ ์ฐพ๊ณ  ์‹ถ๋‹ค๋ฉด \% ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•˜๋ฉด ๋œ๋‹ค.

  • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

    • postgresql

    • mssql

    • redshift

    • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌธ๋ฒ•์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์†Œํ”„ํŠธ์›จ์–ด ์ด๋ฆ„๊ณผ ๋ฌธ๋ฒ•์„ ๊ฒ€์ƒ‰ํ•  ๊ฒƒ

    • EX) redshift LIKE

  • SELECT DISTINCT city

    • city์˜ ํ…Œ์ด๋ธ” ๊ฐ’์„ ์ค‘๋ณต๋˜๋Š” ๊ฐ’์ด ์—†๊ฒŒ ์ถœ๋ ฅํ•ด์„œ ๋ณด์—ฌ์ฃผ๋ผ๋Š” ์˜๋ฏธ

  • RLIKE

    • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์กฐ๊ฑด์ด ํ•„์š”ํ•  ๋•Œ LIKE ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” LIKE regex OR ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์จ์•ผ ํ•œ๋‹ค.

    • RLIKE๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด RLIKE 'regex | regex' ์™€ ๊ฐ™์€ ๊ผด๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

Last updated

Was this helpful?