2020. 4. 30.

[Oracle] 6. 관계 연산자와 LIKE 연산자 정리


관계 연산자

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;

5鏖) select * from 위屬, where dno= 20 
ENO 
1002 
3002 
01기) 
ENANE 
김수란 
권0[혀 
김 경 헌 
SEX 
이 
이 
남 
!근望l랑 02이 
분식 1C02 
시원 1C02 
and sal )느 2000; 
HI)AIE 
19니2/C37% 
2001/01729 
1999/%)'05 
4100 
29% 
4000 
C,()bN 1140 
330 20 
20 
2503 20

SQL > select * from emp where dno='20' and sal >= 2000 and job ='모델링';

ENO 
select * from 
ENAME 
ellW where 
SEX JOB 
0201 
and sal 
HDATE 
and job = 
4100 
Cu DNC) 
330 20

예제 2. 다음 문장을 실행하고 결과를 해석해 보자.

SQL> select * from emp where dno = 10 OR sal > 1600 and comm > 600;

SO select , from eng) e 戺 dno - 10 sal ) 168 and comm > 68 
ENO 
SEX 
JW 
HDATE 
- 0 011 
一 110 0 0 0 
1 1 / 〔 P 01 
1 闋 1 / 12701 
02 
1991 / 〔 P701 
020 | 
1993 / 12 3 
0202 
1992 / 5 
0 丨 
1 10 7 
20 | 5 0 21 
a30 | 
2 〔 3 
1999 / 5 
0 丨 旵 合 凵 C}

SQL> select * from emp where (dno = 10 or sal >1600) and comm > 600;

select from 
where (dno 
= 10 or sal 
ENO 
Cu DNC) 
(POP 
0120 
SEX 
01 
1-1 
ocol 
ocol 
0301 
ICOI 
I C02 
HDATE 
1991/02/01 
1'J91/1'P/01 
2015/05/21 
2008/03/13 
1999/09/05 
and 
3900 
3510 
2600 
3200 
2000 01 
980 01 
30 
1900 10 
1000 10 
2500 20

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컬럼에서 김으로 시작하는
# 모든 정보를 출력한다.

5鏖) select * from 위屬, where ename ike 김% 
ENO 
1002 
0309 
30이 
0702 
0120 
ENANE 
김수란 
김신유 
김전 유 
김진성 
김경현 
SEX 
님 
님 
님 
남 
회게 
분석 
회계 
회게 
시원 
02이 
0302 
IC이 
03이 
1001 
1%2 
HI)AIE 
19니2/C3703 
2이1/01703 
19%/10717 
2이7/[)l,'다니 
20%/%/13 
19니9/%705 
4100 
3200 
110[) 
3200 
C다4| 1140 
330 20 
90 02 
131岧 
2500 20 
6 행이 선택되있습니다.

SQL> select * from emp where ename like '%하늘';

SO select * from 
ENO 
ENAME 
eng) where ename I ike . 
SEX JOB HDATE 
lg91/12/01 
3510 
Cu DNC) 
980 01

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 = '물리';

SNO 
니15301 
9%301 
9%302 
915303 
215304 
915305 
9253% 
935303 
9453(V? 
니45303 
」凸314 
935304 
925309 
3945이 
214502 
9245이 
翌4502 
924505 
9245% 
225302 
9253이 
925305 
944511 
9445% 
244512 
9353이 
%45이 
%4502 
114513 
034504 
9445이 
914503 
914504 
33 행이 
鏖) select * from student where major = 이학 
01 
01 
SYFAR 卜|격.l(버 
4 화학 
4 화학 
1 화학 
1 화학 
4 물리 
3 물리 
3 화학 
3 화학 
3 화학 
1 물리 
2 물리 
1 물리 
0 [ 께a』 0 r 
2喇 
58 
4 
23岧 
물리 
514AA鬱 
성 동상 
유대시 
심 국상 
정국주 
권 보수 
최정희 
김시l니씌 
김완장 
남궁-경아 
이철-윤 
최-홍승 
오 우제 
장봉철 
문수보 
권석 목 
서찬호 
박-경 들 
이지영 
김한 
황이-청 
김형진 
드 요 
시동조 
이준해 
김아진 
남궁길 
최모각 
갑시진 
최현각 
김대춘! 
심 경 
되 어 스

 2. 화학과가 아닌 학생 중에 1학년 학생을 검색한다.

select * from student where major != '화학';

5鏖) select * from student 
Where ! 
SYFAR 卜|격.l(버 
SNO 
923%3 
923904 
9339이 
948203 
」恥204 
933%2 
933903 
9139이 
913니(V? 
니13!]03 
933니04 
引5604 
915605 
92%이 
243!]이 
943%2 
943903 
943905 
3945이 
214502 
9245이 
928204 
9382이 
니24502 
224505 
924503 
944511 
94閼03 
니44512 
2156이 
915602 
의다「,「爾3 
925602 
니256()2 
다25604 
514AA鬱 
성는&h;冒 
한이식 
김용서 
황보우리 
김현수 
심승동 
함수현 
황진혜 
접 도정 
임명현 
심성이 
강은혜 
권운각 
최해원 
하청사 
유시다 
유대시 
장봉철 
문수보 
권석 목 
상동준 
하해 모 
은정헌 
시한호 
박경동 
김형진 
과 드 요 
시-동조 
강대용 
임수영 
심-표정 
강아영 
최지헌 
김가원 
01 
01 
01 
01 
01 
3 생물 
3 생물 
2 생들 
1 식염 
식염 
2 생물 
2 생물 
4 생불 
4 생불 
4 생물 
2 생물 
4 유공 
O 고 
생물 
생물 
생물 
4 물리 
3 물리 
3 식임 
물리 
3 물리 
3 물리 
국리 
O 고 
4 유공 
유공 
O 고 
O 고 
O 고 
화학•: 
2-48 
12罾 
4 
11력

 3. 화학과 3학년 학생을 검색한다.

select * from student where major = '화학' and syear = 3;

select from 
SYEAH MAJOR 
student 
04 
04 
01 
where major 
SNO 
915305 
925302 
925301 
925305 
SUME 
and syear 3 
AVR 
58 
.68 
3.58 
2.98

 4. 평점이 2.0에서 3.0 사이인 학생을 검색한다.

select * from student where avr >= 2.0 and 3.0 > = avr;

SCI_> select * f「0111 student where avr 〉= 2.0 and 3.0 ) = avr. 
SVEDB bWJOR 
뿌4특6681 
다•10 
923904 
915304 
948203 
니253% 
933%2 
933903 
945303 
945314 
니13!]이 
915605 
9256이 
9439이 
935304 
22530!] 
니43의05 
928204 
9382이 
924502 
224505 
925305 
944511 
915502 
225604 
9356이 
935604 
9十15이 
니45602 
918202 
%45()3 
니1B204 
니13904 
한어식 
권 보수 
황보우리 
김재백 
김현수 
심승동 
남-국경이 
이철윤 
황수현 
강은혜 
권문각 
최해원 
최홀습 
오우지| 
유대시 
상-동수 
하해 모 
은정헌 
시한호 
황현정 
김형진 
임수영 
접 용접 
김가원 
독고련이 
권식혀 
김아진 
차정혜 
김복길 
최 모각 
신 송광 
이호한 
01 
01 
01 
01 
01 
01 
3 생물 
4 화학 
1 식염 
2 화학 
2 생물 
2 생물 
화학 
1 화학 
4 생물 
유공 
3 유공 
생불 
2 화학 
화학 
생물 
3 식임 
2 식임 
물리 
3 물리 
O 고 
O 고 
O 고 
2 유공 
유공 
불리 
O 고 
유공 
4 식임 
불리 
4 식염 
4 생물 
2-48 
2.9

 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;

select * from course 
1214 
1216 
1218 
2369 
where cnavne 
STA]/ PNO 
p 1001 
2 1006 
2 1008 
ike 
and st nulli

 7. 화학과 정교수를 검색한다.

select * from professor where section ='화학' and orders ='정교수';

select frolJ1 
PNC) 
professor 
SECT ION 
where 
section - 
(FCERS 
and orders — 
HI REOATE

 8. 화학과 학생중에 성이 권씨인 학생을 검색한다.

select * from student where major = '화학' and sname like '%';

select frolJ1 
student 
where major = 
MAJOR 
SNO 
915304 
stow 
and snare 
AVR 
2.32

 9. 부임일이 1995 이전인 정교수를 검색한다.

select * from professor where hiredate < '19950101';

* f 「0111 eSSOr 
가|0 
1004 
100」 
1022 
l다32 
1다36 
1%5 
PNAME 
시진영 
이준영 
이준 
이유당 
성현수 
김시령 
장관용 
SECT 
화학 
물리 
생물 
식염 
식염 
hiredate 
(HHS 
부교수 
정 11! 수 
부교수 
정교수 
19950101 
HIREDATE 
1991/02/01 
1991/10/04 
1989/05/115 
19%/11/01 
1992/07/13 
1991/10/119 
1985/07 /28 
7 행이 선택되있습니다.

 10. 성과 이름이 각각 한글자인 교수를 검색한다.

select * from professor where pname like '__';

select from 
professor 
SECT ION 
where 
pname like 
UNCERS 
1001 
HI REDATE 
2002/08/12 
1989/05/05

댓글 없음:

댓글 쓰기