MySQL IS NULL & IS NOT NULL 예제가 포함된 튜토리얼
SQL에서 Null은 값이자 키워드입니다. 먼저 NULL 값을 살펴보겠습니다 –
값으로 Null
간단히 말해서, NULL은 존재하지 않는 데이터를 위한 플레이스 홀더일 뿐입니다. 테이블에 삽입 작업을 수행할 때 일부 필드 값을 사용할 수 없는 경우가 있습니다.
진정한 관계형 데이터베이스 관리 시스템의 요구 사항을 충족하기 위해, MySQL 제출되지 않은 값에 대한 자리 표시자로 NULL을 사용합니다. 아래 스크린샷은 데이터베이스에서 NULL 값이 어떻게 보이는지 보여줍니다.
이제 논의를 더 진행하기 전에 NULL에 대한 몇 가지 기본 사항을 살펴보겠습니다.
- NULL은 데이터 유형이 아닙니다. – 이는 "int", "date" 또는 기타 정의된 데이터 유형으로 인식되지 않음을 의미합니다.
- 산술 연산 참여 NULL 항상 NULL을 반환 예를 들어 69 + NULL = NULL입니다.
- All 집계 함수 NULL 값이 없는 행에만 영향을 줍니다..
이제 count 함수가 null 값을 처리하는 방법을 살펴보겠습니다. 현재 멤버 테이블의 내용을 살펴보겠습니다.
SELECT * FROM `members`;
위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.
membership_ number | full_ names | gender | date_of_ birth | physical_ address | postal_ address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
contact_number를 업데이트한 모든 회원의 수를 계산해 보겠습니다.
SELECT COUNT(contact_number) FROM `members`;
위 쿼리를 실행하면 다음과 같은 결과가 나옵니다.
COUNT(contact_number) |
---|
7 |
참고: NULL인 값은 포함되지 않았습니다.
NOT은 무엇입니까?
NOT 논리 연산자는 부울 조건을 테스트하는 데 사용되며 조건이 거짓이면 참을 반환합니다. NOT 연산자는 테스트된 조건이 참이면 거짓을 반환합니다.
상태 | 않습니다. Opera결과 |
---|---|
참된 | 거짓 |
거짓 | 참된 |
NOT null을 사용하는 이유는 무엇입니까?
쿼리 결과 집합에서 계산을 수행하고 값을 반환해야 하는 경우가 있습니다. NULL 값이 있는 열에 대한 산술 연산을 수행하면 null 결과가 반환됩니다. 이러한 상황이 발생하지 않도록 NOT NULL 절을 사용하여 데이터가 작동하는 결과를 제한할 수 있습니다.
NULL 값이 아님
테이블에 새 행을 삽입할 때 항상 값을 제공해야 하는 특정 필드가 포함된 테이블을 생성한다고 가정해 보겠습니다. 테이블을 생성할 때 특정 필드에 NOT NULL 절을 사용할 수 있습니다.
아래 표시된 예에서는 직원 데이터가 포함된 새 테이블을 만듭니다. 직원 번호는 항상 제공되어야 합니다.
CREATE TABLE `employees`( employee_number int NOT NULL, full_names varchar(255) , gender varchar(6) );
이제 직원 이름을 지정하지 않고 새 레코드를 삽입하고 무슨 일이 일어나는지 살펴보겠습니다.
INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');
위 스크립트를 실행하면 MySQL 워크벤치에서 다음과 같은 오류가 발생합니다.
NULL 키워드
NULL은 NULL을 포함하는 값에 대해 부울 연산을 수행할 때 키워드로 사용할 수도 있습니다. 이러한 목적을 위해 "IS/NOT" 키워드는 NULL 단어와 함께 사용됩니다. null을 키워드로 사용할 때의 기본 구문은 다음과 같습니다.
`comlumn_name' IS NULL `comlumn_name' NOT NULL
여기를 클릭하십시오.
- “NULL입니다 부울 비교를 수행하는 키워드입니다. 제공된 값이 NULL이면 true를 반환하고, 제공된 값이 NULL이 아니면 false를 반환합니다.
- “NULL이 아님”부울 비교를 수행하는 키워드입니다. 제공된 값이 NULL이 아니면 true를 반환하고, 제공된 값이 null이면 false를 반환합니다.
이제 NOT NULL 키워드를 사용하여 Null 값이 있는 모든 열 값을 제거하는 실제 예를 살펴보겠습니다.
위의 예를 계속하여, 연락처 번호가 null이 아닌 멤버의 세부 정보가 필요하다고 가정합니다. 다음과 같은 쿼리를 실행할 수 있습니다.
SELECT * FROM `members` WHERE contact_number IS NOT NULL;
위 쿼리를 실행하면 연락처 번호가 null이 아닌 레코드만 제공됩니다.
연락처 번호가 null인 멤버 레코드가 필요하다고 가정합니다. 다음 쿼리를 사용할 수 있습니다.
SELECT * FROM `members` WHERE contact_number IS NULL;
위 쿼리를 실행하면 연락처 번호가 NULL인 회원 세부 정보가 제공됩니다.
membership_ number | full_names | gender | date_of_birth | physical_address | postal_address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Null 값 비교
세 가지 가치 논리 – NULL을 포함하는 조건에 대해 부울 연산을 수행하면 다음 중 하나를 반환할 수 있습니다. "알 수 없음", "참" 또는 "거짓".
예를 들어, "IS NULL" 키워드 사용 비교 연산을 할 때 NULL 관련 돌아올 수도 있고 참된 or 그릇된. 다른 비교 연산자를 사용하면 다음을 반환합니다. "알 수 없음"(NULL).
숫자 5를 XNUMX와 비교한다고 가정해 보겠습니다.
SELECT 5 =5;
쿼리 결과는 1이며 이는 TRUE를 의미합니다.
5 =5 |
---|
1 |
NULL로 동일한 작업을 수행해 보겠습니다.
SELECT NULL = NULL;
NULL = NULL |
---|
NULL |
또 다른 예를 살펴보자
SELECT 5 > 5;
5 > 5 |
---|
0 |
쿼리 결과는 0이며 이는 FALSE를 의미합니다.
NULL을 사용한 동일한 예를 살펴보겠습니다.
SELECT NULL > NULL;
NULL > NULL |
---|
NULL |
IS NULL 키워드를 사용해 봅시다
SELECT 5 IS NULL;
5 IS NULL |
---|
0 |
쿼리 결과는 0이며 이는 FALSE입니다.
SELECT NULL IS NULL;
NULL IS NULL |
---|
1 |
쿼리 결과는 1이며 이는 TRUE입니다.
요약
- NULL은 선택적 테이블 필드에 대한 값 자리 표시자입니다.
- MySQL NULL 값을 다른 데이터 유형과 다르게 처리합니다. 조건에 사용된 NULL 값은 false 부울 값으로 평가됩니다.
- NOT 논리 연산은 부울 값을 테스트하는 데 사용되며 부울 값이 거짓이면 참으로 평가하고, 부울 값이 참이면 거짓으로 평가합니다.
- NOT NULL 절은 결과 집합에서 NULL 값을 제거하는 데 사용됩니다.
- NULL 값에 대한 산술 연산을 수행하면 항상 NULL 결과가 반환됩니다.
- [, =, 등]과 같은 비교 연산자는 NULL 값을 비교하는 데 사용할 수 없습니다.