관계 연산자
SQL> select [distinct | all] 컬럼, 컬럼 … from 테이블 where 조건 [관계연산자 조건…] order
by 컬럼 [asc/desc],
컬럼 [asc/desc]….
예제 1. 다음 각 조건에 맞는 데이터를 검색한다.
- 20번 부서 사원 중에 급여가 2000 이상인 사원을 검색
- 20번 부서 사원 중 2000 이상이고 모델링 업무를 담당하는 사원을 검색한다.
SQL>
select * from emp where dno='20' and sal >= 2000;
SQL > select * from emp where dno='20' and sal >= 2000 and
job ='모델링';
예제 2. 다음 두 문장을 실행하고 결과를 해석해 보자.
SQL>
select * from emp where dno = 10 OR sal > 1600 and comm > 600;
SQL>
select * from emp where (dno = 10 or sal >1600) and comm > 600;
like 연산자
SQL> select [distinct | all] 컬럼, 컬럼…. from 테이블 where 컬럼 like '비교 문자열' order by 컬럼 [asc/desc], 컬럼 [asc/desc]……l
|
예
|
설명
|
검색 대상
|
|
'경%'
|
'경'으로 시작하는 모든 문자열
|
경, 경제, 경범죄, 경영학과….
|
|
'%과'
|
'과'로 끝나는 모든 문자열
|
과, 다과, 화학과, 물리학과….
|
|
'%김%'
|
'김'이란 글자가 들어간 모든 문자열
|
김, 김씨, 돌김, 되새김질….
|
|
'화_'
|
'화'로 시작하는 두글자 단어
|
화학, 화약, 화상….
|
|
'__화'
|
'화'로 끝나는 세 글자 단어
|
무궁화, 해당화, 운동화….
|
|
'_동_'
|
'동'이 가운데 들어간 세글자 단어
|
원동기,
전동차…
|
|
'%이#%%'
|
escape '#'으로 지정할 경우. '이%'가 포함된 문자열
|
|
|
'_#%_'
|
escape '#'으로 지정할 경우, '%'가 포함된 세글자 단어
|
|
예제 3. 다음 조건에 맞는 사원을 검색한다.
- 김씨 성을 가진 사원
- 이름이 '하늘'인 사원
- 성과 이름이 각각 한글자인 사원을 검색한다.
SQL> select * from emp where ename like '김%';
# emp 테이블에서
# ename컬럼에서 김으로 시작하는
# 모든 정보를 출력한다.
SQL> select * from emp where ename like '%하늘';
SQL>
select * from emp where ename like '__';
레코드 없음 이름이 두글자인 사람 검색하는 조건
예제 4. 이름에 '%' 문자가 포함된 사원을 검색한다.
SQL>
select eno, ename from emp where ename like '%#%%' escape '#';
레코드 안나옴 emp 테이블안에 eno, ename 을 출력하는데 ename 이 %#%% 의 #을 빼고 %을 포함한 텍스트를 찾겟다는것임.
%다음에 %이 나오면 %을 포함한 텍스트로 처리
실습
1. 화학과와 물리학과 학생을 검색한다.
select * from student where major = '화학' or major = '물리';
2. 화학과가 아닌 학생 중에 1학년 학생을 검색한다.
select * from student where major != '화학';
3. 화학과 3학년 학생을 검색한다.
select * from student where major = '화학' and syear = 3;
4. 평점이 2.0에서 3.0 사이인 학생을 검색한다.
select
* from student where avr >= 2.0 and 3.0 > = avr;
5. 교수가 지정되지 않은 과목 중에 학점이 3학점인 과목을 검색한다.
select
* from course where st_num =3 and pno is null;
결과 안나옴
6. 화학 관련된 과목 중 평점이 2학점 이하인 과목을 검색한다.
(화학 관련 과목은 과목명에 화학이 들어간 과목을 의미한다.)
select * from course where cname like '%화학%' and st_num <=2;
7. 화학과 정교수를 검색한다.
select * from professor where section ='화학' and orders ='정교수';
8. 화학과 학생중에 성이 권씨인 학생을 검색한다.
select * from student where major = '화학' and sname like '권%';
9. 부임일이 1995년 이전인 정교수를 검색한다.
select
* from professor where hiredate < '19950101';
10. 성과 이름이 각각 한글자인 교수를 검색한다.
select
* from professor where pname like '__';
댓글 없음:
댓글 쓰기