본문 바로가기
SQL/MySQL

[MySQL] WHERE 구문을 이용한 데이터 조건 반환

by jane.dev 2021. 7. 18.
반응형

데이터 조건 반환

SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명 WHERE 컬럼명 조건식;

 

관계 연산자를 활용하여 대소비교를 하거나 ANDOR 를 이용해 조건을 여러개 연결할 수 있음

예시) 1990년도 이후에 출생한 키가 185 이상인 사람의 아이디와 이름을 반환

SELECT id, name FROM exampleTbl WHERE (birthYear > 1990) AND (height >= 185);

 

BETWEEN ~ AND 를 이용해 범위지정(이상 ~ 이하) 가능

예시) 1990년도 이후 2000년도 이전 출생한 사람들의 아이디와 이름 반환

SELECT id, name FROM exampleTbl WHERE birthYear BETWEEN 1990 AND 2000;

 

IN을 이용해 특정컬럼안의 데이터를 선택해 조회

예시) 서울과 제주가 주소인 사람들의 아이디와 이름 반환

SELECT id, name FROM exampleTbl WHERE addr IN ('서울', '제주');

 

LIKE를 이용해 %(0글자부터 글자제한 없음), _(한글자)로 매치되는 문자 혹은 문자열을 조회

예시) 이름이 '김'으로 시작하는 사람들의 아이디와 이름 반환 

SELECT id, name FROM exampleTbl WHERE name LIKE '김%';

 

서브 쿼리( 하위 쿼리 )

1차적으로 얻은 결과에서 다시 중첩으로 반환할 결과를 찾는 구문

예시) 제주에 사는 사람들 중 가장 키가 큰 사람보다, 키가 더 큰 타 지역 사람들의 아이디와 이름 반환

SELECT id, name FROM exampleTbl WHERE height >
	(SELECT max(height) FROM exampleTbl WHERE addr = '제주');

 

하위 쿼리문에서 반환하는 값이 여러 개일 경우, 시스템은 기준으로 잡을 값을 잡아야할지 알지 못해 에러 발생

ALL 이나 ANY 를 이용

ALL: AND와 같은 의미, 조건1 and 조건2..

ANY: OR과 같은 의미, 조건1 or 조건2..

예시) 제주에 사는 사람들보다 키가 큰 타지역 사람들의 아이디와 이름 반환

SELECT id, name FROM exampleTbl WHERE height > 
	ALL (SELECT height FROM exampleTbl WHERE addr = '제주');

 

'SQL > MySQL' 카테고리의 다른 글

[MySQL] 프로시저 매개변수 값 입력  (0) 2021.07.21
[MySQL] 프로시저(Procedure)  (0) 2021.07.20
[MySQL] 기초 문법  (0) 2021.07.18
[MySQL] JOIN 구문  (0) 2021.07.17
[MySQL] 사용자 관리하기  (0) 2021.07.17