MSA Full-Stack 개발자 양성과정/데이터베이스(Oracle)
MSA Full-Stack 개발자 양성 과정 -22일차 노트 필기_데이터베이스(Oracle) 연산자, 함수_220822
Joslynn
2022. 8. 22. 22:33
연산자
1. 산술 연산자
2. 관계 연산자
3. 조건연산자
(1) IN
: 컬럼명 IN (값, 값, ...)
: 하나의 컬럼을 대상으로 '또는(OR)'으로 비교할 때
(2) BETWEEN 최소 AND 최대
: 컬럼명 BETWEEN 최소 AND 최대
: 하나의 컬럼을 대상으로 최소~최대 비교할 때
(3) LIKE
: 와일드카드 문자와 함께 사용한다.
: 컬럼에 특정한 문자열을 포함한 정보를 검색할 때 사용
**와일드 카드 문자**
1. % : 0개 이상의 문자(열)
2. _ : 1글자
--사용 예제)
NAME LIKE 'j%' : 이름 첫글자가 J로 시작하는 문자열
NAME LIKE '___' : NAME이 3글자인 문자열
NAME LIKE 'J_A%' : NAME이 첫글자가 J로 시작하고 3번째 글자는 A인 문자열
ADDRESS LIKE '%오리역%': 오리역이라는 단어를 포함한 모든 문자열 추출
(4) NOT: 위의 모든 연산자들의 앞에 NOT을 붙히면 반대
-- 사용예제)
NOT 급여 BETWEEN 1000 AND 2000
NOT 컬럼명 IN (값, 값,...)
ADDRESS NOT LIKE '%오리역%'
함수
1. 집계함수
**실행 순서
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
2. 숫자함수
3. 문자열 함수
4. 날짜 함수
--날짜함수 예제
SELECT SYSDATE, MONTHS_BETWEEN(SYSDATE, '2023-8-22'),
FLOOR(MONTHS_BETWEEN(SYSDATE, '2021-4-2'))
FROM DUAL;
SELECT ADD_MONTHS(SYSDATE, 1), NEXT_DAY(SYSDATE, 4), LAST_DAY(SYSDATE)
FROM DUAL;
5. 형변환 함수
select절에서 조건을 주어 조건에 따라 실행문장을 다르게 할 때 사용하는 함수
-- 사용 예제
/* ex) 성적테이블에서 BAN이 1이면 'MSA과정', 2이면 'IOT과정', 3이면 'DESIGN 과정',
이외는 'FULL-STACK과정'이라는 과정명필드를 만든다. */
-- DECODE 사용
SELECT NAME, BAN, KOR, ENG, MATH,
DECODE (BAN, 1, 'MSA과정', 2, 'IOT과정', 3, 'DESIGN 과정', 'FULL STACK과정') AS 과정명
FROM SUNGJUCK;
--1. CASE [대상]명시
SELECT NAME, BAN, KOR, ENG, MATH,
CASE BAN
WHEN 1 THEN 'MSA과정'
WHEN 2 THEN 'IOT과정'
WHEN 3 THEN 'DESIGN 과정'
ELSE 'FULL STACK과정'
END AS 과정명
FROM SUNGJUCK;
-- 2. CASE [대상] 생략
SELECT NAME, BAN, KOR, ENG, MATH,
CASE
WHEN BAN=1 THEN 'MSA과정'
WHEN BAN=2 THEN 'IOT과정'
WHEN BAN=3 THEN 'DESIGN 과정'
ELSE 'FULL STACK과정'
END AS 과정명
FROM SUNGJUCK;