민둥 개발자의 계발 블로그

[mysql] 데이터베이스 WHERE 절 본문

Study/Database

[mysql] 데이터베이스 WHERE 절

민둥산의 민둥이 2022. 5. 16. 19:04

 안녕하세요, 민둥산의 민둥이입니다. 저저번 포스팅에서 데이터베이스의 데이터들을 조회하는 SELECT 구문을 알려드렸는데요, 사실 알려드린 것보다 더 훨씬 더 다채롭게 사용할 수 있는 것이 SELECT 구문입니다. 이 SELECT 구문을 더 다채롭게 만드는 절 중 하나가 바로 WHERE절입니다! 저번에도 말했듯이 sql 구문은 영어를 말한다는 느낌과 같다고 했는데요, 여기서 이 WHERE의 의미도 똑같습니다.

 

 "Show me the column where salary is lower than 100000" 을 직역하면 "월급이 100000보다 적은 컬럼을 보여줘"가 되는데요, 여기서 where의 사용은 조건을 명시하는데 쓰이죠. sql 구문에서도 똑같이 조건을 명시하는 용도로 WHERE를 씁니다.

 

기본 문법

예시)

SELECT salary
FROM employees
WHERE salary<10000;

일단 기본적으로 SELECT와 FROM 절까지는 사용을 똑같이 하되, 테이블명 뒤에 WHERE을 적어주고 비교하는 조건을 적어주시면 됩니다. 여기서 칼럼의 값을 특정 조건과 비교하기 위해 사용되는 다양한 비교 연산자들이 있는데요, 한번 표로 정리해보겠습니다.

SELECT 출력할 컬럼
FROM 테이블명
WHERE 비교대상(컬럼) 비교연산자 비교할 값

 

비교 연산자

연산기호 이름 용도
= Equal(같다)
(산술연산자)
값이 같은지 비교
!=, <>, ^= NOT Equal(다르다)
(산술연산자)
값이 같지 다른지를 비교
< Less than(작다,미만)
(반대 기호는 크다,초과의 의미)
(산술연산자)
값이 작은지 비교
>= Greater or equal to (크거나 같다)
(반대 기호는 작거나 같다의 의미) 
(산술연산자)
값이 크거나 같은지 비교
BETWEEN A AND B Between 연산자 값이 A 이상 B 이하인지를 확인
IN IN 연산자 등호와 같이 비교하는 값이 비교되는 값과 같은지를 확인. 단, 여러개의 값을 동시에 비교할 수 있음. 
ex) 나이(age)컬럼이 (20,21,22)인지를 동시에 판단가능
LIKE LIKE 연산자 특정 값과 비슷한 값들을 찾아낼 수 있음.
IS NULL IS NULL 연산자 비교되는 컬럼이 널값인지를 판단
AND AND 연산자 조건1 조건2를 충족하는 값을 찾음
OR OR 연산자 조건1 또는 조건2를 충족하는 값을 찾음

 여기서 부가 설명이 필요한 연산자들은 아마 LIKE와 IS NULL 연산자이지 않나 싶습니다. 깔끔한 설명을 위한 반말 사용 봐주세요^^

 

  • LIKE 연산자
    • 비슷한 값을 찾아낼 때 사용
    • LIKE 다음 '따옴표'를 사용하여 그 사이의 비슷한 부분을 지정함
      • ex) LIKE '_o%' 
      • 첫 번째에 임의의 글자가 있고 2번째 글자가 반드시 o인 문자열을 길이 상관없이 찾음
    • 언더바(underbar) _ 는 임의의 문자 하나가 차리 하는 자리를 표현하고, 그 임의의 문자 개수만큼 사용하면 됨.
      • ex) LIKE '_w_' 
      • 두 번째 글자에 반드시 w가 오는 3글자를 찾음.
    • % 는 길이 제한 없이 임의의 문자들이 아무거나 다 올 수 있음.
      • ex) LIKE '% A%'
      • 중간에 A가 포함된 문자열을 길이 상관없이 찾음
  • IS NULL 연산자
    • IS NULL의 경우는 칼럼과 NULL값을 비교하는 데에 사용.
    • NULL 값의 경우는 모든 NULL값이 다른 값을 가지고 있기에 일반적인 동등 비교 연산자(=)를 사용하여 칼럼명 = NULL 은 사용할 수 없기에 만들어진 연산자.

 

요정도?입니다. 그럼 좋은 하루 보내세요^^

반응형
Comments