본문 바로가기

기타/SQLD 자격증

8. SQL WHERE문 (SQLD 자격증 공부)

SQL(Structured Query Language)

  ▷ WHERE문 사용

  1. 비교 연산자 :  =, <, >, <=, >=
  2. 부정 비교 연산자 : !=, ^=, <>, NOT 칼럼명 = , NOT 칼럼명 >
  3. 논리 연산자 : AND, OR, NOT
  4. SQL 연산자 : LIKE '%문자열%' , BETWEEN A AND B, IN (A,B,C), IS NULL
  5. 부정 SQL 연산자 : NOT BETWEEN A AND B, NOT IN(A,B,C,) , IS NOT NULL

   ≫ LIKE문 사용

  • % : 어떤 문자를 포함한 모든 것을 조회 
  • EX:) 'A%' = A로 시작하는 모든문자 조회, '%A%' = A가 포함된 모든 문자 조회
  • _ : 단일 문자를 의미

   ≫ BETWEEN문

  • 해당 범위의 값을 조회
  • EX:) A와 B사이의 값을 조회한다.
SELECT * FROM EMP WHERE DEPTNO BETWEEN 10 AND 30

  ≫ IN문

  • OR의 의미를 가지고 있어 하나의 조건만 만족해도 조회가 된다.
SELECT * FROM EMP WHERE ENAME IN ('장비', '여포', '유비')

-- 여려개의 칼럼 지정
SELECT * FROM EMP WHERE (ENAME, DEPTNO) IN (('장비',10),('유비',20))

SQL문의 의미로 올바른 것은? (답 : 1)
SELECT * FROM EMP WHERE ENAME LIKE '%여%'

① ENAME에 '여'가 포함된 직원을 조회
② 첫글자가 '여'로 시작하는 직원을 조회
③ ENAME이 '여'를 포함하지 않은 직원을 조회
④ ENAME이 '여'로 시작되지 않는 직원을 조회


  ≫ NULL 값 조회

  • NULL은 모르는 값을 의미
  • 값의 부재를 의미
  • 숫자 혹은 날짜를 더하면 NULL이 된다.
  • 값을 비교시 알수 없음이 반환
  • 조회시 IS NULL을 사용하며, NULL이 아닌 경ㅇ우 IS NOT NULL을 사용
NULL 함수 내용
NVL(칼럼,바꿀내용) NULL이면 다른 값으로 바꾼다.
NVL2(칼럼명, NULL일경우, 아닐경우) NVL함수와 DECODE 함수를 하나로 만든 것
NULLIF(EX1, EX2) 두개의 값이 같으면 NULL, 같지 않으면 첫번째 값 반환
COALESCE(EX1, EX2, EX3...) NULL이 아닌 최초의 인자값 반환
EX :) EX1이 NULL이 아니면 EX1값, 그렇지않으면 그뒤의 값의 NULL 여부를 판단하여 반환

NULL 관련 함수에 대한 설명으로 올바른 것은? (답 : 4)
① NVL함수는 칼럼에 NULL값이 있으면 NULL로 반환한다.
② NVL2함수는 칼럼값이 NULL이면 두번째 값, NULL이 아니면 세번째 값을 반환한다.
③ NULIF함수는 두 개의 칼럼값이 같으면 NULL을 되돌리고 같지않으면 0을 반환한다.
④ COALESCE 함수는 칼럼값이 NULL이 아니면 EX1을 반환한다.

 

  ≫ GROUP 연산

  • GROUP BY는 테이블에서 소규모행을 그룹화 하여 합계, 평균, 최대값, 최소값 등을 계산할 수 있다.
  • HAVIG구에 조건문을 사용
  • ORDER BY를 사용해서 정렬 할 수 있다.
-- 예시
SELECT 
	DEPTNO, 
	SUM(SAL)		-- SAL의 합계를 구한다
FROM EMP
GROUP BY DEPTNO;		-- DEPTNO를 그룹화 한다
  • GROUP BY에 조건을 사용하기 위해선 HAVING을 사용해야 한다. 
  • ※ WHERE절에 조건을 사용시 조건을 충족하지 못한 데이터들은 GROUP BY 대상에서 제외

▷ 집계 함수

  • COUNT() : 행 수를 조회, COUNT(*)는 NULL값을 포함, COUNT(칼럼명) NULL값 제외
  • SUM() : 합계를 계산
  • AVG() : 평균을 계산
  • MAX()와 MIN() : 최댓값과 최소값을 계산
  • STDDEV() : 표준편차를 계산
  • VARIAN() : 분산을 계산

  ≫ SELECT문 실행 순서

FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

SELECT문 실행 순서로 옳은 것은? (답 : 3)
① SELECT → WHERE → GROUP BY → HAVING → ORDER BY → FROM
② SELECT → WHERE → FROM → ORDER BY → GROUP BY → HAVING
③ FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
④ FROM → SELECT → WHERE → ORDER BY → GROUP BY → HAVIG

  ≫ 형변환

  • 두개의 데이터 타입이 일치하도록 변환
  • 형변환은 명시적과 암시적 형변환이 있다
  • 명시적 형변환은 함수를 사용해 데이터 타입을 일치시키는 것
형변환 함수 내용
TO_NUMBER(문자열) 문자열을 숫자로 변환
TO_CHAR(숫자 OR 날짜,[FORMAT]) 숫자 또는 날짜를 FORMAT의 문자로 변환
TO_DATE(문자열, [FORMAT]) 문자열을 지정된 FORMAT의 날짜형으로 변환
  • 암시적 형변환은 개발자가 형변환을 하지 않은 경우 DBMS가 자동으로 형변환하는 것을 의미

형변환에 대한 설명으로 올바르지 않은 것은? (답 : 2)
① TO_NUMBER() 함수는 문자열을 숫자로 변환
② TO_DATE() 함수는 숫자형을 날짜형으로 변환
③ TO_CHAR() 함수는 숫자형과 날짜형을 문자로 변환
④ 암시적 형변환은 개발자가 형변환을 수행하지 않았을 경우 DBMS 내부적으로 형변환을 수행