2. ORACLE 연산자 정리 :: 비교연산자, 논리연산자, 연결연산자

2024. 5. 14. 17:40·Oracle DataBase
목차
  1. 1. 연산자(transact)
  2. 1) 비교 연산자
  3. 2) 논리 연산자
  4. 3) 연결 연산자 (||)
  5. 2. 연산자 우선순위

1. 연산자(transact)

1) 비교 연산자

  • 자바와 비슷하지만 조금 다름
  • 논리결과 = TRUE, FALSE, NULL 반환
  • 단, 비교하는 두 값은 서로 동일한 데이터 타입이어야 한다.
연산자 설명 비고
=, ><, >= 자바와 동일  
<>, !=, ^= 같지 않다  
BETWEEN 시작값 AND 끝값 특정 범위에 포함되는지 비교  
LIKE / NOT LIKE
컬럼명 LIKE 패턴
문자열 패턴 비교 _ : 아무 문자 1개가 있다는 의미 (___ : 3글자)
% : 아무문자가 0개 이상 있다는 의미
(%강 : 강으로 끝나는 글자 %명% : 명을 포함한 글자)
(_명% : 명을 포함한 최소 2글자)
IS NULL / IS NOT NULL Null 여부 비교 NULL 값을 찾아줌
IN / NOT IN (값1, 값2, …)
해당 값이 포함인지 미포함인지 비교 OR 연결되는 조건을 간단하게 처리가능
나중에 서브쿼리문(다중행)과 동등비교시 사용

 

-- 특정 부서 사원의 전체 데이터 조회하기
SELECT * FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'; --리터럴이니까 ''로 묶어주기

-- 범위조회 연산자 : BETWEEN
SELECT EMP_NAME, SALARY, DEPT_CODE, HIRE_DATE
FROM EMPLOYEE
WHERE HIRE_DATE BETWEEN '00/01/01' AND '02/12/31';

-- 문자열 비교 연산자 : LIKE
-- 사원중 유씨 성을 가진 사원의 이름, 급여, 부서코드 조회
SELECT EMP_NAME, SALARY, DEPT_CODE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '유%';

-- null 값 조회하기 : IS NULL
SELECT EMP_NAME, BONUS
FROM EMPLOYEE
WHERE BONUS IS NULL;
-- WHERE BONUS = NULL 에러는 안나지만 결과가 안나온다

-- 부서가 없는 사원 이름, 부서코드 조회 -> as, nvl, is null 사용
SELECT emp_name, nvl(dept_code, '인턴') as dept_code
FROM EMPLOYEE
WHERE dept_code is null;

날짜 대소비교

문자열로 날짜패턴을 작성해서 비교 진행

-- 날짜 대소비교
SELECT *
FROM EMPLOYEE
WHERE HIRE_DATE > '00/01/01';

--입사일이 00년 1월 1일부터 02년 12월 31일까지인 사원명, 급여, 부서코드, 입사일 조회
SELECT EMP_NAME, SALARY, DEPT_CODE, HIRE_DATE
FROM EMPLOYEE
WHERE HIRE_DATE > '00/01/01' AND HIRE_DATE < '02/12/31';

2) 논리 연산자

and가 우선되니 조심

연산자 설명
AND 여러 조건이 동시에 TRUE여야 TRUE
OR 하나라도 TRUE = TRUE
NOT 조건의 반대값으로 반환(NULL은 제외)

 

AND 연산 결과

  TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL

 

OR 연산 결과

  TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE FALSE FALSE NULL
NULL TRUE NULL NULL

 

-- 논리연산자 우선순위 : 직책이 J7이거나 J2면서 월급 280만원 이상인 사원의 사원명, 직책코드, 급여 조회
SELECT EMP_NAME, JOB_CODE, SALARY
FROM EMPLOYEE
WHERE JOB_CODE IN ('J7', 'J2') AND SALARY >= 2800000;
-- JOB_CODE = 'J7' OR JOB_CODE = 'J2' AND SALARY >= 2800000; 라고 적을 시 and가 우선되어서 다른 결과가 나옴

3) 연결 연산자 (||)

여러 컬럼을 하나의 컬럼처럼 연결하거나 컬럼과 리터럴을 연결함

  • 컬럼 || 컬럼
SELECT EMP_ID || EMP_NAME || SALARY
FROM EMPLOYEE;
  • 컬럼 || 리터럴
SELECT EMP_NAME || '의 월급은' || SALARY || '원 입니다.'
FROM EMPLOYEE;

 

2. 연산자 우선순위

우선순위 연산자
1 산술 연산자
2 연결 연산자(
3 비교 연산자
4 IS NULL / IS NOT NULL
LIKE
IN / NOT IN
5 BETEWEEN AND
6 논리 - NOT
7 논리 - AND
8 논리 - OR
반응형

'Oracle DataBase' 카테고리의 다른 글

6. ORACLE 정리 :: 서브쿼리(SUBQUERY) - 단일행, 다중행, 다중열, 상관, 스칼라  (2) 2024.06.04
5. ORACLE 정리 :: 집합 연산자(UNION)와 JOIN문  (0) 2024.06.03
4. ORACLE 함수(Function) :: 그룹 함수 정리  (0) 2024.05.31
3. ORACLE 함수(Function) :: 단일행 함수 정리  (3) 2024.05.31
1. ORACLE :: DataBase와 SQL Developer 사용하기  (0) 2024.04.29
  1. 1. 연산자(transact)
  2. 1) 비교 연산자
  3. 2) 논리 연산자
  4. 3) 연결 연산자 (||)
  5. 2. 연산자 우선순위
'Oracle DataBase' 카테고리의 다른 글
  • 5. ORACLE 정리 :: 집합 연산자(UNION)와 JOIN문
  • 4. ORACLE 함수(Function) :: 그룹 함수 정리
  • 3. ORACLE 함수(Function) :: 단일행 함수 정리
  • 1. ORACLE :: DataBase와 SQL Developer 사용하기
JinHyung-dev
JinHyung-dev
틈틈이 기록하고 있습니다!!
  • JinHyung-dev
    JinHyung's 블로그
    JinHyung-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (34)
      • JAVA (18)
      • Oracle DataBase (12)
      • 프리코스 (4)
  • 인기 글

  • 반응형
  • 최근 댓글

  • 최근 글

  • 태그

    개발자
    공부
    oracle
    정리
    Java
    자바
    DB
    SQL
    백엔드
    요약
  • hELLO· Designed By정상우.v4.10.0
JinHyung-dev
2. ORACLE 연산자 정리 :: 비교연산자, 논리연산자, 연결연산자

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.