본문 바로가기
자격증/SQLD

SQLD 요약 - (4) SQL기본_연산자,함수

by 땅콩둘기 2021. 5. 25.
반응형

연산자의 종류

- BETWEEN A AND B : A 와 B 사이의 범위

- IN (list) : 리스트에 있는 값중 어느 하나라도 일치

- IS NULL : NULL 값인 경우 (Oracle은 VARCHAR2 NULL ) 빈 문자열을 로 판단

- IS NOT NULL : NULL 값이 아닌 경우

- NOT IN (list) : list의 값과 일치하지 않는다

- LIKE '비교문자열' : 비교문자열과 형태가 일치

연산자 우선순위 

() -> NOT연산자 -> 비교,SQL비교연산자 ->AND ->OR


단일행 함수

1. SELECT, WHERE, ORDER BY 절에서 사용 가능

2. 행에 개별적 조작

3. 여러 인자가 있어도 결과는 1개만 출력

4. 함수 인자에 상수, 변수, 표현식 사용 가능

5. 함수 중첩 가능

 

단일행 함수의 종류 

1) 문자형 함수 : LOWER, UPPER, SUBSTR / SUBSTRING, LENGTH / LEN, LTRIM, RTRIM, TRIM, ASCII, CONCAT

2) 숫자형 함수 : ABS, MOD, ROUND, TRUNC, SIGN, CHR / CHAR, CEIL / CEILING, FLOOR, EXP, LOG, LN, POWER, SIN, COS, TAN

3)변환형 함수 : 암시적 데이터 유형 변환 (문자가 숫자로 변형됨)

4) NULL 관련 함수 : NVL / ISNULL, NULLIF, COALESCE

 

문자형 함수

 

- LOWER : 문자열을 소문자로

- UPPER : 문자열을 대문자로

- ASCII : ASCII 문자의 값 반환

- CHR : ASCII 값에 해당하는 문자 반환

- CONCAT : 1, 2 문자열 를 연결

   ex) CONCAT(‘RDBMS’,‘ SQL’) -> ‘RDBMS SQL’

- SUBSTR : m n 문자열 중 위치에서 개의 문자 반환

   ex) SUBSTR(‘SQL Expert’,5,3) -> ‘Exp

- LENGTH : 문자열 길이를 숫자 값으로 반환

 

숫자형 함수

 

- SIGN(숫자) : 숫자가 양수면 1 음수면 -1 0이면 0 반환

- MOD( 숫자1, 숫자2) : 숫자1 을 숫자2 로 나누어 나머지 반환

- CEIL(숫자) : 크거나 같은 최소 정수 반환

- FLOOR(숫자) : 작거나 같은 최대 정수 리턴

- ROUND(숫자1, 숫자2) : 숫자1에서 숫자2 아래 자릿수에서 반올림 (숫자2 default: 0)

   ex)ROUND(38.5235,3) -> 38.524

- RUNC(숫자1,숫자2) : 숫자1에서 숫자2 자릿수 아래 소수점 버림

   ex)RUNC(38.5235,3) -> 38.523

- TRUNC(숫자1,숫자2) : 숫자1을 소수 숫자2 자리에서 잘라서 리턴 (숫자2 default: 0)

 

💡 아래의 SQL 에서 FUNCTION 자리에 쓰인 함수에 의한 결과값이 다른 하나는?
SELECT function(3.46) FROM DUAL;

 

A. CEIL

B. ROUND

C. FLOOR

D. TRUNC

 

⭐ 답 : A

➡ A. CEIL : 4

    B. ROUND, C. FLOOR, D. TRUNC : 3

 

날짜형 함수

 

- SYSDATE : 현재날짜와 시각 출력

- EXTRACT : 날짜에서 데이터 출력

- TO_NUMBER(TO_CHAR(d,‘YYYY’)) : 연도를 숫자로 출력

1 = , 1/24 = 1 , 1/24/60 = 1 하루 시간 분

 

NULL 관련 함수

 

- NVL(표현식1,표현식2) / ISNULL(표현식1,표현식2)

표현식1값이 NULL이면 표현식2값 출력한다. --- NVL(NULL판단대상,‘NULL일 때 대체값’)

- NULLIF(표현식1,표현식2)

표현식1값이 표현식2와 같으면 NULL, 같지 않으면 표현식1값 출력한다

- COALESCE(표현식1, 표현식2, ...)

임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.

💡 아래의 SELECT 결과가 NULL 이 아닌 경우는?

1) SELECT COALESCE ('AB','BC','CD') FROM DUAL;

2) SELECT CASE 'AB' WHEN 'BC' THEN 'CD' END FROM DUAL;

3) SELECT DECODE ('AB','CD','DE') FROM DUAL;

4) SELECT NULLIF ('AB','AB') FROM DUAL;

⭐ 답 : 1

SELECT COALESCE ('AB','BC','CD') FROM DUAL ➡ 'AB'

 


다중행 집계 함수

1. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과 를 돌려주는 함수이다.

2. GROUP BY 절은 행들을 소그룹화 한다.

3. SELECT, HAVING, ORDER BY 절에 사용 가능

- ALL : Default . 옵션 생략 가능

- DISTINCT : 같은 값을 하나의 데이터로 간주 옵션

다중행 집계 함수 종류

- COUNT(*) : NULL 값을 포함한 행의 수

- COUNT(표현식) : 표현식의 값이 NULL 값인 것을 제외한 행의 수

- SUM() : NULL 값을 제외한 합계

- AVG() : NULL 값을 제외한 평균

- MAX() : 최대값 출력

- MIN() :최소값 출력

✔ 조건절에 해당하는 데이터가 없을 때 COUNT(*)의 결과 값은 0 집계함수 통계정보 NULL값 가진 행 제외하고 수행

반응형

댓글