SQL은 모든 DB에서 사용하는 언어이다.
웹 개발에 JAVA를 사용하듯이 DB에선 SQL언어를 사용해 데이터를 추출, 삽입,수정,삭제하는 것이다.
백엔드 개발의 성능에서 가장 중요한 부분을 차지하는 것이 Query문의 실행 속도이다 그렇기 때문에 SQL을 잘 다루고, 파악하는 능력이 중요하다.
글을 쓰고 있는 본인은 쿼리문을 다루는 능력이 어느정도 있다는 생각을 가지고 있었지만 회사에 들어가 실무에서 사용하는 쿼리문을 파악하고 수정하는 업무에서 능력의 부족함을 알고 SQL을 다시 공부하기로 결정했다.
SQL 기초 쿼리문
1. SELECT
SELECT {col1, col2, ...} FROM {Table 명}
2. INSERT
INSERT INTO {Table 명} (col1, col2,...) VALUES (value1, value2,...)
3. UPDATE
UPDATE {Table 명} SET {col1 = value1, col2 = value2, ...}
4. DELETE
DELETE FROM <Table명>
쿼리문은 위 4개의 종류가 있다. 가장 중요하고 많이 사용하는 쿼리문은 조회 쿼리문인 SELECT 쿼리문이다.
위 4 종류 중 가장 많이 사용하는 쿼리문은 SELECT이다. 어떤 데이터를 수정, 삭제하기 위해서는 기존의 데이터를 조회해야 하고
웹 서비스에서 화면을 구성하는 모든 것들이 데이터이기 때문에 조회 쿼리문이 필수적이다.
위 4개를 모두 알고있다고 해서 SQL 공부가 끝나면 좋겠지만 지금 아는 것은 기초에 불과하다.
많게는 20줄이상의 쿼리문을 파악하고, 3개 이상의 Table이 JOIN되어있는 쿼리문을 파악하고 수정하기 위한 기초이다.
SQL 조건문
SQL 또한 프로그래밍 언어의 IF문과 같은 조건문이 존재한다
1. WHERE
SELECT {col1, col2, ... } FROM{Table 명} WHERE {조건식}
SELECT 쿼리문에선 위 형태로 조건에 맞는 데이터를 필터링해 원하는 데이터를 추출한다.
즉, 조건식에 해당하는 데이터의 컬럼 중 {col1, col2, ... }에 해당하는 컬럼만을 추출해서 결과로 보여준다.
WHERE 조건식
기본적으로 where 조건식에는 논리 연산, 관계 연산이 가능하다.
쉽게 말하면 논리 연산은 참과 거짓을 판별하는 연산을 뜻하고, 관계 연산은 변수의 크기를 비교하는 연산을 뜻합니다.
1. 관계 연산
위 쿼리문을 해석해보면 CAR_RENTAL_COMPANY_CAR이라는 테이블의 DAILY_FEE 라는 컬럼이 50 초과한 데이터들의 모든 컬럼을 테이블로 보여주는 쿼리문입니다.
2. 논리 연산
위 쿼리문은 같은 테이블에 CAR_TYPE이라는 컬럼이 SUV인 데이터를 추출하는 쿼리문입니다. 이 와 같이 = 을 사용하는 연산을 논리 연산이라고 합니다.
3. IN
CAR_TYPE 컬럼이 'SUV', '세단', '트럭' 중에 해당하는 데이터를 추출하는 컬럼입니다. IN을 사용해 범위 연산을 실행할 수 있습니다.
4. OR
IN 쿼리문과 같은 결과를 내는 쿼리문입니다. OR는 여러 조건식을 사용해 해당 조건들 중 하나라도 해당하는 데이터를 필터링합니다.
5. AND
AND 쿼리문은 조건들을 모두 만족하는 데이터만을 필터링하는 역할을 합니다.
6. LIKE
LIKE는 어떤 문자로 시작하는 끝나는, 중간에 어떤 글자가 있는 데이터를 추출합니다.
위 쿼리문에서 보듯이 %를 사용해
S% = S로 시작하는
%V = V로 끝나는
%U% = 가운데에 U가 있는 데이터를 추출합니다.
7. BETWEEN
BETWEEN은 and 앞의 숫자 이상 뒤의 숫자 이하인 데이터를 추출합니다. and 연산을 통해 같은 결과를 만들 수 있습니다.