Day 2 - 26.09.22

서코딩·2026년 9월 22일

SQL

목록 보기
2/7

0. 복습

DBMS

  • 데이터베이스 관리 시스템
  • DB에 존재하는 데이터를 관리하는 환경을 제공하는 프로그램

RDBMS

  • 관계형 데이터베이스 관리 시스템
  • 데이터를 테이블 형태로 저장해 놓는 데이터베이스

SQL

  • DBMS의 데이터를 관리하기 위해 설계된 언어

SELECT
: 데이터를 조회할 때 사용

	SELECT 컬럼명1, ... FROM 테이블명;

1) ORDER BY

  • ORDER BY 컬럼명 [ASC or DESC];

2) DISTINCT : 중복제거

  • SELECT DISTINCT 컬럼명

자료형

  • 문자형 : char / varchar2
  • 숫자형 : number
  • 날짜 : date

연산자
1) 최우선 연산자 : ()소괄호 연산
2) 산술 연산자 : +, -, *, /
3) 연결 연산자 : 하나의 문자로 연결 a || b
4) 관계 연산자(비교 연산자) >, <, >=, <=, =, <>(!=)
5) SQL 연산자
6) 논리 연산자

WHRER절

  • SELECT 문과 같이 사용
  • 조건에 맞는 행을 찾을 때 사용
	SELECT 컬럼명
	FROM 테이블명
	WHERE 조건

1. 연산자

1) SQL 연산자
: SQL에만 존재하는 연산자

(1) LIKE 연산자

  • 문자열 패턴을 검색하는데 사용하는 연산자
    (문자열이 부분 일치하는지)
  • %(~아무거나), _(자릿수)

(2) BETWEEN a AND b

  • a이상 b이하인 조건

(3) IN(a, b, c, ...)

  • a 또는 b 또는 c 또는, ... 일 조건

(4) IS NULL / IS NOT NULL

  • NULL : "데이터가 없음"을 나타냄
  • NULL에 숫자 등 다른 타입과 연산을 하면 => NULL
  • NULL과 어떤 값과 비쇼하면 => "알수 없음" 반환

(5) 관계연산자 ANY(a, b, c, ...)
: a, b, c 중 아무거나 만족하면

(6) 관계연산자 ALL(a, b, c, ...)
: a, b, c 를 전부 만족한다면

2) 논리 연산자
: 여러개의 조건을 연결할 때 사용

  • A AND B : A와 B 둘다 만족하는 경우
  • A OR B : A와 B 둘 중 하나라도 만족하는 경우
  • NOT A : A조건에 만족하지 않은 경우

2. NULL 관련 함수

1) NVL()

  • NVL(컬럼명, 값)
    해당 컬럼의 NULL값 대신 다른 값으로 변경 후 조회

2) NVL2()

  • NVL2(컬럼명, NULL이 아닐 때 값, NULL일 때 값)
  • NULL일때의 값, NULL이 아닐 때 값을 각각 설정
  • NVL + DECODE 합친 기능

3) NULLIF()

  • 두개의 값이 같으면 NULL
  • NULLIF(컬럼1, 컬럼2)
  • 행마다 컬럼1과 컬럼2의 값이 같으면 NULL, 다르면 컬럼1

4) COALESCE()

  • NULL이 아닌 최초의 값
  • COALESCE(값1, 값2, 값3, ...)
  • 값1이 NULL이 아니면 값1 그렇지 않으면 뒤로 ~

3. DECODE & CASE문

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

1) DECODE

  • if문 구현
  • DECODE(컬럼명, 조건1, 결과1, 조건2, 결과2, ..., 기본값)
  • 특정 하나의 컬럼의 조건에 따른 조회 가능

2) CASE문

  • 조건문 구현(관계(비교)연산자 사용 가능)
  • CASE문 구성 : CASE ~ WHEN ~ THEN ~ ELSE
[CASE문 구조]

SELECT
	CASE
    	WHEN 조건1 THEN 결과
        WHEN 조건2 THEN 결과
        ...
        ELSE 모든 조건에 맞지 않을 경우
    END
FROM 테이블명;
  • WHEN : 조건
  • THEN : 조건이 참이면 실행
  • ELSE : 모든 조건이 거짓이면 실행

4. 집계함수

집계함수			기능
============================
COUNT()			행의 개수
SUM()			합계
AVG()			평균
MAX()			최대값
MIN()			최소값
  • 집계함수의 결과 행은 1개가 나온다 !!
  • ** 주의사항 : NULL은 포함시키지 않는다, WHERE 절에 사용 불가 !!
  • COUNT(*) : NULL을 포함한 모든 행의 개수
  • COUNT(컬럼명) : 해당 컬럼에서 NULL 값을 제외한 행의 개수

5. 그룹 연산

1) GROUP BY 절

  • 특정 컬럼에 있는 값을 그룹으로 묶어서 데이터를 집계한다
    ex) 부서별 평균 급여, 팀별 평균 키, ... (~별, ~마다)
  • SELECT문에서 사용하며 위치는 WHERE절 다음, ORDER BY 위에 작성
SELECT 컬럼
FROM 테이블
WHERE 조건
GROUP BY 컬럼명
ORDER BY 컬럼명

2) HAVING절
: GROUP BY절 다음에 작성하면서,
GROUP BY에 조건을 설정할 때 사용

  • WHERE VS HAVING
  • WHERE : 행에 조건을 걸 때 사용
  • HAVING : GROUP BY로 나눈 그룹에 조건을 적용

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

profile
서코딩 127 !

0개의 댓글