뇨내

[Oracle - SQL Developer] where 본문

Oracle/Select + Operator + Where

[Oracle - SQL Developer] where

삐옥 2021. 11. 13. 15:26

 

 

 

 

 

 

 


 

 

 

 

WHERE

WHERE절
- 가져올 레코드를 지정할 조건을 명시한다.
- 주로 조건은 비교 연산자나 논리 연산자를 사용한다.

 

SELECT 컬럼리스트
FROM 테이블
WHERE 조건;

[실행순서]
1. FROM 테이블
2. WHERE 조건
3. SELECT 컬럼리스트

 

1. SELECT 컬럼리스트
- 가져올 컬럼을 지정한다.
- 컬럼값, 컬럼값을 대상으로 연산
-프로젝션 연산

 

2. FROM 테이블
- 데이터 소스를 지정한다.
- 테이블을 선택
       

3. WHERE 조건

- 가져올 레코드를 지정한다.
- 제시한 조건을 만족하는 레코드만 결과셋으로 반환
- 셀렉션 연산

*SQL 문장 = Query(쿼리) = 시퀄

 

1
2
3
4
select * from tblCountry; --FullSet
select name, area from tblCountry; --Projection > FullSet 부분집합
select * from tblCountry where continent = 'AS'--Selection > FullSet 부분집합
select name from tblCountry where continuent = 'AS'--Selection + Projection > FullSet 부분집합
cs
 

 

 

 

BETWEEN A AND B

 

 

- where절에서 사용 > 조건으로 사용
- 범위 조건 사용
- 컬럼명 between 최솟값 and 최댓값
- 연산자 사용보다 가독성 향상(BUT 성능 느림)
- 최솟값, 최댓값 포함 = inclusive

 

 

 

IN

 

in
- where절에서 사용 > 조건으로 사용
- 열거형 조건 > 제시된 값 중 하나라도 만족
- 컬럼명 in (값, 값, 값, ...)

 

 

 

 

LIKE

 

- where절에서 사용 > 조건으로 사용
- 패턴 비교 > 정규 표현식의 동작과 유사
- 컬럼명 like '패턴 문자열'
- 문자형에만 사용 가능(숫자, 날짜 적용 불가능)


-------------------------
패턴 문자열 구성 요소
1. _ : 임의의 문자 1개
2. % : 임의의 문자 N개 (0~무한대)

 

 

 

 

NULL

 

RDBMS에서의 null
- 자바의 null과 유사
- 컬럼값(셀)이 비어있는 상태
- null 상수 제공
- 대다수의 언어에서 null은 연산의 대상이 될 수 없다.

null 조건
- where절 사용
- 컬럼명 is null (null 이 아닐 경우 = is no null)

 

 

 


 

 

 

 

문 제 1

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
-- 직원
select * from tblInsa;
 
-- 직원의 이름, 부서, 급여만 가져오시오.
select name, buseo, basicpay from tblInsa;
 
-- 영업부(buseo) 직원을 가져오시오.
select * from tblInsa where buseo = '영업부';
 
-- 영업부(buseo) 직원의 이름, 부서, 급여만 가져오시오.
select name, buseo, basicpay from tblInsa where buseo = '영업부';
 
-- 영업부 + 서울
select * from tblInsa where buseo = '영업부' and city = '서울';
 
-- 영업부 + 서울 + (사원 or 대리) 조건 3개
select * from tblInsa where buseo = '영업부' and city = '서울' and jikwi = '사원' or jikwi = '대리';      -- 조건 4개, 착각하지 말 것!
select * from tblInsa where buseo = '영업부' and city = '서울' and (jikwi = '사원' or jikwi = '대리'); -- 조건 3개
 
-- 급여가 180만원 이상
select * from tblInsa where basicpay >= 1800000;
 
-- 급여가 180만원 이상 200만원 이하
select * from tblInsa where basicpay >= 1800000 and basicpay <=2000000;
 
-- '대한미디어' 출판사에서 출간한 도서만 가져오시오.
select * from book where publisher = '대한미디어';
cs

 

 

 

 

문 제 2

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
select * from tblComedian;
-- 1. 몸무게가 50kg 이상이고, 키가 160cm미만인 사람만 가져오시오.
select * from tblComedian where weight >= 50 and height < 160;
 
select last || first as name, gender, height, weight, nick 
    from tblComedian 
        where weight >= 50 and height < 160-- 이름 합친 쿼리(별칭 추가) + 절마다 엔터(가독성)
 
-- 2. 여자만 가져오시오.
select last || first as name, gender, height, weight, nick
    from tblComedian where gender = 'f';
 
 
-- tblInsa
-- 3. 부서가 '영업부'이고 급여를 250만원 이상 받는 직원을 가져오시오.
select * from tblInsa where buseo = '영업부' and basicpay >= 2500000;
 
-- 4. 급여(basicpay) + 수당(sudang) 한  금액이 500만원 이상 받는 직원을 가져오시오.
select name, basicpay, sudang, (basicpay + sudang) from tblInsa
     where basicpay + sudang >= 5000000;
cs

 

 

 

 


 

Comments