[SQLD] WHERE 절 - 연산자 정리

헤븐리뷰·2023년 3월 5일
0

SQLD

목록 보기
7/7
post-thumbnail

WHERE 절

WHERE 절: DML 문을 수행할 때 원하는 데이터를 조건으로 골라 수행할 수 있도록 해주는 구문

INSERT를 제외한 SELECT, UPDATE, DELETE에서 WHERE 사용 가능


1. 비교 연산자

연산자의미예시
==같음where col = 10
<작음where col < 10
<=작거나 같음where col <= 10
>where col > 10
>=크거나 같음where col >= 10
코드테이블

2. 부정 비교 연산자

연산자의미예시
!=같지 않음where col != 10
^=같지 않음where col ^= 10
<>같지 않음where col <> 10
not 컬럼명 =같지 않음where not col = 10
not 컬럼명 >크지 않음where not col > 10
코드테이블

3. SQL 연산자

연산자의미예시
BETWEEN A AND BA와 B사이 (A, B 포함)where col between 1 and 10
LIKE '비교 문자열'비교 문자열을 포함where col like '방탄%'
where col like '%소년단'
where col like '%탄소년%'
where col like '방_소%'
IN (LIST)LIST 중 하나와 일치where col in(1, 3, 5)
IS NULLNULL 값where col is null
코드테이블

4. 부정 SQL 연산자

연산자의미예시
NOT BETWEEN A AND BA와 B사이가 아님 (A, B 미포함)where col not between 1 and 10
NOT IN (LIST)LIST 중 일치하는 것이 없음where col not in(1, 3, 5)
IS NOT NULLNULL 값이 아님where col is not null
코드테이블

5. 논리 연산자

연산자의미예시
AND모든 조건이 TRUE여야 함where col>1 and col<10
OR하나 이상의 조건이 TRUE여야 함where col =1 or col = 10
NOTTRUE면 FALSE고 FALSE면 TRUEwhere not col >10
코드테이블


전체 코드
  
-- WHERE 절
create table member(
    member_no number(10),
    first_name varchar2(20),
    last_name varchar2(20),
    city varchar2(15),
    title varchar2(30),
    company varchar2(30)
);
create table play_list(
    play_id number (5),
    name varchar2 (30),
    favorites varchar (5)
);

insert into member values(1, 'Luis', 'Goncla', 'Paris', 'Sales Support Agent', 'Embraer');
insert into member values(2, 'Kim', 'Minjae', 'Seoul', 'IT staff', 'Googgle');
insert into member values(3, 'Yoshida', 'Maya', 'Tokyo', 'IT staff', 'Googgle');
insert into member values(4, 'Jimmy', 'Carter', 'New York', 'Guard', 'Gaia');
insert into member values(5, 'Eden', 'Hazard', 'Brussels', 'Driver', 'Telluscom');
insert into member values(6, 'Oh', 'Maigot', 'New York', 'Customer Service', 'Embraer');
insert into member values(7, 'Son', 'Heungmin', 'Seoul', 'HR', 'Telluscom');
insert into member values(8, 'Frank', 'Lampard', 'London', 'General Manager', 'RobotCo');
insert into member values(9, 'Leonie', 'Messia', 'Buenos Aires', 'Sales Support Agent', 'JetBrains');
insert into member values(10, 'Dominique', 'Lefebvre', 'Paris', 'Driver', 'JetBrains');
insert into member values(11, 'Mc', 'Donald', 'New York', 'Customer Service', 'RobotCo');
insert into member values(12, 'Xian', 'Juno', 'Paris', 'Sales Support Agent', 'Telus');

select * from member;

insert into play_list values(1, 'TV Shows', 'N');
insert into play_list values(2, 'Audio Books', 'N');
insert into play_list values(3, 'Classical', 'N');
insert into play_list values(4, 'Grunge', 'Y');
insert into play_list values(5, 'On-The-Go','N');
insert into play_list values(6, 'Movies', 'Y');
insert into play_list values(7, 'Hip-Hop', 'N');
insert into play_list values(8, 'Brazilian Music', 'N');
insert into play_list values(9, 'Music Videos', 'Y');
insert into play_list values(10, 'Latin', 'N');
insert into play_list values(11, 'Heavy Metal', 'Y');
insert into play_list values(12, 'R&B', 'N');
insert into play_list values(13, 'Classical 101 - Deep Cuts', 'Y');
insert into play_list values(14, 'EDM', 'N');
insert into play_list values(15, 'Skate', 'Y');

select * from play_list;


-- 1. 비교 연산자
-- CITY가 Paris인 행을 조회
select first_name, last_name, city
from member
where city = 'Paris';

-- MEMBER_NO가 10보다 작은 행을 조회
select member_no, first_name, last_name
from member
where member_no < 10;


-- 2. 부정 비교 연산자
-- favories가 Y가 아닌 행을 조회
select play_id, name, favorites
from play_list
where favorites <> 'Y';

-- 3. SQL 연산자
-- play_id가 1 이상 5 이하인 행을 조회 (1)
select play_id, name, favorites
from play_list
where play_id between 1 and 5;

-- play_id가 1 이상 5 이하인 행을 조회 (2)
select play_id, name, favorites
from play_list
where play_id >=1 and play_id <=5;

-- name이 classical로 시작되는 행을 조회
select play_id, name, favorites
from play_list
where name like 'Classical%';

-- name이 Music으로 끝나는 행을 조회
select play_id, name, favorites
from play_list
where name like '%Music';

-- name이 M으로 시작하고 S로 끝나는 행을 조회
select play_id, name, favorites
from play_list
where name like 'M%s';

-- name에 101이 포함된 행을 조회
select play_id, name, favorites
from play_list
where name like '%101%';

-- name이 Latin이거나 EDM인 행을 조회 (1)
select play_id, name, favorites
from play_list
where name in ('Latin', 'EDM');

-- name이 Latin이거나 EDM인 행을 조회 (2)
select play_id, name, favorites
from play_list
where (name='Latin' or name='EDM');


-- 4. 부정 SQL 연산자
-- play_id가 1 이상, 5 이하가 아닌 행을 조회 (1)
select play_id, name, favorites
from play_list
where play_id not between 1 and 5;

-- play_id가 1 이상, 5 이하가 아닌 행을 조회 (2)
select play_id, name, favorites
from play_list
where not (play_id between 1 and 5);

-- play_id가 1 이상, 5 이하가 아닌 행을 조회 (3)
select play_id, name, favorites
from play_list
where not (play_id >=1 and play_id <= 5);

-- play_id가 1 이상, 5 이하가 아닌 행을 조회 (4)
select play_id, name, favorites
from play_list
where play_id < 1 or play_id > 5;

-- name이 Latin과 EDM이 아닌 행을 조회 (1)
select play_id, name, favorites
from play_list
where name not in ('Latin', 'EDM');

-- name이 Latin과 EDM이 아닌 행을 조회 (2)
select play_id, name, favorites
from play_list
where not (name in ('Latin', 'EDM'));

-- name이 Latin과 EDM이 아닌 행을 조회 (3)
select play_id, name, favorites
from play_list
where not (name = 'Latin' or name = 'EDM');

-- name이 Latin과 EDM이 아닌 행을 조회 (4)
select play_id, name, favorites
from play_list
where (name <> 'Latin' and name <> 'EDM');

-- name이 null이 아닌 행 조회
-- name이 Latin과 EDM이 아닌 행을 조회 (1)
select play_id, name, favorites
from play_list
where name is not null;


-- 5. 논리 연산자
-- title이 Sales Support Agent이고 city가 Paris인 행 조회
select last_name, first_name, city
from member
where title='Sales Support Agent' and city = 'Paris';

-- title이 Sales Support Agent이거나 city가 Paris인 행 조회
select last_name, first_name, city
from member
where title = 'Sales Support Agent' or city = 'Paris';

-- title이 Sales Support Agent이거나 city가 Paris가 아닌 행 조회 (1)
select last_name, first_name, city
from member
where not (title = 'Sales Support Agent' or city = 'Paris');

-- title이 Sales Support Agent이거나 city가 Paris가 아닌 행 조회 (2)
select last_name, first_name, city
from member
where title <> 'Sales Support Agent' and city <> 'Paris';
profile
데이터로 세상을 쓰고 읽고 싶은 헤븐리뷰입니다.

0개의 댓글