where.sql

성혜·2024년 2월 14일
0

Oracle

목록 보기
4/26
post-thumbnail

WHERE

: 레코드(행)을 검색한다.
: 원하는 레코드만 추출 > 결과셋 생성

[WITH <Sub Query>]
SELECT column_list
FROM table_name
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expression [ASC|DESC]]

이 포스팅에서 살펴볼 Query 3문장

3. SELECT column_list
원하는 컬럼을 지정 > 해당 컬럼만 가져와라.

1. FROM table_name
데이터 소스, 어떤 테이블로부터 테이터를 가져와라.

2. WHERE search_condition
조건 지정 (보고 싶은 행만 가져오기) > Selection

💡FROM 실행 후 WHERE절 실행 마지막 SELECT절


  • 실습 코드 (앞 포스팅에서 말한 샘플 데이터 사용)
select 
    *
from tblCountry
    where capital = '서울';
    
select 
    *
from tblCountry
    where capital <> '서울';


between

: where절에서 사용 > 조건으로 사용
: 컬럼명 between 최솟값 and 최댓값
: 범위 조건
: 가독성 향상
: 최솟값, 최댓값 포함 o


  • 실습 코드
select * from tblinsa where basicpay >=1000000 and basicpay <= 1200000;
select * from tblinsa where basicpay between 1100000 and 1320000; -- 앞쪽이 최소, 뒷쪽이 최대 (<=, >= /basic style)


in

: where절에서 사용 > 조건으로 사용
: 열거형 조건
: 컬럼명 in (값, 값, 값)
: 가독성 향상


  • 실습 코드
--tblInsa. 개발부
select * from tblInsa where buseo = '개발부' or buseo = '총무부' or buseo = '홍보부';
select * from tblInsa where buseo in ('개발부', '총무부', '홍보부');
-- 서울 or 인천 거주 + 과장 or 부장 + 급여(250~300)
select * from tblInsa 
    where city in ('서울', '인천') 
    and jikwi in ('과장', '부장') 
    and basicpay between 2500000 and 3000000;



like

: where절에서 사용 > 조건으로 사용
: 패턴 비교
: 컬럼명 like '패턴 문자열' (정규표현식과 같은 느낌)
: 정규식의 초간단 버전


패턴 문자열의 구성요소
1. _ : 임의의 문자 1개 (정규식 .)
2. % : 임의의 문자 N개, 0~무한대 (정규식 .*) , 최대 표현수 1개 > %% 안씀

출현횟수 조정 불가능


  • 실습 코드
-- 김oo
select name from tblInsa where name like '김__';

-- o길o
select name from tblInsa where name like '_길_';

📌 글자수를 '_' 개수로 맞춰줘야 함!!


-- 김으로 시작하는 사람
select name from tblInsa where name like '김%'; 

-- 수가 포함된 모든 사람
select name from tblInsa where name like '%수%'; 



RDBMS에서의 NULL

: 컬럼값(셀)이 비어있는 상태
: null 상수 제공
: 대부분의 언어에서 null은 연산의 대상이 될 수 없다. (*)


null 조건
: where절에서 사용
: 컬럼명 is null
: 컬럼명 is not null


  • 실습 코드
-- 인구수가 미기재된 나라?
select * from tblCountry where population = null; --에러 없지만 에러 (검사하지 못함)
select * from tblCountry where population is null;

-- 인구수가 기재된 나라
select * from tblCountry where population <> null; --에러 없지만 에러 (검사하지 못함)
select * from tblCountry where not population is null;
select * from tblCountry where population is not null; --자주 사용
profile
하루를 정리하고 기록합니다.

0개의 댓글