SQL이 그래서 뭐에요?(1)

라라·2025년 4월 30일
0

SQL 시리즈

목록 보기
1/11
post-thumbnail

그래서 SQL이 뭐에요?

SQL이란 데이터베이스(DB)와 대화하는 하나의 언어
DB에게 '나 이거 필요하니까 이거 좀 줄래?' 라고 요청하는 하나의 소통 방법이다.

DB를 하나의 폴더라고 생각하면 그 안에 있는 파일들은 SQL식으로 테이블(Table)이라고 부른다.

즉, DB(폴더)는 여러 개의 Table(파일)을 가지고 있다.

그리고 '나 이거 필요하니까 이거 좀 줄래?' 라는 문장을 SQL에서는 쿼리(Query)라고 한다.

쿼리 안에 있는 내가 원하는 항목들을 앞으로는 컬럼(Column) 또는 필드(Field)라고 부를 것이다.

앞으로 어렵게 보이는 코딩의 문장도
'DB야, 내가 필요한 데이터가 있으니 원하는 것 좀 이렇게 정리해서 주겠니?' 라는 요청문이다.

그래서 SQL이라는 언어는 어떻게 쓰는데요?

요청문은 "~해줄래요?"라고 요청을 하는 것이기 때문에 내가 무엇을 '요청'하는지 생각해야한다.
그리고 그것을 시작하는 단어가 'Select'이다.

그리고 '무엇을'에 해당하는 언어는 'From'이다.

나도 이제 SQL 마스터다.

그래서 이제 SQL 다 배운 건가요?

성미가 급하면 안된다. 언어를 배울 때 중요한 것이 문법이고 SQL도 하나의 '언어'이기 때문에 문법을 하나씩 알아가야 한다.

이제 예시가 등장한다.

예를 들어 나에게는 대량의 음식점 DB가 주어졌다. 다행히도 이것은 3가지 테이블이 들어있는데

  • food_orders(음식 주문)
  • customers(고객 정보)
  • payments(결제 정보)

가 있다.

그럼
'전체 데이터 중에서 고객 정보를 가져다줄래?' 를 요청하려면 어떻게 작성해야할까?

select *
from customers

라고 작성하면 끝이다.

  • 갑자기 등장한 *모양은 '전체 데이터'를 뜻한다.

그래서 원하는 데이터를 다 뽑을 수 있나요?

좀 더 세심한 데이터를 뽑기 위해서는 인형뽑기와 같은 인고의 시간과 세심한 손길이 필요하다.

왜냐면 DB에도 '필터링'이 필요하기 때문이다.
내가 원하는 것을 요청할 때는 '조건'이 따라붙기 마련이다.

예시로 '고객 정보 중에서 나이가 30살인 사람을 찾아줘'라는 문장을 작성하려면 앞으로 조건절인 'where'이 따라붙을 것이다.

select *
from customers
where age=30

훌륭하게 조건절을 완성했다.

그래서 조건을 맞췄는데 더 무엇을 할 수 있죠?

조건에는 일치하는 것 뿐만 아니라 'a 이하(a>b)' 'a 이상(a<b)' 'a,b와 같지 않다(a<>b)' 등 다양한 조건이 있다.

그럴 때 우리는 부등호를 생각하면 쉽다.
다만 '같지 않다'는 (<>)라는 특수 언어를 쓰기 때문에 유의하면 좋다.

그리고 '~사이에' '~를 포함해서' '~와 같은' 과가 같은 수많은 조건들이 있다.

근데 생각나는 영어 단어들이 불쑥불쑥 있다?

  • a와 b 사이에 (between a and b)
  • a를 포함해서 (in a)
  • a와 완전히 같지는 않지만 비슷한 값 (like '시작문자%')
    → 추가적으로 like 같은 경우는 다양한 조건을 생성할 수 있다.
    → like 조건절에 들어가는 %는 다른 문자를 대체하는 단어라고 생각하면 쉽다.
  1. 단어가 A로 시작하는 경우 = like('A%')
  2. 단어가 A를 포함하는 경우 = like('%A%')
  3. 단어가 A로 끝나는 경우 = like('%A')

조금 같지만 우리가 아는 일상 영어를 대입하면 쉬워질 수 있다.

예시) 주문 정보에서 주문 금액이 2만원~3만원 사이인 고객들을 조회해줘

Select*
from food_orders
where price between 20000 and 30000

정말 깔끔하게 정리됐다.

그래서 이제 조건절은 끝인가요?

아쉽게도 그리고, 또는, 아닌이라는 조건이 남아있다.
근데 모두 아는 영어 단어가 생각날 것이다.

  • 그리고 = and
  • 또는 = or
  • 아닌 = not

빠르게 적용해보자.

예시) 결제 정보에서 카드로 결제했거나, vat율이 0.2 이하인 경우를 조회해줘

Select *
from payments
where pay_type='card' or vat<=0.2

단 3줄로 정리되었다.

오늘의 SQL 요약

▶ SQL은 DB와 대화하는 언어다.
▶ DB와 대화하기 위해서는 Selet, from이 포함되어야한다.
▶ 다양한 조건절을 쓸 때는 Where이 들어가며 상세한 조건은 일상 영어 단어와 다를 것이 없다.
▶ DB와 대화하기 첫 성공의 날이다.

profile
공부를 위해 기록하는 공간

0개의 댓글