Day 3 - 26.09.23

서코딩·2026년 9월 23일

SQL

목록 보기
3/7

0. 복습

SQL 연산자
1) LIKE 연산자
2) BETWEEN a AND b
3) IN(a, b, c)
4) IS NULL / IS NOT NULL
5) 관계연산자 ANY
6) 관계연산자 ALL

논리연산자

  • A AND B
  • A OR B
  • NOT A

NULL 관련 함수

  • NULL : 비워져 있는 값
  • NULL은 다른 값과 연산하면 NULL이 나옴
  • 다른 값과 비교하면 알 수 없음이 나옴
    1) NVL(컬럼, 값)
    2) NVL2(컬럼, NULL이 아닐때, NULL일때 값)
    3) NULLIF(값, 값)
    4) COALESCE(값1, 값2, ...)

DCODE, CASE 문
: 특정 조건에 따라 원하는 값으로 조회할 때 사용

1) DECODE

  • DECODE(컬럼명, 조건1, 결과1, 조건2, 결과2, ..., 기본값)

2) CASE

SELECT
	CASE
		WHEN 조건1 THEN 결과1
        ...
        ELSE 위의 조건에 맞지 않을 때
	END
FROM 테이블명

집계함수

  • COUNT(), SUM(), AVG(), ...
  • 집계 함수의 결과는 행 1개가 나온다 !
  • NULL은 포함시키지 않는다
  • ** WHERE 절에 사용 불가

그룹 연산
1) GROUP BY

  • 특정 컬럼에 있는 값을 기준으로 그룹화

2) HAVING

  • GROUP BY로 묶은 그룹에 대한 조건을 설정할 때 사용

** SQL 실행 순서
FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY

1. 내장 함수

  • SQL에 내장되어 있는 함수
  • DBMS별로 약간의 차이가 있으나, 거의 비슷함

1) 문자열 함수

  • SUBSTR(문자열, m, n) : 문자열 m번째 부터 n개 자름
  • CONCAT(문자1, 문자2) : 문자열 연결
    값 || 값 (연결 연산자와 동일)
  • LENGTH(문자열) : 문자열 길이
  • LOWER(문자열) : 소문자로 변환
  • UPPER(문자열) : 대문자로 변환
  • LTRIM(문자열, 지정문자) : 왼쪽에서 지정문자 삭제
  • RTRIM(문자열, 지정문자) : 오른쪽에서 지정문자 삭제
  • TRIM(지정문자 FROM 문자열) : 양쪽에서 지정문자 삭제
  • REPLACE(문자열, 부분문자, 대체할 문자) : 문자열에서 특정 부분을 대체

2) 숫자형 함수

  • ABS(숫자) : 절대값
  • SIGN(숫자) : 부호 구분(양수, 음수, 0구분)
  • MOD(숫자1, 숫자2) : 숫자1을 숫자2로 나눈 나머지
  • CEIL(숫자) : 올림
  • FLOOR(숫자) : 내림
  • ROUND(숫자, m) : 소수점 자리 m에서 반올림
  • TRUNC(숫자, m) : 소수점 자리 m에서 절삭

3) 날짜형 함수

  • SYSDATE : 오늘 날짜를 날짜형 타입으로 반환
  • EXTRACT(YEAR | MONTH | DAY FROM 날짜)
    : 날짜에서 연도, 월, 일을 추출

2. 서브쿼리

  • 다른 쿼리문 내부에 포함되어 있는 SELECT문을 의미
  • 서브쿼리는 () 소괄호로 감싼다
    WHERE절 : SUB QUREY
    SELECT절 : SCALAR
    FROM절 : IN LINE VIEW
    => 일반적으로 전부 서브쿼리라고 부른다
  • 메인쿼리 : 서브쿼리를 감싸고 있는 쿼리

1) WHERE 절의 서브쿼리 (Sub Query)

  • 메인쿼리의 where절에 SELECT문 사용
  • ()소괄호 내에 SELECT문을 사용

(1) 단일 행 서브쿼리

  • 서브쿼리 실행결과로 1개 행만 조회됨
  • 사용하는 연산자 : 관계 연산자(비교) =, >, <, <>

(2) 다중 행 서브쿼리

  • 서브쿼리 실행결과로 여러 개의 행이 조회됨
  • 사용하는 연산자 : 다중 행 비교 연산자 IN(), ANY(), ALL()
  • IN(a, b, c, ...) : 항목 중 하나에 해당하는 경우
  • 관계연산 ANY(a, b, c, ...) : 아무거나 만족하는 경우
  • 관계연산 ALL(a, b, c, ...) : 전부 만족하는 경우

(3) 다중 컬럼 서브쿼리

  • 여러개의 조건을 한꺼번에 비교할 때 사용
    => 여러 컬럼에 대한 조건을 한 번에 비교할 때 사용
profile
서코딩 127 !

0개의 댓글