본문 바로가기
프로그래머/SQL(Oracle)

SQL)Oracle_SELECT_WHERE절

by FourthWay 2023. 3. 13.
728x90
반응형

[SQL문의 조건(WHERE절)]

--1) 사원중에 급여가 4000 이상인 사원의 명단

 

SELECT eno, ename, sal
 FROM emp;
 
SELECT eno, ename, sal
 FROM emp
 WHERE sal >= 4000;
 
SELECT eno, ename, sal
 FROM emp
 WHERE sal >= 4000
 ORDER BY sal DESC;

 

--2) 이름이 '김연아'인 사원을 검색하세요 

 

SELECT *
 FROM emp
 WHERE ename='김연아';

 

 

--3) 10번 부서를 제외한 사원의 명단

 

dno는 VARCHAR2(2)인 문자열 자료형이다
아래처럼 dno=10 을 하면 테이블의 모든 행의 dno값을
정수로 형변환이 일어나서 비교하게 된다.
dno='10'은 자료형이 일치하므로 그냥 비교만 하게 된다
기업 환경에서는 수천만/수억건의 테이블이 비일비재하므로
dno=10 처럼 비교하면 결과를 출력되나 속도가 매우 저하될 수 있다
그러므로 동일한 자료형으로 비교해야 한다.

 

SELECT *
 FROM emp
 WHERE dno!=10
 ORDER BY dno;
 
SELECT *
 FROM emp
 WHERE dno!='10'
 ORDER BY dn

 

--10번 부서 사원들의 명단

SELECT *
 FROM emp
 WHERE dno='10';

 

 

--4) 연봉이 30000 이상인 사원의 이름을 검색하세요

 

SELECT eno, ename, sal*12+NVL(comm,0) 연봉
 FROM emp
 WHERE sal*12+NVL(comm,0) >= 30000
 ORDER BY 3 DESC;

 

--5) 보너스가 600 이하인 사원을 검색하세요

 

SELECT eno, ename, comm
 FROM emp
 WHERE comm <= 600;
 
SELECT eno, ename, comm
 FROM emp
 WHERE NVL(comm,0) <= 600;

 

 

--6) 입사일이 1996년 이후인 사원의 정보를 검색하세요

 

SELECT *
 FROM emp
 WHERE hdate > '1995/12/31';
--1995년 12월 31일 00시 00분 00초 이후

 

7) 널값을 검색

 

 IS NULL : 널 값을 검색
 IS NOT NULL : 널이 아닌 값을 검색

 

--  보너스 컬럼이 널 값인 사원을 검색하세요
SELECT *
 FROM emp
 WHERE comm IS NULL;
 
SELECT *
 FROM emp
 WHERE comm IS NOT NULL;

 

 

 

[Example]

 

1) 화학과 학생을 검색하라
SELECT*
FROM student
WHERE major='화학';

2) 평점이 2.0 미만인 학생을 검색하라
SELECT*
FROM student
WHERE avr < 2.0;

3) 관우 학생의 평점을 검색하라
SELECT sname 학생이름, avr 평점
FROM student
WHERE sname='관우';

4) 정교수 명단을 검색하라
SELECT pname 교수명, ORDERS 지위
FROM professor
WHERE ORDERS = '정교수';

5) 화학과 소속 교수의 명단을 검색하라
SELECT pname 교수명, section 학과
FROM professor
WHERE section = '화학';

6) 송강 교수의 정보를 검색하라
SELECT*FROM
professor
WHERE pname = '송강';

7) 학년별로 화학과 학생의 성적을 검색하라
SELECT sname 학생명, syear 학년, major 학과, avr 성적
FROM student
WHERE major = '화학';

8) 2000년 이전에 부임한 교수의 정보를 부임일순으로 검색하라
SELECT*FROM
professor
WHERE HIREDATE <'2000/01/01';
ORDER BY HIREDATE ASC;

9) 담당 교수가 없는 과목의 정보를 검색하라
SELECT*FROM
course
WHERE pno IS NULL;

728x90
반응형