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;