MySQL 논리 연산자 (Logical Operators)

dpwl·2024년 4월 8일
0

Data Analysis

목록 보기
11/83

1. 논리 연산자

연산자의미
AND조건을 모두 만족하는 경우 TRUE
OR하나의 조건이라도 만족하는 경우 TRUE
NOT조건을 만족하지 않는 경우 TRUE
BETWEEN조건값이 범위 사이에 있으면 TRUE
IN조건값이 목록에 있으면 TRUE
LIKE조건값이 패턴에 맞으면 TRUE

1.1 AND 연산자

AND 문법

SELECT column1, column2, ...
FROM tablename
WHERE condition1 AND condition2 AND condition3 ...;
  • 여러 조건을 모두 만족해야 True
  • 하나의 조건이라도 만족하지 못한다면 False

Example 1: 나이가 40세이고 성별이 남자인 데이터 검색하기

SELECT * FROM family
WHERE age=40 AND sex='M';

Example 2: 성별이 여자이고 나이가 25세 보다 큰 데이터를 이름의 역순으로 정렬하여 검색하기

SELECT * FROM family
WHERE sex='F' AND age>25
ORDER BY name DESC;

1.2 OR 연산자

OR 문법

SELECT column1, column2, ...
FROM tablename
WHERE condition1 or condition2 or condition3 ...;

Example 1: 나이가 30세보다 작거나 40세보다 큰 데이터 검색하기

SELECT * FROM family
WHERE age<30 or age>40
ORDER BY age;

Example 2: 나이가 28세보다 작고 여자이거나, 나이가 40세 보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색하기

1) 나이가 28세보다 작고 여자인 데이터 검색하기

SELECT * FROM family
WHERE age<28 AND sex='F';

2) 나이가 40세 보다 크고 남자인 데이터 검색하기

SELECT * FROM family
WHERE age>40 AND sex='M';

3) 나이가 28세보다 작고 여자이거나, 나이가 40세 보다 크고 남자인 데이터 검색하기

SELECT * FROM family
WHERE (age<28 AND sex='F') or (age>40 AND sex='M');

4) 나이가 29세보다 작고 여자이거나, 나이가 30세 보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색하기

SELECT * FROM family
WHERE (age<28 AND sex='F') or (age>40 AND sex='M')
ORDER BY age, sex;
  • ANDOR 연산자를 같이 쓸 경우, AND의 우선순위가 높기 때문에 AND 조건이 먼저 처리되기에 괄호( )가 필요는 없지만 가독성을 높이기 위해서 괄호( )를 넣는게 좋다.
  • 한가지 주의할 점은 OR문에 괄호( )를 안치면 AND문이 우선순위이기에 문제와 다른 결과값이 나올 수 있으니 꼭 ( )를 써야한다.

1.3 NOT 연산자

NOT 문법

SELECT column1, column2, ...
FROM tablename
WHERE NOT condition;

Example 1: 성별이 남자가 아닌 데이터 검색하기

SELECT * FROM family
WHERE NOT sex='M';
profile
거북선통통통통

0개의 댓글