본문 바로가기
IT/SQL

[MySQL] WHERE 절 _ 기본적인 조건 표현식 모음 (LIKE, BETWEEN, IN 등)

by marketinkerbell 2022. 1. 23.
반응형

 

 

 

 

1.  부등호, 등호  ( =, >=, <=, >, < , !=, <>)

 

 

member 테이블에서 age 칼럼 값이

같다,  크거나 같다, 작거나 같다, 크다, 작다

SELECT * FROM member WHERE age = 27 ;
SELECT * FROM member WHERE age >= 27 ;
SELECT * FROM member WHERE age <= 27 ;
SELECT * FROM member WHERE age > 27 ;
SELECT * FROM member WHERE age < 27 ;

 

 

member 테이블에서 age 칼럼 값이 27과 같지 않다

SELECT * FROM member WHERE age != 27 ;
SELECT * FROM member WHERE age <> 27 ;

 

 

 

 

2. 사이의 값 BETWEEN  A  AND  B

 

 

member 테이블에서 age 칼럼 값이

18 부터 34 까지

SELECT * FROM member WHERE age BETWEEN 18 AND 34 ;

 

 

 

 

3. 부정 NOT (~이 아닌)

 

member 테이블에서 age 칼럼 값이

18 부터 34 까지 아닌

SELECT * FROM member WHERE age NOT BETWEEN 18 AND 34 ;

 

 

 

 

4. 날짜 선택

 

member 테이블에서 가입한 날짜인 sign_up_day 가

2019년 1월 1일 이후인 데이터 출력

SELECT * FROM member WHERE sign_up_day > '2019-01-01' ;

 

member 테이블에서 가입한 날짜인 sign_up_day 가

2019년인 데이터 출력

SELECT * FROM member 
    WHERE sign_up_day BETWEEN '2019-01-01' AND '2019-12-31';

 

 

 

 

 

5. LIKE  % _   문자열 패턴 매칭 조건

 

member 테이블에서 address 가 '서울' 이라는 단어로 시작되는 문자열인 데이터 출력

%기호는 아무 문자열을 의미

SELECT * FROM member WHERE address LIKE '서울%';

 

 

member 테이블에서 address에 '판교역로' 라는 단어가 포함되는 문자열 데이터 출력

SELECT * FROM member WHERE address LIKE '%판교역로%';

 

 

member 테이블에서 email에 @n 뒤에 문자가 4개 있고 .com 으로 끝나는 데이터 출력

언더바( _ ) 는 아무 문자 하나를 의미

SELECT * FROM member WHERE email LIKE '%@n____.com';  #언더바 4개

 

 

NOT LIKE

SELECT * FROM member WHERE address NOT LIKE '%호';  #address 칼럼에 어쩌구 호 가 포함되지 않은 로우 조회

 

 

 

 

 

6.  IN (이 중에 있는)

 

 

member 테이블에서 age 가 21 이거나 34 인 데이터 출력

SELECT * FROM member WHERE age IN (21, 34) ;

 

 

 

* 응용

 

 

여러개 조건 걸기

member 테이블에서 age 는 21 이거나 34 이고, 

adress 는 '서울'로 시작되고,

gender 는 'male' 인 데이터 출력

SELECT * FROM member 
WHERE age IN (21, 34) 
  AND address LIKE '서울%'
  AND gender ='male';

 

 

gender 는 male 이고 height 는 180 이상 이거나

gender 는 female 이고 height 는 170 이상인 데이터 출력

SELECT * FROM member
WHERE (gender = 'male' AND height >= 180)
    OR (gender = 'female' AND height >= 170);

 

참고 )  AND 가 OR 보다 우선순위가 높기 때문에 먼저 실행 시키고 싶은 조건을 괄호로 감싸준다

 

 

 

 

 

AND가 OR보다 우선순위가 높다

댓글