웹개발/웹 개발[데이터베이스-MySQL]

데이터베이스 [HeidiSQL] SELECT문의 'WHERE'(조건)

jhshdksa 2022. 12. 15. 22:52

 [WHERE] 조건절 학습하기


 

WHERE (조건)

👇 student_mst 테이블에 데이터 입력 👇

student_mst 테이블을 SELECT 하여 조회할 때

'student_year'이 1인 학생만을 조회하고 싶을 때에는 어떻게 해야 하는가?👉 WHERE 절을 사용한다.


WHERE (조건)이

 

 

FROM절에서 읽어온 테이블에서 특정 조건에 맞는 결과만 갖도록 데이터를 필터링한다.

 

👇 WHERE 조건의 종류 👇

비교 연산자 : >, <, >=, <=, =, !=

AND, OR 연산자

BETWEEN 연산자

IN 연산자

LIKE 연산자

NULL 연산자


WHERE 예제 1

비교 연산자 : >, <, >=, <=, =(같다), !=(같지않다)

 

위의 'student_mst'테이블에서

'student_year'이 1인 학생만을 조회하고 싶을 때에는 어떻게 해야 하는가?라는 예제를 풀이해보자 

WHERE문의 조건으로 = 비교 연산자를 사용하여 'student_year'이 1인 데이터만을 조회한다.

Java와 다르게 SQL에서는 = 기호가 '같다, equals'를 의미한다. (대입 X)


 'student_mst'테이블에서 'score'가 85점이 넘는 데이터를 조회해라


WHERE 예제 2

AND / OR 연산자

조건을 여러 개 사용하고 싶을 때

 

 'student_mst'테이블에서 'student_year'이 1인 학생 중에 'score'가 80점이 넘는 데이터를 조회해라


'student_mst'테이블에서

'student_year'이 2인 학생중에 'score'가 90점 이상인 데이터와

'student_year'이 3인 학생중에 'score'가 75점인 데이터를 조회해라

AND안에 OR이 들어갈 경우 괄호로 묶어서 표기를 해준다.

 

*SELECT는 아래와 같이 Column의 순서 변경이 가능하다.*


WHERE 예제 3

BETWEEN 연산자

조건의 범위를 지정하고 싶을 때 부등호를 대신하여 사용할 수 있다.

 

 'student_mst'테이블에서 'score'가 80과 90 사이에 있는 데이터를 조회해라


 'student_mst'테이블에서 'score'가 80과 90 사이에 있지 않는 데이터를 조회해라

연산자 기호를 쓸 때에는 not이 맨 앞으로 (not student_year = 3 / student_year != 3)

IN, LIKE, BETWEEN과 같은 키워드를 쓸 땐 not을 키워드 바로 앞에 쓴다.


WHERE 예제 4

IN 연산자

in 조건 뒤로 나열한 조건들 중 일치하는 데이터를 모두 가져오는 연산자

 

 'student_mst'테이블에서 'student_year'이 1, 2인 데이터를 조회해라

👇OR을 대신해서 IN으로 값을 묶을 수 있기 때문에 위의 두 사진은 조회 값이 같다.👇


 'student_mst'테이블에서 'student_year'이 2, 3이 아닌 데이터를 조회해라


WHERE 예제 5

LIKE 연산자

부분적으로 일치하는 데이터의 칼럼을 찾는 연산자

 

'student_mst'테이블에서 'name'에 '수'가 들어있는 데이터를 조회해라

WHERE Column명 LIKE '% 조건 문자%'


위의 쿼리 문의 결과 값으로 '신경수', '박수현', '김수현'의 값이 나올 때 '신경수'를 없애는 방법은? 


'student_mst'테이블에서 'name'의 맨 뒤가 '주'로 끝나는 데이터를 조회해라

앞에는 어떤 문자열이 와도 상관없다.


WHERE 예제 5

IS NULL / IS not NULL 연산자

필드 값이 NULL 인 데이터를 조회하는 연산자

 

필드 값이 NULL인 데이터를 조회하기 위해서는

'fields = NULL'이 아니라 'fields IS NULL'을 사용해야 한다.

'student_mst' 테이블에 NULL값이 없기 때문에 조회할 수 있는 값이 없다. 


반대로 'student_mst' 테이블에 NULL 값이 없는 fields를 검색하게 되면 모든 값이 조회된다.

(비워진 테이블 값이 없다.)

 

* 다음 쿼리가 없는 경우 쿼리문 마지막의 세미클론을 생략할 수 있다. (쿼리 구분용) *


지금까지 데이터베이스 SELECT의 [WHERE] 절에 대해 알아보았습니다.

 

다음 포스팅에서는 SELECT의 [UPDATE]과 [DELETE]에 대해 알아보겠습니다.

 

긴 글 읽어주셔서 감사드립니다