Mysql - 논리연산자

CHOI CHOI·2023년 12월 10일
0

Mysql

목록 보기
4/8

ALL

전체 값을 비교하여 모두 만족해야만 True를 반환.
예) 1000 > ALL(500, 1000, 2000) -> FALSE : ALL안에 있는 모든 값들보다 1000이 커야하므로 FALSE

AND

두 개의 식을 결합하여 두 식이 모두 True일 경우에만 True를 반환.
예) WHERE height > 10 AND weight >5; : 높이가 10보다 크고, 중량이 5보다 큰 경우 True반환

ANY

조건 식 중 하나만 만족해도 True를 반환한다.
예) 1000 > ANY(500, 1000, 1500) --> True

BETWEEN

BETWEEN a AND b : a에서 b사이의 내용을 검색해서 나타내라
날짜, 나이, 문자 등등

IN, EXISTS

NULL결과가 출력되어도 결과가 있다고 본다. 따라서 True반환!!

LIKE

LIKE는 정확한 값이 아닌 유사한 값을 일치시킬 수 있는 연산자 이다.

--A로 시작하는 문자 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A%'

--A로 끝나는 문자 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A'

--A를 포함하는 문자 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A%'

--A로 시작하는 두글자 문자 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A_'

--첫번째 문자가 'A'가 아닌 모든 문자열 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[^A]'

--첫번째 문자가 'A' 또는 'B' 또는 'C'인 문자열 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[ABC]'
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[A-C]'

NOT

해당명령문이 거짓인 행을 선택하기 위한것.

OR

두 조건중 하나를 충족하는 행을 선택할 수 있는 논리연산자 이다.


논리연산자 우선순위

  • and의 우선순위가 or보다 높기 때문에 두 쿼리문은 결과가 다르다
select * from tcity where region = '경기' and popu >= 50 or area >= 500;
  • 처음 생각했던 순서 : 지역이 경기이면서 인구가 50만 이상이거나 면적이 500 이상인 도시 검색
  • 결과 : 지역이 경기이면서 인구가 50만 이상이거나, 경기가 아니고 인구가 50만보다 적으면서 면적은 500 이상인 도시 검색
(where region = '경기' and popu >= 50) or area >= 500;
select * from tcity where region = '경기' and (popu >= 50 or area >= 500);
  • 결과 : 인구가 50만 이상이거나 면적이 500 이상인 경기인 도시 검색
    따라서 괄호로 우선순위를 명확히 지정하는 것이 좋음!
profile
뭐가 됐든 데이터분석가

0개의 댓글