Joslynn의 하루

MSA Full-Stack 개발자 양성 과정 -22일차 노트 필기_데이터베이스(Oracle) 연산자, 함수_220822 본문

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;
Comments