Maison > Article > base de données > Quel est le meilleur moyen d'insérer une chaîne NULL ou vide dans MySQL ?
Dans innoDB, NULL prend moins de place qu'une chaîne vide. De plus, la longueur NULL est null et la longueur d'une chaîne vide est 0.
Pour comprendre cela, créez un tableau à l'aide de la commande create comme indiqué ci-dessous Comme suit -
mysql> CREATE table DemoEmptyAndNULL -> ( -> Message varchar(100) -> ); Query OK, 0 rows affected (0.49 sec)
Une fois la table créée avec succès, insérez un enregistrement vide dans la table via la commande suivante commande d'insertion qui est la suivante -
mysql> INSERT into DemoEmptyAndNULL values(' '); Query OK, 1 row affected (0.17 sec)
Après avoir inséré les enregistrements, nous pouvons utiliser la commande select pour afficher tous les enregistrements qui est la suivante -
mysql> SELECT * from DemoEmptyAndNULL;
Après l'exécution de la requête ci-dessus, le résultat suivant est obtenu -
+---------+ | Message | +---------+ | | +---------+ 1 row in set (0.00 sec)
La syntaxe pour vérifier la longueur d'une chaîne vide à l'aide de la fonction intégrée count est la suivante Follow-
select count(column_name) from yourTableName;
La syntaxe ci-dessus est utilisée pour obtenir la longueur d'une chaîne vide qui est donnée telle quelle comme suit-
mysql> select count(message) from DemoEmptyAndNULL;
Après avoir exécuté la requête ci-dessus, le résultat est le suivant-
+----------------+ | count(message) | +----------------+ | 1 | +----------------+ 1 row in set (0.06 sec)
De la sortie ci-dessus, il s'agit clair que le caractère vide La longueur de la chaîne est 1.
Maintenant, nous allons vérifier la longueur de NULL. Premièrement, les enregistrements insérés dans la table sont supprimé à l'aide de la commande delete comme ci-dessous-
mysql> delete from DemoEmptyAndNULL where message=' '; Query OK, 1 row affected (0.19 sec)
La requête suivante est utilisée pour vérifier s'il n'y a aucun enregistrement dans la table actuelle
mysql> SELECT * from DemoEmptyAndNULL; Empty set (0.00 sec)
Maintenant, l'enregistrement avec une valeur nulle est inséré dans la table comme ci-dessous-
mysql> INSERT into DemoEmptyAndNULL values(); Query OK, 1 row affected (0.18 sec)
L'enregistrement est affiché à l'aide de la commande select et le résultat obtenu est le suivant :
+---------+ | Message | +---------+ | NULL | +---------+ 1 row in set (0.00 sec)
Maintenant, il n'y a qu'un seul enregistrement avec une valeur nulle dans la table. Pour connaître sa longueur, exécutez la requête suivante : Utilisation de -
mysql> select count(message) from DemoEmptyAndNULL;
Ce qui suit est le résultat de la requête ci-dessus -
+----------------+ | count(message) | +----------------+ | 0 | +----------------+ 1 row in set (0.00 sec)
La sortie ci-dessus signifie que le nombre est 0 (valeur nulle).
Vérifions la version de MySQL.
mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.06 sec)
Il est donc préférable que les bases de données utilisent des chaînes vides, car autoriser les valeurs NULL oblige le système à le faire Travail supplémentaire et ne fournit pas les données que vous recherchez. Cependant, NULL ne renvoie pas Toute exception se produit lors de l’exécution de la fonction count().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!