WHERE 절은 SQL 쿼리에서 특정 조건에 부합하는 행을 필터링할 때 사용된다.
필터링하기 위한 조건으로 다양한 연산자들이 존재한다.
SELECT name
FROM employees
WHERE department = 'Sales';
위 예제에서는 employees 테이블에서 department 컬럼 값이 'Sales'인 모든 행을 조회한다.
비교 연산자는 피연산자 간 값의 비교를 통해 참과 거짓을 반환하기 위해 사용된다.
숫자, 문자열, 날짜 등 다양한 데이터 유형에 사용될 수 있다.
SELECT *
FROM products
WHERE price > 100;
위 예제에서는 products 테이블에서 price 컬럼 값이 100보다 큰 모든 제품을 조회한다.
비교 연산자 설명 = 두 피연산자가 같다. !=, <> 두 피연산자가 다르다. < 왼쪽 피연산자가 작다. <= 왼쪽 피연산자가 작거나 같다. > 왼쪽 피연산자가 크다. >= 왼쪽 피연산자가 크거나 같다.
논리 연산자는 참과 거짓의 값을 갖는 두 논리식을 연산할 때 사용된다.
SELECT *
FROM employees
WHERE salary >= 30000 AND department = 'HR';
위 예제에서는 salary 컬럼 값이 30000 이상이면서 department 컬럼 값이 'HR'인 직원을 조회한다.
논리 연산자 설명 AND 모두 참이다. && 모두 참이다. OR 둘 중 하나가 참이다. || 둘 중 하나가 참이다. XOR 둘 값이 서로 다르다. NOT 논리식 결과의 반대이다. ! 논리식 결과의 반대이다.
LIKE 연산자는 문자 패턴 매칭에 사용되며, %와 _ 라는 와일드카드(wildcard)와 함께 사용된다.
%는 0개 이상의 문자라는 의미의 와일드카드 문자이고,
_는 하나의 문자라는 의미의 와일드카드 문자이다.
예를 들어 'a%' 라고 하면 'a'로 시작하는 모든 값을 의미하고,
'_a%' 라고 하면 두 번째 인덱스 값이 'a'인 모든 값을 의미한다.
SELECT *
FROM customers
WHERE name LIKE 'M_%_%';
위 예제에서는 name 컬럼 값이 'M'으로 시작하고 최소 3글자 이상인 모든 고객을 조회한다.
IN 은 주어진 목록 중 하나와 일치하는 데이터를 조회한다.IN 은 여러 값을 한 번에 비교할 때 유용하다.BETWEEN 은 지정된 두 값 사이에 있는 데이터를 조회한다.BETWEEN 은 시작 값, 종료 값을 모두 포함한다.SELECT *
FROM products
WHERE category IN ('Furniture', 'Electronics');
위 예제에서는 category 컬럼 값이 'Furniture', 'Electronics' 이 중 하나인 제품을 조회한다.
SELECT *
FROM employees
WHERE age BETWEEN 25 AND 35;
위 예제에서는 age가 25 이상 35 이하인 직원을 조회한다.
IS NULL 과 IS NOT NULL 은 특정 컬럼의 값이 NULL 인지 아닌지를 검사하는 비교 연산자이다.
NULL 은 값이 없다는 의미를 갖고 있는데, 일반적인 비교 연산자인 =, != 로 검사할 수 없다.
SELECT *
FROM employees
WHERE commission IS NULL;
위 예제에서는 commission 컬럼 값이 NULL 인 모든 직원을 조회한다.
MySQL의 기본적인 문법을 다루어보았다.
기본 개념이 밑받침되어야 이후에 복잡한 쿼리를 처리할 때 부담되지 않기 때문에,
충분히 숙지할 수 있도록 노력해야겠다.