MySQL IS NULL & Tutorial IS NOT NULL com EXEMPLOS

Índice:

Anonim

No SQL, Null é tanto um valor quanto uma palavra-chave. Vejamos primeiro o valor NULL -

Nulo como um valor

Em termos simples, NULL é simplesmente um espaço reservado para dados que não existem. Ao realizar operações de inserção em tabelas, haverá momentos em que alguns valores de campo não estarão disponíveis.

Para atender aos requisitos dos verdadeiros sistemas de gerenciamento de banco de dados relacional, o MySQL usa NULL como o marcador de posição para os valores que não foram enviados. A captura de tela abaixo mostra como os valores NULL aparecem no banco de dados.

Vamos agora dar uma olhada em alguns dos fundamentos de NULL antes de prosseguirmos na discussão.

  • NULL não é um tipo de dados - isso significa que não é reconhecido como "int", "data" ou qualquer outro tipo de dados definido.
  • As operações aritméticas envolvendo NULL sempre retornam NULL, por exemplo, 69 + NULL = NULL.
  • Todas as funções de agregação afetam apenas as linhas que não possuem valores NULL .

Vamos agora demonstrar como a função de contagem trata os valores nulos. Vamos ver o conteúdo atual da tabela de membros

SELECT * FROM `members`;

Executar o script acima nos dá os seguintes resultados

 
membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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

Vamos contar todos os membros que atualizaram seu contact_number

SELECT COUNT(contact_number) FROM `members`;

Executar a consulta acima nos dá os seguintes resultados.

 
COUNT(contact_number)
7

Nota: os valores NULL não foram incluídos

O que não é?

O operador lógico NOT é usado para testar as condições booleanas e retorna verdadeiro se a condição for falsa. O operador NOT retorna falso se a condição testada for verdadeira

Doença

NÃO Resultado do Operador

Verdade

Falso

Falso

Verdade

Por que usar NOT null?

Haverá casos em que teremos que realizar cálculos em um conjunto de resultados de consulta e retornar os valores. A execução de qualquer operação aritmética em colunas com valor NULL retorna resultados nulos. Para evitar que tais situações aconteçam, podemos empregar o uso da cláusula NOT NULL para limitar os resultados nos quais nossos dados operam.

Valores NOT NULL

Vamos supor que queremos criar uma tabela com certos campos que sempre devem ser fornecidos com valores ao inserir novas linhas em uma tabela. Podemos usar a cláusula NOT NULL em um determinado campo ao criar a tabela.

O exemplo mostrado abaixo cria uma nova tabela que contém os dados do funcionário. O número do funcionário deve ser sempre fornecido

CREATE TABLE `employees`(employee_number int NOT NULL,full_names varchar(255) ,gender varchar(6));

Vamos agora tentar inserir um novo registro sem especificar o nome do funcionário e ver o que acontece.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

Executar o script acima no ambiente de trabalho MySQL dá o seguinte erro -

Palavras-chave NULL

NULL também pode ser usado como uma palavra-chave ao executar operações booleanas em valores que incluem NULL. A palavra-chave "IS / NOT" é usada em conjunto com a palavra NULL para tais propósitos. A sintaxe básica quando null é usado como uma palavra-chave é a seguinte

`comlumn_name' IS NULL`comlumn_name' NOT NULL

AQUI

  • "IS NULL" é a palavra-chave que executa a comparação booleana. Retorna verdadeiro se o valor fornecido for NULL e falso se o valor fornecido não for NULL.
  • "NOT NULL" é a palavra-chave que executa a comparação booleana. Ele retorna verdadeiro se o valor fornecido não for NULL e falso se o valor fornecido for nulo.

Vejamos agora um exemplo prático que usa a palavra-chave NOT NULL para eliminar todos os valores de coluna que possuem valores nulos.

Continuando com o exemplo acima, suponha que precisamos de detalhes de membros cujo número de contato não é nulo. Podemos executar uma consulta como

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

A execução da consulta acima fornece apenas registros em que o número do contato não é nulo.

Suponha que queremos registros de membros onde o número de contato é nulo. Podemos usar a seguinte consulta

SELECT * FROM `members` WHERE contact_number IS NULL;

Executar a consulta acima fornece detalhes do membro cujo número de contato é NULL

 
membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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

Comparando valores nulos s

Lógica de três valores - a execução de operações booleanas em condições que envolvem NULL pode retornar "Desconhecido", "Verdadeiro" ou "Falso".

Por exemplo, usar a palavra-chave "IS NULL" ao fazer operações de comparação envolvendo NULL pode retornar verdadeiro ou falso . O uso de outros operadores de comparação retorna "Desconhecido" (NULL).

Suponha que você compare o número cinco com o 5

SELECT 5 =5;

O resultado da consulta é 1, o que significa VERDADEIRO

 
5 =5
1

Vamos fazer a mesma operação com NULL

SELECT NULL = NULL;
 
NULL = NULL
NULL

Vejamos outro exemplo

SELECT 5 > 5;
 
5> 5
0

O resultado da consulta é 0, o que significa FALSO

Vejamos o mesmo exemplo usando NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Vamos usar a palavra-chave IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

O resultado da consulta é 0, que é FALSO

SELECT NULL IS NULL;
 
NULL IS NULL
1

O resultado da consulta é 1, que é VERDADEIRO

Resumo

  • NULL é um marcador de posição de valor para campos de tabela opcionais.
  • O MySQL trata o valor NULL de maneira diferente de outros tipos de dados. Os valores NULL, quando usados ​​em uma condição, são avaliados como um valor booleano falso.
  • A operação lógica NOT é usada para testar os valores booleanos e avalia como verdadeiro se o valor booleano for falso e falso se o valor booleano for verdadeiro.
  • A cláusula NOT NULL é usada para eliminar valores NULL de um conjunto de resultados
  • A execução de operações aritméticas em valores NULL sempre retorna resultados NULL.
  • Os operadores de comparação como [, =, etc.] não podem ser usados ​​para comparar valores NULL.