db : sql

Oracle/ WHERE절을 이용한 조건 검색

MyaZ 2020. 2. 25. 17:43

WHERE절을 이용한 조건 검색

SELECT 컬럼,컬럼, ...
FROM 테이블
WHERE 조건
ORDER BY 컬럼

 

  • 조건에 사용되는 연산자 
    =(같다), < , > , <= , >= , !=(같지않다)
  • 모든 정보를 컬렉션에 저장하는 것은 낭비
  • ->효율적인 DB 추출의 필요

    SELECT 필요컬럼, ... 
    FROM 테이블 
    WHERE 조건; -조건을 활용하여 필요한 데이터로만 이루어진 컬렉션을 잘 추출하는 것이 중요 
     
    -> DBMS가 필요로 하는 데이터만 제공 -> 처리 속도의 증가

 

--사원중 급여가 3000이상인 사원의 명단
SELECT eno, ename, sal
FROM emp
WHERE sal >=3000;



--이름이 김연아인 사원의 정보
SELECT *
FROM emp
WHERE ename='김연아';



--10번 부서를 제외한 사원의 명단
--//틀린 방법
SELECT dno, eno, ename
FROM emp
WHERE dno!= 10
ORDER BY dno;

DESC emp;
-- dno는 자료형이  VARCHAR2
-- 10(정수자료형)으로 비교하면 dno를 정수자료형으로 자동 변환한다-> 속도가 느려지고 효율성이 떨어짐

--//옳은 방법
SELECT dno, eno, ename
FROM emp
WHERE dno!= '10' --자료형을 일치시켜줘야함
ORDER BY dno;



-- 연봉 30000이상인 사원 검색
SELECT eno, ename, sal*12+NVL(comm,0) 연봉
FROM emp
WHERE sal*12+NVL(comm,0) >=30000 --조건에는 별명이 올 수 없음
ORDER BY 연봉 DESC;



--보너스가 200이하인 사원을 검색
SELECT eno, ename, NVL(comm,0) 보너스
FROM emp
WHERE NVL(comm,0) <= 200;



--입사일이 1996년이후인 사원의 정보를 검색
SELECT * 
FROM emp
WHERE hdate > '1995/12/31'
ORDER BY hdate;



--보너스 칼럼이 null 인 사원을 검색
--IS NULL
--IS NOT NULL
--null값은  =,!=과 사용불가
SELECT *
FROM emp
WHERE comm IS NULL;