SQL 문법 연습

Suhyeon Lee·2024년 9월 15일
0
  • WHERE절

    • 조건이 여러 개면 AND 사용 (콤마 X)
    • WHERE절 조합은 AND/OR/NOT/IN 연산자로
      • AND: 하나 이상의 열로 필터링
      • OR: 여러가지 조건에서 하나 이상의 조건이 만족되면 데이터 출력
      • IN: 조건의 범위를 지정하는 데 사용. 값은 콤마(,)로 구분하여 괄호 내에 묶으며 괄호 안의 값 중에서 하나 이상과 일치하면 조건에 맞는 것으로 형가
      • NOT: 바로 뒤에 오는 조건을 부정
    • WHERE절에서 논리 연산자를 사용할 때는 각 연산자를 모두 괄호로 묶어주는 것이 좋음
      • 기본 평가 순서에 따라 제대로 해석되리라 안심하지 말고 직접 의도대로 묶어주기
  • WHERE절에서 사용 가능한 연산자

    • 논리 연산자: AND, OR
    • 산술 연산자: +, -, *, /
    • 대소 비교 연산자
      • 숫자는 일반적인 대소 비교 연산자의 규칙을 따름
      • 문자열은 알파벳 순서로 문자열의 대소를 비교
    • 등가 비교 연산자
      • =: 피연산자가 같을 때 TRUE
      • !-, <>, ^=: 피연산자가 다를 때 TRUE
    • 논리 부정 연산자(NOT)
      • 보통 IN, BETWEEN, IS NULL 연산자와 복합적으로 사용하는 경우가 많음
    • IN 연산자
    • BETWEEN a AND b 연산자
    • LIKE 연산자와 와일드 카드 '%', '_'
      • 와일드 카드: 특정 문자 또는 문자열을 대체하거나 문자열 데이터의 패턴을 표기하는 특수 문자
      • %: 길이와 상관없이(문자 없는 경우도 포함) 모든 문자 데이터를 의미
      • _: 어떤 값이든 상관없이 한 개의 문자 데이터를 의미
    • ESCAPE절(@, ^)
      • 와일드 카드 문자가 데이터의 일부일 경우 %_를 포함한 데이터를 조회하기 위해 사용
      • @와 ^ 대신 다른 문자를 지정해서 사용 가능
    • IS NULL/IS NOT NULL 연산자
    • 집합 연산자
      • UNION: 연결된 SELECT문의 두 결과 값을 합집합 처리. 결과 값의 중복은 제거
      • UNION ALL: 연결된 SELECT문의 두 결과 값을 합집합 처리. 결과 값의 중복도 모두 출력
      • MINUS: 먼저 작성한 SELECT문의 결과 값에서 다음 SELECT문의 결과 값을 차집합 처리. 먼저 작성된 SELECT문의 결과 값 중 다음 SELECT문에 존재하지 않는 데이터만 출력
      • INTERSECT: 연결된 SELECT문의 두 결과 값의 중복된 데이터만 출력. 교집합과 같은 의미
    • 연산자 우선 순위: 곱하기,나누기→더하기,빼기→대소비교→그 외 비교→BETWEEN→NOT→AND→OR
  • IN 연산자의 장점

    • 목록에 넣을 값이 여러 개일 때 IN 연산자가 이해하기 쉽고 쓰기도 쉬움
    • 평가 순서를 보다 쉽게 관리할 수 있고 연산자 수도 줄어듦
    • OR 연산자보다 실행 속도 빠름
    • 다른 SELECT문을 넣을 수 있음
    • 동적인 WHERE절을 만들 때 더 크게 활용 가능
  • 쿼리 작성 시 주의해야 할 것

    • 콤마 위치
      • 마지막 컬럼에 콤마 찍지 않기 → 아래와 같이 적는 습관 들이기
      SELECT 	five
      		, four
              , six
      FROM table
    • 서브쿼리 안에 서브쿼리 있는 경우 괄호 잘 챙기기
    • GROUP BY 사용하려면 반드시 GROUP BY절과 집계 컬럼을 제외한 SELECT절의 열이 일치해야 함
       SELECT 	five
       		, four
               , COUNT(six)
       FROM table   
       GROUP BY five, four
profile
2 B R 0 2 B

0개의 댓글