1. LIKE
: 비교하고자 하는 컬럼값이 내가 제시한 특정 패턴에 만족되 경우 조회
[표현법]
비교대상컬럼 LIKE '특정패턴'
- 특정패턴 제시시 '%' , '_' 를 사용할 수 있음 (와일드카드)
>> '%' : 0글자 이상
EX) 비교대상컬럼 LIKE '문자%' => 비교대상의 컬럼값이 해당 문자로 "시작"될 경우 조회
비교대상컬럼 LIKE '%문자' => 비교대상의 컬럼값이 해당 문자로 "끝"날 경우 조회
✔ 비교대상컬럼 LIKE '%문자%' => 비교대상의 컬럼값에 해당 문자가 "포함"되어있을 경우 조회 (키워드검색)
+
>>'_' : 1글자
EX) 비교대상컬럼 LIKE '_문자' => 비교대상의 컬럼값이 어떠한 "한 글자" 뒤에 해당 문자가 올 경우 조회
비교대상컬럼 LIKE '__문자' => 비교대상의 컬럼값이 어떠한 "두 글자" 뒤에 해당 문자가 올 경우 조회
예시1) 이름중에 '하'가 포함되어있는 사원들의 사원명, 주민번호, 전화번호 조회
SELECT EMP_NAME,EMP_NO,PHONE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%하%';
예시2) 이메일 중 '_' 앞글자가 3글자인(이메일의 4번째 자리가 _인) 사원들의 사번, 사원명,이메일 조회
ESCAPE OPTION 사용
SELECT EMP_ID,EMP_NAME,EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE '___$_%'ESCAPE '$';
--> 데이터값을 취급하고자하는 값 앞에 나만의 와일드카드를 제시하고, ESCAPE OPTION으로 나만의 와일드카드로 등록
예시3) 전화번호 처음 3자리가 010이 아닌 사원들의 사원명, 전화번호 조회
SELECT EMP_NAME, PHONE
FROM EMPLOYEE
WHERE PHONE NOT LIKE '010%';
2. IS NULL / IS NOT NULL
컬럼값에 NULL이 있을 경우 NULL값 비교할때 사용되는 연산자
예시1)보너스를 받지 않는 사원(BONUS값이 NULL)들의 사번, 이름, 급여, 보너스 조회
SELECT EMP_ID,EMP_NAME,SALARY,BONUS
FROM EMPLOYEE
WHERE BONUS IS NULL; -- '='으로 비교시 정상조회 안됨
예시2) 부서배치가 아직 안됐고 보너스는 받는 사원들의 이름, 보너스, 부서코드 조회
SELECT EMP_NAME, BONUS,DEPT_CODE
FROM EMPLOYEE
WHERE DEPT_CODE IS NULL AND BONUS IS NOT NULL;
3. IN
비교대상 컬럼의 값이 내가 제시한 목록중에 일치하는 값이 있는지 비교할때 사용
[표현법]
비교대상 컬럼 IN ('값1', '값2', '값3',..)
예시1) 부서코드가 D6이거나 D8이거나 D5인 부서원들의 이름 , 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
--WHERE DEPT_CODE = 'D6' OR DEPT_CODE = 'D8' OR DEPT_CODE = 'D5';
WHERE DEPT_CODE IN ('D6','D8','D5'); --12명 조회
4. 연산자 우선 순위
0. ()
1. 산술연산자
2. 연결연산자 ||
3. 비교연산자
4. IS NULL/ LIKE '특정패턴' / IN
5. BETWEEN AND
6. NOT(논리연산자)
7. AND(논리연산자)
8. OR (논리연산자
예시 )직급코드가 J7 이거나 J2인 사원들 중에 급여가 200만원 이상인 사원들의 모든 컬럼 조회
SELECT *
FROM EMPLOYEE
-- WHERE JOB_CODE = 'J7' OR JOB_CODE = 'J2' AND SALARY >= 2000000 ;
-- OR연산보다 AND연산이 수행되어 정상조회 안됨
WHERE (JOB_CODE = 'J7' OR JOB_CODE = 'J2') AND SALARY >= 2000000;
5. ORDER BY절
SELECT문 가장 마지막줄에 작성 뿐만아니라 실행 순서 또한 마지막에 실행
[표현법]
SELECT 조회할 컬럼, 컬럼, 산술연산식 [AS "별칭"],..
FROM 조회하고자 하는 테이블명
WHERE 조건식
ORDER BY 정렬기준의 컬럼명| 별칭|컬럼순번 [ASC|DESC] [NULLS FIRST | NULLS LAST]
- ASC : 오름차순 정렬 (생략시 기본값)
- DESC : 내림차순 정렬
- NULLS FIRST : 정렬하고자하는 컬럼값에 NULL이 있을경우 NULL값을 앞에 배치 (생략시 DESC일 경우의 기본값)
- NULLS LAST : 정렬하고자하는 컬럼값에 NULL이 있을 경우 NULL값을 뒤에 배치 (생략시 ASC일 경우 기본값)
** 실행(해석) 되는 순서 **
1. FROM 절
2. WHERE 절
3. SELECT 절
4. ORDER BY 절
SELECT *
FROM EMPLOYEE
--ORDER BY BONUS; --> 오름차순이 기본값
--ORDER BY BONUS ASC; -- 오름차순일때 NULLS LAST가 기본값
--ORDER BY BONUS ASC NULLS FIRST;
--ORDER BY BONUS DESC; --> 내림차순일때 NULLS FIRST가 기본값
ORDER BY BONUS DESC, SALARY ASC; -- 여러 조건 제시 가능 (첫번째 기준 컬럼값이 동일할 경우 두번째 기준 컬럼가지고 정렬)
예시) 전사원의 사원명, 연봉 조회 (이때, 연봉별 내림차순정렬)
SELECT EMP_NAME, SALARY*12 "연봉"
FROM EMPLOYEE
--ORDER BY SALARY*12 DESC; --산술연산식 가능
--ORDER BY 연봉 DESC; --별칭사용 가능
ORDER BY 2 DESC; -- 컬럼순번 사용 가능
'ORACLE' 카테고리의 다른 글
ORACLE 02. SELECT(함수) _ 단일행 함수_ 형변환 함수 (0) | 2022.11.16 |
---|---|
ORACLE 02. SELECT(함수) _ 단일행 함수_날짜처리함수 (0) | 2022.11.15 |
ORACLE 02. SELECT(함수) _ 단일행 함수_숫자처리함수 (0) | 2022.11.15 |
ORACLE 02. SELECT(함수) _ 단일행 함수_문자처리함수 (0) | 2022.11.15 |
ORACLE_ 01.SELECT문 (기본문법 1) (0) | 2022.11.14 |