Oracle Database -SELECT문 WHERE절 및 문법들
https://kwanghyung.tistory.com/entry/Oracle-SELECT%EB%AC%B8
Oracle SELECT문
데이터를 조회하거나 검색 할 때 사용하는 명령어 -RESULT SET : SELECT 구문을 통해 조회된 데이터의 결과물을 의미한다. 조회된 행들의 집합 [표현법]..
kwanghyung.tistory.com
<WHERE>
조회하고자 하는 테이블에 특정 조건을 제시해서
그 조건에 만족하는 데이터들만을 조회하고자 할때 기술하는 구문
[표현법]
SELECT 조회하고자하는컬럼명,...
FROM 조회하고자하는테이블명
WHERE 조건식;
실행순서
FROM -> WHERE -> SELECT
-조건식에 다양한 연산자 사용가능
<비교연산자>
>,<,<=,>=
= (일치하는가? 자바에선 ==)
!= 일치하지않는가(^=, <>) 세개 다 가능
1)EMPLOYEE 테이블로부터 급여가 400만원 이상인 사원들만 조회(모든 컬럼에 대해서)
SELECT *
FROM EMPLOYEE
WHERE SALARY>=4000000;
2)EMPLOYEE 테이블로부터 부서코드가 D9인 사원들의 사원명, 부서코드, 급여를 조회해보세요.
SELECT EMP_NAME,DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE= 'D9';
3)EMPLOYEE 테이블로부터 부서코드가 D9가 아닌 사원들의 사원명, 부서코드, 급여를 조회해보세요 (3가지 다써보기)
SELECT EMP_NAME,DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE ^='D9';
SELECT EMP_NAME,JOB_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE <>'D9';
SELECT EMP_NAME,JOB_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE !='D9';
<논리연산자>
여러개의 조건을 엮을때 사용
AND(자바: &&), OR(자바 :||)
AND : 그리고, ~이면서
OR : 또는 , ~이거나
1)EMPLOYEE 테이블에서 부서코드가 D9이면서 급여가 500만원 이상인 사원들의 이름, 부서코드 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE ='D9'AND SALARY >= 5000000;
2)부서코드가 D6이거나 급여가 300만원 이상인 사원들의 이름, 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D6' OR SALARY >=3000000;
<BETWEEN AND>
몇 이상 몇 이하인 범위에 대한 조건을 제시할 때 사용
[표현법]
비교대상 컬럼명 BETWEEN 낮은값 AND 높은값
1)급여가 350만원 이상이고 600만원 이하인 사원들의 이름, 사번, 급여, 직급코드 조회
SELECT EMP_NAME, EMP_ID, SALARY, JOB_CODE
FROM EMPLOYEE
WHERE SALARY BETWEEN 3500000 AND 6000000;
2)급여가 350만원 미만이고 600만원 초과인 사원들의 이름, 사번, 급여, 직급코드 조회하기
SELECT EMP_NAME, EMP_ID, SALARY, JOB_CODE
FROM EMPLOYEE
WHERE SALARY NOT BETWEEN 3500000 AND 6000000;
BETWEEN AND 연산자는 DATE 형식 범위에도 적용가능
입시일이 '90/01/01' ~ '03/01/01' 인 사원의 모든 컬럼을 조회하기
SELECT *
FROM EMPLOYEE
WHERE HIRE_DATE BETWEEN '90/01/01' AND '03/01/01';
<LIKE '특정패턴'>
비교하고자 하는 컬럼값이 내가 지정한 특정 패턴에 만족될 경우 조회
[표현법]
비교대상컬럼명 LIKE '특정패턴'
-'%'과 '_'를 가지고 제시
'%' : 0글자 이상
비교대상컬럼명 LIKE '문자%' -> 컬럼값중에 '문자'로 시작하는 것을 조회
비교대상컬럼명 LIKE '%문자' -> 컬럼값중에 '문자'로 끝나는 것을 조회
비교대상컬럼명 LIKE '%문자%' -> 컬럼값중에 '문자'가 포함되는 것을 조회
'_' : 1글자
비교대상컬럼명 LIKE '_문자' -> 해당 컬럼값 중에 '문자' 앞에 무조건 1글자가 존재하는 경우 조회
비교대상컬럼명 LIKE '__문자' -> 해당 컬럼값 중에 '문자' 앞에 무조건 2글자가 존재하는 경우 조회
성이 전씨인 사원들의 이름, 급여, 입사일을 조회
SELECT EMP_NAME, SALARY, HIRE_DATE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '전%';
이름중에 '하'가 포함된 사원들의 이름, 주민번호, 부서코드 조회해보세요
SELECT EMP_NAME,EMP_NO, JOB_CODE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%하%';
전화번호 4번째 자리가 9로 시작하는 사원들의 사번, 사원명, 전화번호, 이메일 조회해보세요
SELECT EMP_ID, PHONE, EMAIL
FROM EMPLOYEE
WHERE PHONE LIKE '___9%';
이름 가운데글자가 '지'인 사원들의 모든 컬럼을 조회해보세요
SELECT *
FROM EMPLOYEE
WHERE EMP_NAME LIKE '_지_';
이름중에 '하'가 포함된 사원들의 이름, 주민번호, 부서코드 조회해보세요
SELECT EMP_NAME, EMP_NO, DEPT_CODE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%하%';
이름이 '연'으로 끝나는 사원들의 이름, 입사일 조회
SELECT EMP_NAME, HIRE_DATE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%연';