[SQL] SELECT, WHERE, HAVING

박은서·2024년 11월 30일

SQL

목록 보기
1/2

한국 사람과 대화하려면 한국어를 알아야 하고 일본 사람과 대화하려면 일본어를 알아야 한다. 데이터베이스와 대화하려면? SQL 언어를 할 줄 알아야 한다.
그러니 SQL 공부를 차근차근 해보자
sql meme

SQL 연습은 무료 사이트인 이곳에서 진행했다.

아래의 코드는 SQL에서 가장 기초가 되는 코드이다.
SELECT, WHERE, HAVING절이 어떤 역할을 하는지 설명해보겠다.

SELECTFROM 데이터셋
WHERE
GROUP BY
HAVING
ORDER BY

1. SELECT절 : 데이터 선택

  • DB에서 특정 column을 조회할 때 사용하는 명령어다.
    예를 들어 내가 Customers 데이터셋에서 전체 데이터를 보고 싶을 수도, 고객의 이름과 주소만 보고 싶을 수도 있다. 이럴 때 사용하는 것이 select 절이다.
  1. Customers 데이터셋에서 모든(*) 열 조회
SELECT * FROM Customers; 

예제1

  1. Customers 데이터셋에서 Address 열만 조회
SELECT Address FROM Customers;
alt text
  1. Address 열 이름을 Ad 열 이름으로 변경하여 조회 (AS)
SELECT Address AS Ad FROM Customers;

2. WHERE절 : 조건에 따른 데이터 필터링

  • 특정 조건을 만족하는 데이터만 조회한다.
    예를 들어 사장인 내가 10개 이상 팔린 물품 목록 리스트를 보고 싶거나 이름이 A로 시작하는 고객 리스트만 보고 싶을 때 where 절을 사용한다.
  1. 수량이 40개 이상 팔린 물품만 조회
SELECT * 
FROM OrderDetails
WHERE Quantity >= 40;

  1. 이름이 A로 시작하는 고객 리스트 조회
SELECT * 
FROM Customers
WHERE CustomerName LIKE 'A%' ;

✅ WHERE 절 조건 연산자

연산자설명예시
AND두 개 이상의 조건이 모두 참일 경우 선택SELECT * FROM users WHERE age > 18 AND city = 'Seoul';
OR두 개 이상의 조건 중 하나라도 참일 경우 선택SELECT * FROM users WHERE age < 18 OR city = 'Busan';
LIKE문자열 패턴 매칭 (% )SELECT * FROM products WHERE name LIKE 'Samsung%';
NOT조건이 참이 아닌 경우 선택SELECT * FROM users WHERE NOT city = 'Seoul';
%임의의 여러 문자를 대체하는 와일드카드SELECT * FROM products WHERE name LIKE 'S%g';
_단일 문자를 대체하는 와일드카드SELECT * FROM products WHERE code LIKE 'A_123';

3. HAVING 절: 집계 함수 결과에 조건 적용

  • 집계 함수(SUM, AVG, COUNT 등)를 사용한 결과에 조건을 걸 때 활용한다.
  • WHERE과 다른 점은 집계된 결과를 조건에 적용한다는 점이다.
    예를 들어 1년 중 총 매출이 1000만원이 넘는 달이 어느 달인지 볼 때 Having 절이 사용된다.
  1. 카테고리별 판매 금액이 300 이상인 경우
SELECT category, SUM(amount) AS total_amount
FROM sales
GROUP BY category
HAVING SUM(amount) >= 300;
  1. 특정 지역에서 판매된 제품 수가 2개 이상인 경우
SELECT region, COUNT(product) AS product_count
FROM sales
GROUP BY region
HAVING COUNT(product) >= 2;
profile
Eunseo Park

0개의 댓글