WHERE
- 조건에 맞는 로우를 얻으려면 다음과 같이 로우를 제한하는 조건을 where절에 추가해야 한다.
- SQL에서 문자열이나 날짜는 반드시 단일 따옴표(single quotation) 안에 표시해야 한다.
- SQL문에 사용되는 키워드인 SELECT 나 FROM 이나 WHERE 등은 대소문자를 구별하지 않지만 테이블 내에 저장된 데이터 값은 대소문자를 구분한다.

- 조건절은 다음 세부분으로 구성된다.

비교연산자

where 조건과 비교 연산자 예제

논리연산자

논리연산자 예제

in 연산자
- 동일한 필드가 여러 개의 값 중에 하나인 경우인지를 살펴보기 위해서 비교 연산자와 논리 연산자 OR를 사용하여 복잡하게 쿼리문을 작성하지 않고 IN 연산자를 사용하여 훨씬 간단하게 표현할 수 있다.

Like 연산자
- LIKE 연산자는 SQL에서 문자열 패턴을 검색할 때 사용되는 연산자다.
- 주로 WHERE 절과 함께 사용되어, 특정 패턴과 일치하는 데이터 행을 찾는 데 유용하다.
- 와일드카드 문자를 사용하여 패턴을 정의한다.
와일드 카드

예제

❗ 주의
- LIKE 연산자는 대소문자를 구분하지 않는 경우와 구분하는 경우가 있을 수 있으며, 데이터베이스 설정에 따라 다르다. 예를 들어, MySQL에서는 기본적으로 대소문자를 구분하지 않는다.
- 와일드카드를 사용하면 쿼리 성능에 영향을 미칠 수 있으므로, 필요한 경우에만 사용하는 것이 좋다
❓ 왜 성능 저하가 일어날까?
1. LIKE 연산자에서 와일드카드를 사용하면 인덱스가 효과적으로 사용되지 않을 수 있어 데이터베이스가 전체 테이블을 스캔해야 하므로 성능이 저하될 수 있다.
2. 와일드카드가 문자열의 시작 부분에 있을 경우, 데이터베이스는 전체 테이블을 스캔해야 하므로, 데이터 양이 많을수록 시간이 많이 소요된다.
3. 더 복잡한 패턴을 사용하면 데이터베이스가 일치하는 문자열을 찾기 위해 더 많은 연산을 수행해야 하므로, CPU와 메모리 자원 소모가 증가한다.
4. 우: 데이터베이스에 저장된 데이터 양이 많아질수록, 와일드카드를 사용한 쿼리의 성능 저하가 더 심각해질 수 있습니다. 이로 인해 쿼리 성능이 더욱 느려질 수 있다.
NULL을 위한 연산자
- QL에서 NULL 값을 비교할 때는 = 연산자를 사용해서는 안된다. NULL은 "값이 없음"을 나타내며, SQL에서는 NULL과의 비교가 항상 FALSE 또는 UNKNOWN으로 평가되기 때문에, 다음과 같은 쿼리는 결과를 반환하지 않는다.
- NULL 값을 검사하려면
IS NULL 또는 IS NOT NULL을 사용해야 한다.

1. null 인 값 검색

2. null 이 아닌 값 검색

BETWEEN AND 연산자
- 특정 범위의 값을 조회하기 위해서는 BETWEEN AND 연산자를 사용할 수 있다.
- BETWEEN AND 연산자는 숫자형뿐만 아니라 문자형, 날짜형에도 사용할 수 있다.

- 해당 범위가 아닌 값을 조회하기 위해 NOT- BETWEEN AND를 사용할 수 있다.

- 날짜형 연산
