개발/SQL

[SQL] Oracle - LIKE / IS NULL / IN / 연결연산자

하더 2022. 9. 27. 18:50

< LIKE >

 

- 비교하려는 컬럼값이 내가 지정한 특정 패턴에 만족될 경우 조회

- 특정 패턴에 와일드카드(특정 기능을 가진 문자) '%', '_'를 제시할 수 있음

% (퍼센트) _ (언더바)
0글자 이상 1글자 (특정 자리수 지정)
비교대상컬럼명 LIKE '문자%'
=> 컬럼값 중 '문자'로 시작되는 값 조회

비교대상컬럼명 LIKE '%문자'
=> 컬럼값 중 '문자'로 끝나는 값 조회

비교대상컬럼명 LIKE '%문자%'
=> 컬럼값 중 '문자'가 포함되는 값 조회
비교대상컬럼명 LIKE '_문자'
=> 컬럼값 중 '문자'앞에 무조건 1글자가 있는 값 조회

비교대상컬럼명 LIKE '__문자'
=> 컬럼값 중 '문자'앞에 무조건 2글자가 있는 값 조회

 

< IS NULL >

 

[ 표현법 ]

비교대상컬럼 IS NULL : 컬럼값이 NULL일 경우

비교대상컬럼 IS NOT NULL : 컬럼값이 NULL이 아닌 경우

-- 사수가 없고, 부서배치도 받지 않은 사원들의 모든 컬럼 조회
SELECT *
FROM EMPLOYEE
WHERE MANAGER_ID IS NULL AND DEPT_CODE IS NULL;

 

< IN >

 

- 비교대상 컬럼값에  내가 제시한 목록들 중 일치하는 값이 있으면 조회

 

[ 표현법 ]

비교대상컬럼 IN (값, 값, 값 .. )

 

-- 부서코드가 D6이거나 또는 D8이거나 또는 D5거나 또는 D2인 사원들의 이름, 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE IN ('D2', 'D5', 'D6', 'D8');
-- WHERE DEPT_CODE = 'D6' OR DEPT_CODE = 'D5' OR DEPT_CODE = 'D8' OR DEPT_CODE = 'D2';

 

 

< 연결연산자 ( || ) >

 

- 여러 컬럼값들을 마치 하나의 컬럼인 것 처럼 연결시켜주는 연산자

- 컬럼과 리터럴을 연결할 수 있음

cf) 자바의 + ( System.out.println("num : " + num); )

 

-- 사원번호와 이름, 연봉을 연결하여 표현
SELECT EMP_ID || EMP_NAME || SALARY "연결"
FROM EMPLOYEE;