MySQL Tutorial É NULO E NÃO É NULO com EXEMPLOS

No SQL Null é um valor e também uma palavra-chave. Vamos examinar o valor NULL primeiro –

MySQL É NULO E NÃO É NULO

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 campos não estarão disponíveis.

Para atender aos requisitos de verdadeiros sistemas de gerenciamento de banco de dados relacional, MySQL usa NULL como espaço reservado para os valores que não foram enviados. A captura de tela abaixo mostra a aparência dos valores NULL no banco de dados.

Nulo como um valor

Vejamos agora alguns dos princípios básicos do 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.
  • Operaçoes aritimeticas envolvendo NULL sempre retornar NULO por exemplo, 69 + NULO = NULO.
  • Todos funções agregadas afeta apenas linhas que não possuem valores NULL.

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

SELECT * FROM `members`;

A execução do 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 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 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL 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`;

A execução da consulta acima nos fornece os seguintes resultados.

COUNT(contact_number)
7

Nota: Valores NULL não foram incluídos

O que não é?

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

Condição NÃO Operaresultado
Verdadeiro Falso
Falso Verdadeiro

Por que usar NÃO nulo?

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 que possuem o 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 sobre os quais nossos dados operam.

Valores NÃO NULOS

Suponhamos que queremos criar uma tabela com determinados 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');

Executando o script acima em MySQL workbench dá o seguinte erro-

Valores NÃO NULOS

Palavras-chave NULAS

NULL também pode ser usado como 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 fins. A sintaxe básica quando null é usado como palavra-chave é a seguinte

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

AQUI

  • "É NULO é a palavra-chave que realiza a comparação booleana. Retorna verdadeiro se o valor fornecido for NULL e falso se o valor fornecido não for NULL.
  • "NÃO NULO"é a palavra-chave que realiza a comparação booleana. 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 seja nulo. Podemos executar uma consulta como

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

A execução da consulta acima fornece apenas registros onde o número de contato não é nulo.

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

SELECT * FROM `members` WHERE contact_number IS NULL;

A execução da 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 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

Comparando valores nulos

Lógica de três valores – realizar operações booleanas em condições que envolvem NULL pode retornar “Desconhecido”, “Verdadeiro” ou “Falso”.

Por exemplo, nos usando a palavra-chave “IS NULL” ao fazer operações de comparação envolvendo NULO pode retornar verdadeiro or falso. Usando outros operadores de comparação retorna “Desconhecido” (NULO).

Suponha que você compare o número cinco com 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 espaço reservado de valor para campos opcionais da tabela.
  • 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 valores booleanos e é avaliada como verdadeira se o valor booleano for falso e falsa 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.