[메타코드 강의 후기] SQL 부트캠프 | WHERE & ORDER BY & GROUP BY

2024. 6. 30. 21:45Portfolio/메타코드M 서포터즈 5기

Contents 접기

오늘부터 메타코드M AI 교육 플랫폼에서 무료로 강의를 수강하고,

블로그에 공부 후기를 작성하는 메타코드 서포터즈 5기를 신청하게 되었다.

 

메타코드는 인공지능, 데이터분석과 같은 최근 중요도가 높은 분야에 대해서

현직자 분들이나 KAIST, 서울대 박사 분들께서 직접 강의를 찍어주시고 계신다.

 

따라서, 실무에서 쓰이는 스킬들을 핵심만 짚어서 학습할 수 있다는 점에서 꼭 추천하고 싶다.

 

또한, 메타코드 회원 가입을 하면 12,000 포인트를 지급해주는데,

이 포인트를 이용해서 상시로 진행하는 이벤트에 응모할 수도 있으니 한 번 도전해보시길!

신규 개설된 유료 강의를  선착순으로 무료로 들을 수 있는 기회도 있으니 놓치지 말자!

https://www.metacodes.co.kr/

 

메타코드M

AI 강의 & 커뮤니티 플랫폼ㅣ300만 조회수 기록한 IT 현직자들의 교육과 함께 하세요

www.metacodes.co.kr

 

 


WHERE

WHERE 구문은 쿼리의 영향을 받는 데이터 또는 행의 정확한 기준을 지정하는 데 사용되는 키워드이다.

INSERT, UPDATE, SELECT, DELETE와 같은 SQL문과 함께 사용되어

데이터를 필터링하고 다양한 작업을 수행할 수 있다.

 

WHERE문의 기본 구조는 다음과 같고,

SELECT [컬럼명]
FROM [테이블명]
WHERE [조건] ;

 

문법 순서는 꼭 지켜져야 한다!

 

 

 

비교연산자 (<, >, =)

비교연산자 예시

 

비교 연산자는 특정 표현식을 다른 값이나 표현식과 비교하는 조건에서 사용된다.

다음과 같은 예시처럼 사용 할 수 있고, 이는 orederlinenumber가 1인 경우만 추출하는 것을 의미한다.

SELECT *
FROM orderdetails
WHERE orderlinenumber = 1
;

 

 

다만 주의해야 할 점은 다음 예시와 같이

SELECT ename, job
FROM emp
WHERE job = 'SALESMAN'
;

 

숫자에는 작은따옴표가 필요 없지만 문자나 문자열, 날짜에는 작은따옴표가 필요하며

문자의 대소문자도 일치해야 한다는 것이다.

 

 

 

논리연산자 (AND, OR, NOT)

논리 연산자는 조건의 진위 여부를 테스트 할 때 사용하는 연산자로,

비교 연산자처럼 TRUE, FALSE 또는 UNKNWON 값의 Boolean 데이터 형식을 반환한다.

종류에는, ALL, AND, ANY, BETWEEN, IN, EXISTS, LIKE, NOT, OR이 있다.

ALL : 전체 값을 비교하여 모두 만족해야만 True를 반환.
예) 1000 > ALL(500, 1000, 2000) -> FALSE : ALL안에 있는 모든 값들보다 1000이 커야하므로 FALSE

AND : 두 개의 식을 결합하여 두 식이 모두 True일 경우에만 True를 반환.
예) WHERE height > 10 AND weight >5; : 높이가 10보다 크고, 중량이 5보다 큰 경우 True반환

ANY : 조건 식 중 하나만 만족해도 True를 반환.
예) 1000 > ANY(500, 1000, 1500) --> True

IN, EXISTS : NULL결과가 출력되어도 결과가 있다고 본다. 따라서 True반환!!

NOT : 해당명령문이 거짓인 행을 선택하기 위한것.

OR : 두 조건 중 하나를 충족하는 행을 선택할 수 있는 논리연산자

 

 

논리연산자에서 중요한 개념은

AND의 우선순위가 앞서기 때문에 같은 결과 출력

 

AND와 OR을 같이 사용하는 경우 우선순위는 AND에 있고,

OR가 우선적으로 실행되기 위해서는 소괄호를 활용 () 해야 한다는 것!

따라서, 두 개의 식을 결합하여 사용할 때에는

소괄호의 위치에 따라 결과가 달라질 수 있으니 주의하자!

 

 

 

LIKE

SELECT *
FROM table
WHERE LIKE '%CARS' : CARS로 끝나는 데이터 검색
WHERE LIKE 'CARS%' : CARS로 시작하는 데이터 검색
WHERE LIKE '%CARS%' : CARS를 포함하는 데이터 검색

 

LIKE 함수는 문자열에서 원하는 문자가 포함되어 있는지 검색하고,

정확한 값이 아닌 유사한 값을 일치시킬 수 있는 연산자이다.

WHERE 구문과 LIKE 사이는 다른 구문이 들어가도 되지만,

%를 기준으로 의미가 달라질 수 있으니 체크하자.

 

 

DISTINCT

예시 Product Table에서 Productline column을 보면 다양한 상품이 있는데,

어떤 상품이 있는지 확인하기 위해 DISTINCT 문을 활용할 수 있다.

SELECT DISTINCT
productline
FROM products
;

 

이러한 DISTINCT 문을 활용하면 해당 컬럼의 UNIQUE 데이터를 반환한다. 

 

 

 

(NOT) BETWEEN

BETWEENT 절은 A 이상 B 이하의 데이터를 출력하는 구문이고,

날짜, 나이, 문자 등의 데이터에 기준이 필요한 경우 사용할 수 있다.

 

비교연산자를 이용하여 같은 결과를 출력할 수 있지만,

BETWEEN 함수를 통해 코드의 효율성을 줄일 수 있는 점은 조금 더 편리하다는 점을 기억하자

 

반면, NOT BETWEEN 절은 A 이상 B 이하를 제외한 데이터를 출력하는 함수이고,

여집합 개념이라고 생각하면 이해가 쉽다.

SELECT * FROM table
WHERE column1 NOT BETWEEN 10 AND 30
-> column1이 10 이상 30 이하 제외 모든 데이터 출력

 

 

(NOT) IN

IN은 특정 값이 있을 때 조회하는 함수로,

아래 예시와 같이 사용할 수 있다.

SELECT *
FROM table
WHERE column1 IN (10, 20, 30)
-> column1이 10, 20, 30인 데이터를 조회한다.

 

 

NOT IN은 특정 값이 포함되지 않은 데이터를 조회할 때 사용하고,

NOT BETWEEN 함수와 같이 여집합 개념이다.

SELECT *
FROM table
WHERE column1 NOT IN (10, 20, 30)
-> column1이 10, 20, 30이 아닌 데이터 조회

SELECT *
FROM table
WHERE column1 <> 10 and column1 <> 20 and column1 <> 30

 

NOT IN은 <>기호를 사용하여 같은 의미로 사용할 수 있음을 기억하자!

 

 

IS (NOT) NULL

IS NULL 문은 나중에 직접 DB를 구축할 때 활용할 수 있다.

IS NULL : column 값이 NULL 인 데이터 조회
IS NOT NULL : COLUMN의 값이 NULL이 아닌 값 조회 

 

NULL 값이 아닌 데이터만 중요하다고 생각할 수 있지만,

예를 들어 주식 데이터의 경우에는 NULL 데이터의 의미가 상장 폐지를

의미할 수도 있기 때문에 도메인에 따라서는 중요도가 다를 수 있다.

 

 

 

ORDER BY

ORDER BY 예시

 

SELECT 문을 사용할 때 출력되는 결과물은 테이블에 입력된 순서대로 출력되는 것이 기본이다.

하지만, 내림차순 혹은 오름차순으로 정렬된 데이터들이 필요할 때 ORDER BY 절을 사용한다.

SELECT * FROM table
ORDER BY column1 (ASC, DESC)

 

ORDER BY 이후 정렬하고자 하는 열의 이름을 써줄 때, ASC가 기본 값이므로,

오름차순으로 정렬된 데이터를 보고싶은 경우 생략이 가능하다는 점을 기억하자

 

만약, 여러 컬럼에 대해 정렬하고 싶을 때는 다음 예시와 같이 다중정렬이 가능하다.

SELECT *
FROM table
ORDER BY
column1 DESC,
column2 ASC
;

 

다만,  정렬 기준에 따라 column1이 먼저 내림차순 정렬, 이후 column2가 오름차순 정렬된 결과가 출력된다. 

 

 

 

GROUP BY

GROUP BY 예시

 

우리는 SQL을 통해 데이터를 그룹화할 수 있다는 것을 알 수 있다.

GROUP BY절은 데이터베이스 상에서 중요한 개념으로, 주로 집계 함수와 같은 데이터에 관한 계산 함수와 같이 사용된다.

 

예를 들어, 다음과 같은 GROUP BY문을 작성하여 실행시키면

SELECT productline,
count(productline)
FROM products
GROUP BY productline
;

products 테이블에서 productLine 별 정보의 수를 카운트하여 출력해준다.

 

즉, 데이터 그룹화는 다양한 계산을 하기 위한 것이다.

대표적인 집계함수는 다음과 같다.

1. COUNT() : 행의 개수를 세어줌
2. AVG() : 행 안에 있는 값의 평균을 내어줌
3. MIN() : 행 안에 있는 값의 최솟값을 반환해줌
4. MAX() : 행 안에 있는 값의 최댓값 반환
5. SUM() : 행 안에 있는 값의 합을 내어줌

 

 

 

 


오늘 강의 후기

드디어 SQL을 이용한 WHERE & ORDER BY & GROUP BY 구문을 배웠는데,

뭔가 기존에 책으로 공부하던 것보다 핵심만 딱 요약해서 설명해주시는 느낌이라서

공부하는 데도 지루하지 않고 조금 더 내용적으로도 잘 이해되는 것 같다.

앞으로 강의와 실습을 바탕으로 SQL 마스터 해보자 ,,

 

 

해당 강의를 들을 지 말지 고민말고 한 번 들어보시길!
이상훈 강사님의 데이터분석가 입문 필수 SQL 부트캠프
데이터 분석가 공부를 시작하려는 학생들에게 강추합니다!

 

 

 

* 서포터즈 지원을 받아 작성하였습니다