1. NULL
DBMS에서 null는 “값을 알 수 없음”을 의미한다.
가. IS NULL
null는 “값을 알 수 없음”을 의미한다.
select *
from ta
where can_be_null = null;
Code language: JavaScript (javascript)
그래서 다음과 같은 방식으로 null인 row를 찾을 수 없다.
select *
from ta
where can_be_null is null;
Code language: JavaScript (javascript)
null 값을 찾고 싶다면 = null이 아닌 is null 을 사용할 것.
select *
from ta
where can_be_null is not null;
Code language: JavaScript (javascript)
is not null도 가능한다.
나. IFNULL()
select IFNULL(can_be_null, 0)
from ta;
Code language: JavaScript (javascript)
IFNULL(can_be_null, 0):can_be_null가null이면 대신0
다. NULLIF()
select NULLIF(value_1, value_2)
from ta;
Code language: JavaScript (javascript)
NULLIF(value_1, value_2):value_1 = value_2가 참이면NULL그렇지 않으면value_1반환.
라. null 논리연산

값을 알 수 없다는 것은 TRUE일 수도 FALSE일 수도 있다는 것이다.
TRUE OR NULL과 FALSE AND NULL 같이 NULL에 상관없이 참과 거짓이 결정되는 경우를 제외하면 NULL의 논리연산의 결과는 NULL이다.
의미 그래로 참, 거짓을 알 수 없다.
2. CASE문
SELECT
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END AS column_name
FROM table_name;
Code language: PHP (php)
- 만약
condition1이 참이면result1을 반환 - 만약
condition2가 참이면result2를 반환 - 어떤 조건도 참이 아니면
result3를 반환
3. 이스케이프
select * from ta where b like '100%';
select * from ta where b like '100!%' escape '!'
Code language: JavaScript (javascript)
‘100%’:%는 모든 문자열을 일치시키는 와일드카드.'100!%' escape '!':!를 이스케이프 문자로 정의. 정확히'100%'를 의미.
추가로 “문자열“보다는 '문자열'를 사용해라.
DBMS에 따라서 "문자열"를 사용할 수 없는 경우도 있다.