데이터를 다루기 위해서 SQL은 필수적이라고 합니다.그렇다면 SQL이 무엇이기에 배워야할까요?
이제부터 알아보도록 하겠습니다.
SQL이란?
SQL을 풀어서 보게되면 'Structured Query Language'이다. 간단하게 말하면 데이터베이스를 쉽게 다루기 위한 언어입니다.
즉, 우리가 데이터베이스에서 데이터를 꺼내고 수정하는 과정을 하기 위해서 SQL의 기본적인 문법을 알고 사용할 줄 알아야 합니다.
그렇다면 데이터베이스는 무엇이며 우리가 사용하려고 하는 데이터베이스는 어떤 형식으로 저장되어 있을까요??
데이터베이스란?
말 그대로 데이터들이 있는 곳입니다. 데이터에도 다양한 형태들(단어, 숫자, 음성, 비디오등..)이 존재하는 만큼 다양한 데이터베이스의 형태들이 나타납니다. 이를 다 다루는 것보다는 SQL에서 사용할 데이터베이스의 형태만을 보도록 하겠습니다.
데이터베이스는 아래의 이미지처럼 테이블들로 구성되어 있습니다.

이러한 테이블들은 또 다양한 칼럼들로 이루어진 것을 볼 수 있습니다.

이러한 테이블에 들어있는 데이터들은 엑셀과 유사한 형태 있니니다.

이제 실제로 데이터를 사용할 수 있는 방법을 알아보겠습니다.
SQL 데이터 조회(SELECT,FROM)
SELECT : 데이터를 가져오는 기본 명령어
FROM : 데이터를 가져오는 테이블을 설정
* : 모든 것
사용되는 문법의 형태는 다음과 같습다.
SELECT 칼럼1, 칼럼2
FROM 테이블명
[실습1] 테이블 'food_orders' 보기
SELECT *
FROM food_orders
이렇게 하면 다음과 같이 food_orders에 모든 칼럼을 볼 수 있습니다.

food_orders에 해당하는 칼럼이 너무 많아서 한눈에 보기 힘들 때 내가 원하는 값만을 가져오고 싶다면 select에 칼럼을 지정하면 됩니다. 예를 들어 food_orders에서 cuisine_type과 price만 가져와보겠습니다.
[실습2] 테이블 'food_orders' 칼럼 cuisine_type, price 추출
SELECT cuisine_type, price
FROM food_orders

위와 같이 원하는 데이터만을 확인 할 수 있습니다.
그리고 컬럼(column)에 별명(alias)를 정해 조금 더 사용자 친화적으로 확인 할 수 있습니다.
as 뒤에, 혹은 공백이후에 한글이나 특수문자가 포함되어 있다면 ""로 묶고, 영어일 경우 그대로 별명을 지정해 줄 수 있습니다.
[실습3] 테이블 'food_orders' 칼럼 cuisine_type, price 별명 설정
SELECT cuisine_type as cuisty,
price "가격"
FROM food_orders

칼럼내에서도 조건에 맞는 데이터로 필터링을 할 수도 있습니다. 이때 사용하는 문법은 WHERE입니다.
WHERE는 특정한 조건을 만족하는 데이터를 찾을 때 사용할 수 있으며,
SELECT 칼럼
FROM 테이블
WHERE 필터링 조건
순으로 등장하여 사용할 수 있습니다.
또한 값들을 비교하기 위해 비교연산자를 사용하거나
| 비교연산자 | 의미 | 예시 |
|---|---|---|
| = | 같다 | age=21 |
| <> | 같지않다 | age<>21 |
| > | 크다 | age>21 |
| >= | 크거나 같다 | age>=21 |
| < | 작다 | age<21 |
| <= | 작거나 같다 | age<=21 |
기타 다양한 종류의 조건을 사용할 수 있습니다.
between a and b # a 와 b 사이
in (A, B, C) # ‘포함’ 하는 조건
like ‘문자%’ # 문자로 시작하는 경우
like ‘%문자%’ # 문자를 포함하는 경우
like ‘%문자’ # 문자로 끝나는 이름
위에서 설명한 조건을 여러개를 사용할 수도 있습니다. 논리연산자를 사용하면 되는데, 논리연산자는 다음과 같습니다.
| 논리연산자 | 의미 |
|---|---|
| AND | 둘 다 만족 |
| OR | 둘 중 하나만 만족 |
| NOT | 아닌 |
이것들을 다 사용을 해보겠습니다.
[실습4] 주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
select *
from food_orders
where cuisine_type='Korean'
and price>=30000

위와 같은 결과를 가져올 수 있습니다.
마지막으로 SQL을 하다보면 다양한 에러가 발생할 수도 있습니다! 그럴때는 에러 메세지를 읽어보면 어느 부분을 수정해야 하는지 알 수 있습니다!
오늘 공부한 부분은 앞으로 더 많은 것들을 시도할 때 기초가 될 것이기 때문에 잘 기억해 두어야 합니다.