내일배움캠프 1일차 TIL : SQL - 1

김원기·2024년 4월 19일

TIL

목록 보기
4/42

https://velog.io/@wongi-kim/HTML-기초를-하기전에

저번에 여기서 잡담하면서 최종합류 되면 계속 이어진다고 얘기했는데
24.04.19 기준으로 최종합류 되었다.

그래서 오늘 부터 TIL을 다시? 쓰게되었는데 주제는...

SQL

이번 포스팅의 주제는 SQL이다. (part.1)

SQL의 정의

  • SQL : 데이터베이스와 대화 하기 위한 언어

라고한다. Java나 Python처럼 '언어'라는 점이다.

그렇다면 SQL을 훑어만 봐도 보이는 Query는 무엇일까??

Query?

  • Query는 데이터베이스에서 원하는 데이터를 검색하거나 조작하기 위한 도구
  • 특정 조건을 만족하는 기록을 찾거나 데이터를 업데이트, 삭제하는 등의 작업을 수행하는 것

이게 무슨뜻이냐? 다른 언어로 예를 들어 설명하면 아래와 같다.

  • 우리가 Java나 Python에서 원하는 결과를 얻기 위해 제어문(반복문, 조건문 등)을 사용하여 원하는 데이터를 처리하거나 원하는 작업을 수행하는 것

원하는 결과를 얻기위해 필요한 조건을 명시하고 작업을 수행한다.

그동안 다른 언어에서 사용했던 제어문이 Database에서 Query라는 것으로 동작한다는 뜻이다.

그렇다면 무엇을 공부해야 할까?

기본적인 문법

일단 기본적인 문법부터 보자 ( 아래의 예제는 스파르타코딩 강의자료 )

select * 
from food_orders 

위의 쿼리문을 해석하면

* 은 colunm 전체를 말한다.
food_orders라는 테이블의

처럼 된다.

조건에 맞는 데이터는? WHERE

where절은 특정 조건을 필터링할 때 사용한다.

select * 
from 테이블
where 필터링 조건 (ex. age > 20)

where의 조건으로 age > 20 처럼 다른 언어에서 배운 비교 연산자를 사용하여 조건에 맞는 컬럼 전체를 호출하자.

다양한 비교가 필요해

위처럼 확실한 조건도 있지만

  • 범위가 필요하거나,
  • 무엇을 '포함' 하는 조건이 필요하거나,
  • 완전히 똑같지는 않지만 비슷한 값을 조건으로 하고싶을 때

다양한 필터를 사용하여 데이터를 가져올 수 있다.

between A and B

  • 범위가 필요해 : between A and B
where age between 10 and 20

IN(A, B, C)

  • '포함'하고 있는 내용을 찾아야 해 : IN(A, B, C)
where age in (15, 21, 31)

like

  • 비슷한 값을 조건으로 하고싶어 : like
where name like 'A%' # 시작 문자 A
where name like%B%# 포함하는 문자 B
where name like%C’ # 끝나는 문자 C

여러개의 조건을 한번에 만족하려면?

where 절에 조건을 여러개 달아서 하나의 Query문으로 적용할 수 있다.

  • AND : 그리고
  • OR : 또는
  • NOT : 아닌

AND

  • 두 개의 조건이 만족했으면 좋겠어 : AND
select * 
from 테이블
where age>20 and gender=’female’ # 20세 이상이면서 여성

OR

  • 둘 중 하나라도 만족하는 결과가 필요해 : OR
select * 
from 테이블
where age>20 or gender=’female’ #20세 이상이거나 여성

NOT

  • 이 조건이 아닌 것 : NOT
select * 
from 테이블
where not gender=’female’ # not과 비교 연산자 =

끝!

후기1. 오늘은 SQL과 Query의 정의 그리고 SQL의 기본적인 Query문과 Query문의 조건들을 알아봤다. 당장의 query문은 python과 비슷한 난이도 같으니 내일은 진도를 조금 더 빼봐야겠다.

후기2. 그래서 내일의 목표는 쿼리를 통한 연산!

후기3. 가능하면 가공까지!!

profile
혼자 공부하는 블로그라 부족함이 많아요 https://www.notion.so/18067a27ac7e4f4790dde645fb3bf3d3?pvs=4

0개의 댓글