■ Data Skill ■/PL-SQL

PL/SQL (4) - 연산자

한길(One Way) 2023. 3. 17.

연산자 종류

 

- 대입 연산자

변수 :=

 

- 산술 연산자

** : 지수연산자. 10**5 = 10*10*10*10*10

+ - * / : 산술계산

 

- 비교 연산자 : 반환값은 True / False.

= : 대등 연산자

<>, !=, ~= : 부등 연산자

<, >, <=, >= : 범위 비교

LIKE : 패턴일치 연산자 (log% : log로 시작하는 모든 것. log___ : log로 시작하고 log 뒤에가 3자리인 것)

BETWEEN a AND b : 지정한 범위(a~b) 사이

IN : 값이 목록내에 있는지

IS NULL : 값이 null인지 조사

 

 

[예제1] LIKE 연산자를 사용한 함수 - 함수이기 때문에 RETURN 값을 지정하여야 한다.

*************************************************************************************************CREATE OR REPLACE FUNCTION mobile_phone (phone_number IN VARCHAR2)

RETURN VARCHAR2 AS

BEGIN

IF phone_number LIKE '___-%-____' THEN

IF SUBSTR(phone_number,1,3) = '011' THEN

RETURN 'SK Telecom 011';

ELSE IF SUBSTR(phone_number,1,3) = '016' THEN

RETURN 'KTF 016';

ELSE

RETURN 'ETC...';

END IF;

END IF;

END IF;

END;

/

*************************************************************************************************

SQL> set serveroutput on

SQL> select * from dba_objects where object_name like 'MOBILE%'; ☞ VALID 상태 확인

 

 

SQL> select mobile_phone('016-0000-0000') MAKER from dual;

 

MAKER

--------------------------------------------------------------------------------

KTF 016

 

- 논리 연산자

AND, OR, NOT

 

- 스트링 연산자

|| : 스트링 연결 연산자. ex) myname = 'Kang' || ' ' || 'Yong Woon';

 

 

연산자 우선순위

- 눈으로 확인하기 어려운 복잡한 식의 경우 괄호를 사용하여 우선순위를 제어하거나 보기 쉽게 한다.

 

① **, NOT

② +,- (양수,음수)

③ *,/

④ +,-,||

⑤ =, <>, !=, ~=, <, >, <=, >=, LIKE, BETWEEN, IN, IS NULL

⑥ AND

⑦ OR

 

 

NULL

- NULL 값 조사시엔 항상 IS NULL 연산자를 사용해야 한다. ex) IF a = NULL ▶ IF a IS NULL

- NVL 함수를 통해 값이 NULL 일때 기본값을 지정할 수 있다. NVL(식, Null 일때 값)

 

 

형 변환

- 자동으로 형변환이 이루어지거나, 직접 형변환을 지정할 수 있다.

- 자동으로 형변환이 이루어지게 하는 것보다는 명시적으로 변환시키는 것이 좋다.

- 관련 함수

TO_DATE : 문자 → 날짜

TO_NUMBER : 문자 → 숫자

TO_CHAR : 숫자,날짜 → 문자

728x90

'■ Data Skill ■ > PL-SQL' 카테고리의 다른 글

PL/SQL (6) - 패키지 사용의 예  (0) 2023.03.17
PL/SQL (5) - 함수 (Function)  (0) 2023.03.17
PL/SQL (3) - 블럭 구조  (0) 2023.03.17
PL/SQL (2) - 데이터형  (0) 2023.03.17
PL/SQL (1) - 개념과 예제  (1) 2023.03.17

댓글