함께하는 데이터 분석

[SQL] 비교 연산자, 논리 연산자 본문

데이터분석 공부/SQL

[SQL] 비교 연산자, 논리 연산자

JEONGHEON 2022. 4. 28. 18:39

오늘은 SQL을 통해

 

비교 연산자와 논리 연산자를 알아보겠습니다.

 

우선 연산자에 대해 표로 설명드리겠습니다.

 

구분 연산자 설명
비교 연산자 = ~와 같다
<> ~와 같지 않다
>= ~보다 크거나 같다
<= ~보다 작거나 같다
> ~보다 크다
< ~보다 작다
논리 연산자 and 앞 뒤 조건 모두 만족
or 앞 뒤 조건 중 하나라도 만족
not 뒤에 오는 조건과 반대

SQL에서는 위와 같은 연산자를 사용합니다.

 

Python이나 R에서와 상당히 유사한데요.

 

같다가 =, 같지 않다가 <>인 것을 제외하면 거의 비슷합니다.

 

이제 workbench에서 살펴보겠습니다.

 

 

 

데이터 베이스

/* 데이터베이스 da 사용 */ 
use da;

da 데이터 베이스를 사용하겠습니다.

 

 

 

테이블 불러오기

/* insurance 테이블 모든 열 조회 */
select * from insurance;

이렇게 전 포스팅에서 불러온 insurance 데이터를

 

테이블로 불러왔습니다.

 

만약 새로운 데이터로 하시려면 불러오는 방법은

 

전 포스팅을 참고해주세요.

 

이제 비교 연산자를 시작하겠습니다.

 

 

 

비교 연산자

/* = : 같음 */
select * from insurance
where children = 2;

select로 insurance 테이블을 불러오고

 

where에 = 연산자를 이용하여 children이 2인 데이터만 불러왔습니다.

 

이번에는 children 데이터가 2가 아닌 행만 불러오겠습니다.

 

/* <> : 같지 않음 */
select * from insurance
where children <> 2;

이번에는 <> 연산자를 이용하여 children 데이터가

 

2가 아닌 모든 행을 불러왔습니다.

 

이번에는 2보다 크거나 같은 데이터만 불러오겠습니다.

 

/* >= : 크거나 같음 */
select * from insurance
where children >= 2;

>= 연산자를 이용하여 2보다 크거나 같은 데이터만 불러왔습니다.

 

/* <= : 작거나 같음 */
select * from insurance
where children <= 2;

<= 연산자를 이용하여 2보다 작거나 같은 데이터만 불러왔습니다.

 

/* > : 큼 */
select * from insurance
where children > 2;

> 연산자를 이용하여 2보다 큰 데이터만 불러왔습니다.

 

>= 와 다르게 children이 2인 데이터가 안 보이는 것을 확인할 수 있죠.

 

/* < : 작음 */
select * from insurance
where children < 2;

< 연산자를 이용하여 2보다 작은 데이터만 불러왔습니다.

 

<= 와 다르게 children이 2인 데이터가 안 보이는 것을 확인할 수 있습니다.

 

여기까지가 비교 연산자입니다.

 

이제 논리 연산자를 살펴보겠습니다.

 

 

 

논리 연산자

/* and : 앞뒤 조건 모두 만족 */
select * from insurance
where smoker = 'yes'
and children = 3;

첫 번째 논리 연산자인 and입니다.

 

and는 앞 조건과 뒤 조건을 둘 다 만족해야 합니다.

 

smoker 데이터가 yes이면서 children 데이터가 3이어야 하죠.

 

위의 사진을 보시면 둘다 만족하는 것을 볼 수 있습니다.

 

이제 not 연산자를 알아볼게요.

 

/* not : 뒤 조건과 반대 */
select * from insurance
where not smoker = 'yes'
and children = 3;

and 연산자를 사용했는데 smoker = 'yes' 앞에

 

not을 넣었습니다.

 

따라서 smoker 데이터는 yes가 아니고

 

children 데이터가 3인 행이 뽑힌 것을 확인할 수 있습니다.

 

smoker 데이터는 범주형으로 yes와 no만 존재하므로

 

모두 no가 뽑힌 것입니다.

 

마지막으로 or 연산자를 살펴보겠습니다.

 

/* or : 앞뒤 조건 하나라도 만족 */
select * from insurance
where smoker = 'yes'
or children = 3;

or 연산자는 앞 뒤 조건 둘 중 어느 것 하나라도 만족시키면 됩니다.

 

따라서 smoker 데이터가 yes인 행과

 

children 데이터가 3인 행 모두 가져옵니다.

 

즉, chidren 데이터가 3이 아니면 반드시 smoker 데이터는 yes여야 하고

 

smoker 데이터가 yes가 아니면 children 데이터는 3이어야 합니다.

 

여기까지 비교 연산자와 논리 연산자를 마치겠습니다!

 

 

'데이터분석 공부 > SQL' 카테고리의 다른 글

[SQL] 단일 행 함수  (0) 2022.04.30
[SQL] 특수 연산자, 집합 연산자  (0) 2022.04.28
[SQL] 테이블 결합 - JOIN  (0) 2022.04.27
[SQL] 데이터 조회 - SELECT  (0) 2022.04.21
[SQL] 트랜젝션 제어어(TCL)  (0) 2022.04.20