SQL 기초 - WHERE절을 이용한 조건검색

MIN.DI·2021년 5월 14일
0

SQL

목록 보기
1/17

1. 조건검색

SELECT [DISTINCT | ALL] 컬럼, 컬럼...

FROM 테이블

WHERE 조건

ORDER BY 컬럼[ASC/DESC], 컬럼[ZSC/DESC]...

조건을 통해 컬럼 내에 데이터를 제한
WHERE 절은 FROM 절 바로 뒤에 기술
조건의 대상은 컬럼, 연산자, 수식 등 가능
조건에 이용되는 비교 연산자 : =, <, >, <=, >=, !=, <>

2. 널과 비교연산

널은 결정된 값이 아니므로 =, < 등의 비교 연산자 사용할 수 없다.
널에 대한 직접적인 검색은 특별한 연산자 사용.

IS NULL : 널 값 검색

IS NOT NULL : 널이 아닌 값 검색


--EXCERCISE1
--사원중에 급여가 4000 이상인 사원의 명단
--이름이 '문시현'인 사원의 정보
--10번 부서 이외 부서 사원의 명단

SELECT ENO 사번, ENAME 이름, SAL 급여
FROM EMP
WHERE SAL >= 4000;

SELECT * FROM EMP WHERE ENAME = '문시현';

SELECT * FROM EMP WHERE DNO != 10;

--EXCERCISE2
--잘못된 조건 검색

SELECT * FROM EMP WHERE DNO = 10;  

DNO의 데이터타입은 문자열이므로 "10" 으로 써야되지만, 자동 형변환되어 실행은 됨.

--EXCERCISE3
--연봉이 30,000 이상인 사원의 이름을 검색

SELECT ENO 사번, ENAME 이름, SAL*1.1*12 + NVL(COMM,0) 연봉 FROM EMP WHERE SAL*1.1*12 + NVL(COMM,0) >= 30000 ORDER BY 연봉;

--EXCERCISE4
--보너스가 200 이하인 사원

SELECT ENO 사번, ENAME 이름, COMM 보너스
FROM EMP WHERE COMM <= 200;     --COMM 이 NULL 값인 데이터는 검색되지 않음

SELECT ENO 사번, ENAME 이름, COMM 보너스
FROM EMP WHERE NVL(COMM, 0) <= 200;     --NULL값을 0으로 취급해서 모두 검색됨

--EXCERCISE5
--입사일이 1996년 이후인 사원 정보 검색

ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD';
SELECT * FROM EMP WHERE HDATE >= '1996/01/01';     --날짜도 대소구분 가능!

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD';   --데이터타입 변경
SELECT * FROM EMP WHERE HDATE >='1996/01/01';

--EXCERCISE6
--보너스 컬럼이 널인 사원 검색

SELECT * FROM EMP WHERE COMM IS NULL;
SELECT COUNT(*) FROM EMP WHERE COMM IS NULL;    --COUNT( ) : 행의 개수 카운팅
profile
내가 보려고 쓰는 블로그

0개의 댓글