MYSQL

이동원·2024년 3월 27일

SQL 조회 연습1 - LIKE를 이용한 문자열 포함 여부 검색

cf) % 는 다른문자를 의미

  • select * from 테이블 where 컬럼 LIKE "%문자열%" => 어디든 포함만 되면 OK
  • select * from 테이블 where 컬럼 LIKE "%문자열" => 문자열로 끝나는 것만
  • select * from 테이블 where 컬럼 LIKE "문자열%" => 문자열로 시작하는 것만
  • 특정 문자열 포함하지 않는 것 찾기
  • select * from 테이블 where 컬럼 NOT LIKE "%문자열%" => 문자열로 시작하지 않는 것만

SQL 조회 연습2 -숫자 함수 사용법과 집계함수 비집계함수의 차이

  • 집계함수 -> 모든 행을 대상으로 하나의 결과가 나옴
    EX) count(컬럼) -> 모든 행의 개수
    select count(OrderDetailID) from OrderDetails;

    sum(컬럼) -> 모든 행의 합
    select sum(Quantity) from OrderDetails;

    avg(컬럼) -> 모든 행의 평균
    select avg(Quantity) from OrderDetails;

    max(컬럼) -> 모든 행중의 최대값
    select max(Quantity) from OrderDetails;

    min(컬럼) -> 모든 행중의 최소값
    select min(Quantity) from OrderDetails;
    select Quantity from OrderDetails order by Quantity desc;

  • 일반함수 -> 모든 행 각각에 적용해서 각각의 결과가 나옴
    select *, FLOOR(Price) as price_int from Products;

  • 집계 함수를 사용할 때 주의할 점: SQL의 순서상 WHERE에서는 집계함수를 사용해서는 안된다. WHERE에서는 행을 집계하는데 집계함수는 행의 개수를 줄이기 때문에 행을 집계하는 데 방해가 된다. 단, 일반 함수의 경우는 행의 개수가 그대로 유지 되기 때문에 사용 가능하다.

  • SQL의 실행 순서: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

각 단계의 역할

  • FROM : 특정 테이블의 데이터를 읽어옴
  • WHERE : 읽어온 데이터의 행을 조건에 맞게 거름
  • GROUP BY : 행을 특정 컬럼의 값을 기준으로 같은 값끼리 한 그룹으로 합침
  • HAVING : GROUP BY된 결과에서 조건에 맞게 거름
  • SELECT : 최종 집계된 행에서 필요한 컬럼만 선택
    #- ORDER BY : 최종 집계된 컬럼을 대상으로 정렬 작업

SQL 조회 연습 - 조건 함수 if와 case의 활용

0개의 댓글