조건 검색
SQL> select [distinct
| all] 컬럼,
컬럼… from 테이블 where 조건 order by 컬럼 [asc/desc], 컬럼 [asc/desc]
예제 1. 다음 각 조건에 맞는 정보를 검색한다.
- 사원 중에 급여가 4000이상인 사원의 명단
- 이름이 '문시현'인 사원의 정보
- 10번 부서 이외 부서 사원의 명단
SQL> select eno 사번,
ename 이름,
sal 급여 from emp where sal >=4000;
SQL> select * from emp where ename = '문시현';
SQL>
select * from emp where dno !='10';
예제 2. 잘못된 조건 검색
SQL>
select * from emp where dno = 10;
예제 3. 연봉이 30,000 이상인 사원의 이름을 검색한다.
SQL> select eno 사번,
ename 이름,
sal*12+nvl(comm,0) 년봉 from emp where sal*12+nvl(comm,0) >=
30000;
예제 4. 보너스가 200 이하인 사원을 검색한다.
SQL> select eno 사번,
ename 이름,
comm 보너스 from emp where comm <= 200;
SQL> select eno 사번,
ename 이름,
comm 보너스 from emp where nvl(comm,0) <=200;
예제 5. 입사일이 1996년 이후인 사원의 정보를 검색한다.
SQL>
alter session set nls_date_format='YY/MM/DD';
SQL>
select * from emp where hdate >= '1996/01/01';
SQL>
alter session set nls_date_format='YYYY/MM/DD';
SQL>
select * from emp where hdate >= '1996/01/01';
널과 비교 연산
- 널은 결정된 값이 아님으로 '=','<'등의 비교 연산자를 사용할 수 없다.
- 널에 대한 직접적인 검색은 다음과 같이 특별한 연산자를 이용한다.
- IS NULL : 널을 검색
- IS NOT NULL : 널이 아닌 값을 검색한다.
예제 6. 보너스 컬럼이 널인 사원을 검색한다.
SQL>
select * from emp where comm is null;
실습
1. 화학과 학생을 검색한다.
select * from student where major ='화학';
# student 테이블의
# major 컬럼중 화학이 들어간
# 모든 정보 출력
2. 평점이 2.0 미만인 학생을 검색한다.
select
* from student where avr < 2.0;
3. 권현 학생의 평점을 검색한다.
select * from student where sname='권현';
4. 정교수의 명단을 검색한다.
select * from professor where orders='정교수';
5. 화학과 소속 교수의 명단을 검색한다.
select * from professor where section ='화학';
6. 송강 교수의 정보를 검색한다.
select * from professor where pname ='송강';
7. 학년별로 화학과 학생의 성적을 검색한다.
select avr from student where major = '화학' order by syear;
8. 2000년 이전에 부임한 교수의 정보를 부임일순으로 검색한다.
select
* from professor where hiredate < '20000101' order by hiredate;
# professor 테이블의
# hiredate 컬럼중 20000101 날짜보다 빠른
# 모든 정보를 출력하고
# hiredate 기준으로 정렬한다.
9. 담당 교수가 없는 과목의 정보를 검색한다.
select
* from course where pno is null;
#pno 컬럼이 널인것을 찾는다.
10. 보너스가 급여의 10% 이상인 사원을 검색한다.
select
* from emp where (sal*0.1) <= comm;



댓글 없음:
댓글 쓰기