본문 바로가기
자격증/SQLD

SQLD 정리 - 2과목 SQL 기본 PART 2

by char_lie 2023. 3. 14.
반응형

자격증 준비하면서 내가 이해하기 편하게, 다시 보기 좋게 정리하는 SQLD의 기본 내용 (자격증 상세 내용은 아래)

https://www.dataq.or.kr/www/sub/a_03.do

 

데이터자격시험

SQL(Structured Query Language)은 데이터베이스를 직접적으로 액세스할 수 있는 언어로, 데이터를 정의하고(Data Definition), 조작하며(Data Manipulation), 조작한 결과를 적용하거나 취소할 수 있고(Transaction Con

www.dataq.or.kr


Where절

SELECT 컬럼1, 컬럼2, ··· FROM 테이블명 WHERE 조건절;
UPDATE 테이블명 SET 컬럼명 = 새로운 데이터 WHERE 조건절;
DELETE FROM 테이블명 WHERE 조건절;

연산자

  • 비교 연산자
    • = (같음), < (작음), ≤ (작거나 같음), > (큼), ≥(크거나 같음)
  • 부정 비교 연산자
    • !=(같지 않음), ^= (같지 않음), <>(같지않음), not 컬럼명= (같지않음), not 컬럼명> (크지않음)
  • SQL 연산자
    • BETWEEN A AND B (A와 B를 포함한 사이)
    • LIKE ‘비교 문자열’ (비교 문자열을 포함)
    • IN LIST : LIST 중 하나와 일치
    • IS NULL : NULL 값
  • 부정 SQL 연산자
    • NOT BETWEEN A AND B (A와 B를 포함하지 않은 사이가 아님)
    • NOT IN LIST : LIST 중 일치하는 것이 없음
    • IS NOT NULL : NULL 값이 아님
  • 논리 연산자
    • AND : 모든 조건이 TRUE면 TRUE 반환
    • OR : 하나 이상의 조건이 TRUE면 TRUE 반환
    • NOT : TRUE면 FASLE, FALSE면 TRUE 반환

Function

문자 함수

  • CHR : 총 128개의 문자를 숫자로 표현될 수 있도록 정의해 놓은 코드를 바탕으로 인수가 매핑되는 문자를 알려주는 함수
  • LOWER : 문자열을 소문자로 변환해주는 함수
  • UPPER : 문자열을 대문자로 변환해주는 함수
  • LTRIM : 특정 문자 명시하지 않을 경우 왼쪽 공백 제거하고 명시할 경우 문자열을 왼쪽부터 한 글자씩 특정 문자와 비교해서 특정 문자에 포함되어 있으면 제거하고 포함되지 않았으면 멈춤
  • RTRIM : 특정 문자 명시하지 않을 경우 오른쪽 공백 제거하고 명시할 경우 문자열을 오른쪽부터 한 글자씩 특정 문자와 비교해서 특정 문자에 포함되어 있으면 제거하고 포함되지 않았으면 멈춤
  • TRIM : 옵션이 없을 경우 왼쪽과 오른쪽 공백을 제거, 그렇지 않을 경우 문자열을 위치로 지정된 곳부터 한 글자씩 특정 문자와 비교하여 같으면 제거하고 같지 않으면 멈춤
  • SUBSTR : 문자열의 원하는 부분만 잘라서 반환해주는 함수
  • LENGTH : 문자열의 길이
  • REPLACE : 변경 전 문자열을 찾아 변경 후 문자열로 바꿔주는 함수

숫자 함수

  • ABS : 절대값 변환해주는 함수
  • SIGN : 수의 부호를 반환해주는 함수, 양수면 1, 음수면 -1, 0이면 0 반환
  • ROUND : 수를 지정된 소수점 자릿수까지 반올림하여 반환해주는 함수
  • TRUNC : 수를 지정된 소수점 자릿수까지 버림하여 반환하는 함수
  • CEIL : 소수점 이하의 수를 올림한 정수를 반환해주는 함수
  • FLOOR : 소수점 이하의 수를 버림한 정수를 반환해주는 함수
  • MOD : 수의 나머지를 반환하는 함수

날짜 함수

  • SYSDATE : 현재의 연, 월, 일, 시, 분, 초를 반환해주는 함수
  • EXTRACT : 날짜 데이터에서 특정 단위만 출력해서 반환해주는 함수
  • ADD_MONTHS : 날짜 데이터에서 특정 개월 수를 더한 날짜를 반환해주는 함수

변환 함수

  • TO_NUMBER : 문자열을 숫자형으로 변환해주는 함수
  • TO_CHAR : 수나 날짜형의 데이터를 포맷 형식의 문자형으로 변환해주는 함수
  • TO_DATE : 포맷 형식의 문자형의 데이터를 날짜형으로 변환해주는 함수

NULL 관련 함수

  • NVL(a, b) : a의 값이 NULL일 경우 b를 반환, NULL이 아닐 경우 a를 반환해주는 함수
  • NULLIF(a, b) : a와 b가 같으면 NULL 반환, 같지 않으면 a 반환
  • COALESCE(a, b, c, ···) : NULL이 아닌 최초 인수를 반환해주는 함수

CASE 구문

SELECT CASE WHEN COL1 = 'C' THEN SUBSTR(COL2,2,1)
			WHEN COL1 = '가' THEN 'C'
			WHEN COL1 = '1' THEN '10'
			ELSE 'B'
		END AS RESULT
	FROM SAMPLE :

-> CASE WHEN에 의해 COL1이 '가' 이면 'C', '2'이면 'B', C이면 'B'가 출력


GROUP BY, HAVING 절

GROUP BY

  • 데이터를 그룹별로 묶을 수 있도록 해주는 절
  • 집계 함수 (계산시 Null인 값을 제외)
    • COUNT(*) : 전체 ROW를 count하여 반환
    • COUNT : Null인 Row를 제외하고 count하여 반환
    • COUNT(DISTINCT 컬럼) : 컬럼값이 Null이 아닌 ROW에서 중복을 제거하고 count하여 반환
    • SUM : 합계 반환
    • AVG : 평균 반환
    • MIN : 최솟값 반환
    • MAX : 최댓값 반환

HAVING

  • GROUP BY 절을 사용할 때 WHERE 절처럼 사용하는 조건절
  • 논리적으로 SELECT 절 전에 수행되므로 SELECT 절에 명시되지 않은 집계 함수로도 조건 부여 가능

ORDER BY 절

  • SELECT 문에서 논리적으로 제일 마지막에 수행
  • 데이터를 정렬하는 기능
  • 따로 명시하지 않으면 데이터는 임의로 출력 (ASC : 오름차순, DESC : 내림차순)
  • 정렬 기준이 되는 컬럼에 NULL 데이터가 포함될 경우 데이터베이스 종류에 따라 정렬 위치가 달라짐(Oracle에서 Null은 최대값, SQL server에서는 최솟값으로 취급)

조인 (JOIN)

각기 다른 두 개 이상을 합칠 때 사용

EQUI JOIN

  • = 조건으로 조인하는 방식
  • 가장 흔하고 많이 사용 됨
SELECT A.COL1, B.COL2
FROM SAMPLE1 A, SAMPLE2 B
WHERE A.COL1 = B.COL3

Non EQUI JOIN

  • =이 아닌 다른 조건들을 사용하여 조인하는 방식
SELECT A.COL1, B.COL2
FROM SAMPLE1 A, SAMPLE2 B
WHERE A.COL1 >= B.COL3 AND A.COL1 <= B.COL1
반응형

댓글