Database

[Database / SQL] - WHERE절 / LIKE절 / 집계함수

nam_ji 2023. 12. 13. 21:50

SQL 기본문법

WHERE절이란

  • 데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력할 때 사용합니다.
  • 기본문법
    • -- 1가지의 컬럼의 데이터를 모두 조회하는 방법
      SELECT 컬럼명 FROM 테이블명
      
      -- WHERE절에 1가지 조건으로 데이터 조회하는 방법
      SELECT * FROM 테이블명 WHERE 컬럼명 = 값
      -- 테이블 데이터 전체에서 WHERE절 뒤에 있는 조건에 맞는 데이터를 조회하는 방법
      
      -- WHERE절에 같은 컬럼 안에서 여러가지 값을 조회하는 방법1
      SELECT * FROM 테이블명 WHERE 컬럼명 = 값1 OR 컬럼명 = 값2 ....
      -- 테이블 데이터 전체에서 하나의 컬럼 안에서 여러가지 값의 데이터를 조회하는 방법1
      
      -- WHERE절에 같은 컬럼 안에서 여러가지 값을 조회하는 방법2
      SELECT * FROM 테이블명 WHERE 컬럼명 IN (값1, 값2 ...)
      -- 테이블 데이터 전체에서 하나의 컬럼 안에서 여러가지 값의 데이터를 조회하는 방법2
      
      -- WHERE절에 2가지 이상의 조건을 모두 만족한 데이터 조회하는 방법
      SELECT * FROM 테이블명 WHERE 컬럼명1 = 값 AND 컬럼명2 = 값 ....
      -- 테이블 데이터 전체에서 WHERE절 뒤에 있는 조건을 모두 만족한 데이터를 조회하는 방법
      
      -- WHERE절에 2가지 이상의 조건에 맞는 모든 데이터 조회하는 방법
      SELECT * FROM 테이블명 WHERE 컬럼명1 = 값 OR 컬럼명2 = 값 ....
      -- 테이블 데이터 전체에서 WHERE절 뒤에 있는 조건을 모두 조회하는 방법

LIKE 사용법

  • 데이터를 조회할 때 부분적으로 일치하는 데이터를 찾기 위해 사용합니다.
  • 기본문법
    • -- LIKE 기본문법
      -- 단어 = 찾고싶은단어
      -- '단어%' : 단어로 시작하는 문자 찾기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '단어%';
      
      -- '%단어' : 단어로 끝나는 문자 찾기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%단어';
      
      -- '%단어%' : 단어가 포함된 모든 문자 찾기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%단어%';
      
      -- '단어__' : 단어로 시작하는 두 글자 문자를 찾기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '단어__';
      
      -- 첫번째 문자가 단어가 아닌 모든 문자를 찾기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '[^단어]';
      
      -- 첫번째 문자가 A 또는 B 또는 C인 문자열 찾기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '[ABC]';
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '[A-C]';
      
      -- 컬럼명에 단어1 또는 단어2가 들어 있는 모든 데이터 검색하기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%단어1%' OR 컬럼명 LIKE '%단어2%';
      
      -- 컬럼명에 단어1과 단어2가 들어 있는 모든 데이터 검색하기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%단어1%' AND 컬럼명 LIKE '%단어2%';
      
      -- 컬럼명에 단어1이 들어 있고 또는 단어2가 들어 있지 않은 모든 데이터 검색하기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%단어1%' OR NOT 컬럼명 LIKE '%단어2%';
      
      -- 컬럼명에 단어1이 들어 있고 단어2가 들어 있지 않은 모든 데이터 검색하기
      SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%단어1%' AND NOT 컬럼명 LIKE '%단어2%';

집계함수 사용법

  • 집계함수는 여러 행으로부터 하나의 결과값을 반환하는 함수입니다. SELECT 구문에서만 사용되며, 열(Column)끼리 연산을 수행합니다.
    주로 평균, 합, 최대, 최소 등을 구하는데 사용합니다.
  • 기본문법
    • -- 최댓값을 구하기 위한 함수로 max(컬럼명)를 사용하면 됩니다.
      SELECT max(컬럼명) FROM 테이블명;
      
      -- 최솟값을 구하기 위한 함수로 min(컬럼명)를 사용하면 됩니다.
      SELECT min(컬럼명) FROM 테이블명;
      
      -- 평균을 구하기 위한 함수로 avg(컬럼명)를 사용하면 됩니다.
      SELECT avg(컬럼명) FROM 테이블명;
      
      -- 합계를 구하기 위한 함수로 sum(컬럼명)를 사용하면 됩니다.
      SELECT sum(컬럼명) FROM 테이블명;
      
      -- 현재행의 갯수를 구하기 위한 함수로 count(컬럼명)를 사용하면 됩니다.
      SELECT count(컬럼명) FROM 테이블명;
      
      -- 집계함수는 한 컬럼만 구합니다. 대신 ,를 이용하여 각각 다른 집계함수를 구하는 것은 상관없습니다.
      SELECT max(컬럼명), min(컬럼명) FROM 테이블명;
      
      -- AS문법으로 컬럼명을 바꿔서 출력 가능합니다.
      -- SELECT 컬럼명 AS 작명 FROM 테이블명 기본적으로 이렇게 작성합니다.
      SELECT max(컬럼명) AS 사용하고 싶은 이름 FROM 테이블명;
      
      -- 일부만 평균내는 방법 > 고객등급이 vip의 사용금액 평균 내는 방법입니다.
      SELECT avg(컬럼명) FROM 테이블명 WHERE 컬러명 = '컬럼값';
      
      -- 중복 제거하는 방법 DISTINCT 문법 사용 컬럼명 왼쪽에 작성합니다.
      SELECT DISTINCT 컬럼명 FROM 테이블명;
      
      -- 중복제거 DISTINCT 또 다른 사용법입니다.
      SELECT avg(DISTINCT 컬럼명) FROM 테이블명;
      SELECT sum(DISTINCT 컬럼명) FROM 테이블명;
      
      -- max와 min을 사용하지 않고 최대 최소 값 구하는 방법 > 오르차순 및 내림차순 사용합니다.
      SELECT 컬럼명 FROM 테이블명 ORDER BY 컬럼명 ASC; -- 최솟값
      SELECT 컬럼명 FROM 테이블명 ORDER BY 컬럼명 DESC; -- 최댓값