-
Oracle - 연결 연산자 / 논리 연산자 / 비교 연산자데이터베이스/Oracle 2020. 11. 6. 17:46728x90반응형
연결 연산자
연결 연산자란 ‘||’ (키보드 shift + 달러표시)를 사용하여 여러 컬럼을
하나의 컬럼인 것처럼 연결하거나 컬럼과 리터럴을 연결한다.
연결 연산자를 사용해야할 방법이 2가지가있다.
1. 컬럼과 컬럼을 연결한 경우
- 컬럼명1과 컬럼명2 사이에 || 를 입력한다.
2. 컬럼과 리터럴을 연결한 경우
- 컬럼명과 리터럴 사이에 || 를 입력한다.
[ 연결연산자 예시 ]
컬럼과 컬럼을 연결한 경우
SELECT EMP_ID || EMP_NAME || SALARY FROM EMPLOYEE;
컬럼과 리터럴을 연결한 경우
SELECT EMP_NAME || '의 월급은 ' || SALARY || '원 입니다.' FROM EMPLOYEE;
논리 연산자
논리연산자란 여러 개의 제한 조건 결과를 하나의 논리 결과로 만들어준다.
3가지의 논리연산자
1. AND
2. OR
3. NOT
[ AND 연산 결과 ]
위와 사진같이 동시에 TRUE일 경우에만 TRUE값을 반환한다.
[ OR 연산 결과 ]
위와 사진같이 어느 하나의 값이 TRUE일 때 TRUE값을 반환한다.
비교 연산자
비교 연산자란 표현식 사이의 관계를 비교하기 위해 사용한다.
비교 결과는 논리 결과(TRUE/FALSE/NULL) 중 하나가 된다.
단 비교하는 두 컬럼 값/표현식은 서로 동일한 데이터 타입이어야 한다.
[ 주요 비교연산자 ]
[ 비교연산자 예시 ]
BETWEEN AND를 사용하는 예시
급여를 3500000보다 많이 받고 6000000보다 적게 받는 직원 이름과 급여 조회
SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE SALARY >= 3500000 AND SALARY <= 6000000;
LIKE를 사용하는 예시
비교하려는 값이 지정한 특정 패턴을 만족하면 TRUE를 리턴하는 연산자이다.
‘%’와 ‘_’를 와일드카드로 사용한다.
‘전‘씨 성을 가진 직원 이름과 급여 조회
SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE EMP_NAME LIKE ‘전%’;
NOT LIKE를 사용하는 예시
LIKE에 부정을 의미하는 NOT이 들어가 비교하려는 값이
지정한 특정 패턴을 만족하면 TRUE를 리턴하는 연산자이다.
'이'씨 성이 아닌 직원 사번, 이름, 이메일 조회
SELECT EMP_ID, EMP_NAME, EMAIL FROM EMPLOYEE WHERE EMP_NAME NOT LIKE '이%';
또는
SELECT EMP_ID, EMP_NAME, EMAIL FROM EMPLOYEE WHERE NOT EMP_NAME LIKE '이%';
IS NULL을 사용하는 예시
NULL이 존재하는지 확인하는 비교 연산자이다.
- 관리자도 없고 부서 배치도 받지 않은 직원 조회
SELECT EMP_NAME, MANAGER_ID, DEPT_CODE FROM EMPLOYEE WHERE MANAGER_ID IS NULL AND DEPT_CODE IS NULL;
IS NOT NULL을 사용하는 예시
NULL이 존재하지 않는지 확인하는 비교 연산자이다.
- 부서 배치를 받지 않았지만 보너스를 지급받는 직원 조회
SELECT EMP_NAME, BONUS, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE IS NULL AND BONUS IS NOT NULL;
IN을 사용하는 예시
비교하려는 값 목록에 일치하는 값이 있으면 TRUE를 반환하는 연산자이다.
- D6 부서와 D8 부서원들의 이름, 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE IN ('D6', 'D8');
연산자 우선순위
연산자들의 우선순위는 이러하다.
728x90반응형'데이터베이스 > Oracle' 카테고리의 다른 글
Oracle 함수(Function) - 형 변환 함수 (0) 2020.11.11 Oracle 함수(Function) - 날짜 처리 함수 (0) 2020.11.10 Oracle 함수(Function) - 숫자 처리 함수 (0) 2020.11.10 Oracle 함수(Function) - 문자 처리 함수 (0) 2020.11.09 DQL (SELECT) (0) 2020.11.06