SQL의 where

where

where은 내가 보고자 하는 내용에 해당하는 조건을 걸 때 사용한다

조건에 부합하는 레코드만 추출되어 결과에 나오게 할 수 있다.

예시

-- 테이블 생성
CREATE TABLE tblcountry
(
    name VARCHAR2(30) NOT NULL PRIMARY KEY, -- 국가명
    capital VARCHAR2(30) NULL, -- 수도
    population NUMBER NULL, -- 인구수
    continent VARCHAR2(2) NULL, -- 대륙(AS, NA, SA..)
    area NUMBER NULL -- 면적
);

INSERT INTO tblCountry VALUES ('대한민국','서울',4405,'AS',10);
INSERT INTO tblCountry VALUES ('중국','베이징',120660,'AS',959);
INSERT INTO tblCountry VALUES ('일본','도쿄',12461,'AS',37);
INSERT INTO tblCountry VALUES ('미국','워싱턴',24963,'SA',936);
INSERT INTO tblCountry VALUES ('영국','London',5741,'EU',24);
INSERT INTO tblCountry VALUES ('이집트','카이로',5969,'AF',99);
INSERT INTO tblCountry VALUES ('오스트레일리아','Canberra',1787,'AU',768);
INSERT INTO tblCountry VALUES ('칠레','산티아고',1339,'SA',75);
INSERT INTO tblCountry VALUES ('우루과이','몬테비디오',317,'SA',17);
INSERT INTO tblCountry VALUES ('아르헨티나','부에노스아이레스',3388,'SA',278);
INSERT INTO tblCountry VALUES ('인도네시아','자카르타',19134,'AS',191);
INSERT INTO tblCountry VALUES ('네덜란드','암스테르담',1476,'EU',4);
INSERT INTO tblCountry VALUES ('케냐','나이로비',NULL,'AF',58);
INSERT INTO tblCountry VALUES ('벨기에2','브뤼셀',1012,'EU',3);

-- select 문
    select
    *
    from tblCountry
    where capital <> '서울';

출력

이게 원본
출력

조건을 걸었을 때 결과이다.

즉 where문에 capital 에 서울이 들어가지 않는 항목들을 출력하라는 조건이 동작하여 대한민국이 출력이 되지 않았다.

이렇게 문자도 가능하며, 연산 (population / area >= 원하는 값 ) 을 where 절에 넣어 부합하는 데이터만 꺼낼 수 도 있다 .

between

하나의 컬럼에 범위를 지정할 떄 사용한다

--테이블은 앞에 말한 코드와 같음 . 

-- select문
select
    *
    from tblCountry
    where population between 10000 and 20000;

출력

이렇게 부합하는 결과만 출력이 된다 .

in

하나의 컬럼에서 특정 값들만 골라 가져올 때 사용한다.
in (조건,조건); 이런식으로 진행하게 된다 .

예시

--테이블은 앞에 말한 코드와 같음

--select문

select 
*

from tblCountry
where capital in ('서울','도쿄');

출력

이렇게 capital에 서울 또는 도쿄가 들어 있는 값만 추출한다.

like

정규식 표현을 쓸 땐 like를 사용해야 하며 ,
_ 는 문자가 1개 존재한다 , %는 문자가 0개 이상 존재한다라는 의미이다.

예시

--테이블은 앞에 말한 코드와 같음

--select 문 

select
*
from tblCountry
where capital like '%이%';

출력

capital 에 이 라는 글자가 들어가면 출력 되도록 작성하였고 해당하는 결과이다.

null

값이 null로 비어있는 경우를 찾기 위해선 is null
null이 아닌 경우를 찾기 위해선 is not null 을 사용하면 된다

--테이블은 앞과 같습니다.


-- select 문 

select
*
from tblCountry
where population is null;

출력

population에 null 값을 가지는 데이터만 출력이 되었다 .

'SQL(oracle)' 카테고리의 다른 글

SQL의 Order by (정렬)  (2) 2024.03.04
SQL의 Column (컬럼)  (0) 2024.03.04
SQL의 연산자  (2) 2024.02.22
SQL의 table, insert, select  (2) 2024.02.20
SQL 자료형  (0) 2024.02.20