DB-디비는 즐겁다

Oracle Database -SELECT문 WHERE절 및 문법들

광형 2022. 6. 13. 09:22
728x90
728x90
SMALL

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 '%연';

728x90
300x250
LIST