createtableUnsignedDemoWithPositiveValue-&"/> createtableUnsignedDemoWithPositiveValue-&">

Maison  >  Article  >  base de données  >  Que signifie « non signé » dans MySQL et quand l'utiliser ?

Que signifie « non signé » dans MySQL et quand l'utiliser ?

王林
王林avant
2023-09-17 15:29:021526parcourir

MySQL 中的“unsigned”是什么意思以及何时使用它?

"Non signé" dans MySQL est un type de données. Chaque fois que nous écrivons un nombre non signé dans une colonne, cela signifie que vous ne pouvez pas insérer de nombres négatifs. Supposons que pour de très grands nombres, vous puissiez utiliser du type non signé.

La plage maximale des entiers non signés est 4294967295.

Note: If you insert negative value you will get a MySQL error.

Voici un exemple de démonstration de types non signés. Créons d'abord un tableau avec une colonne "non signée". Vous trouverez ci-dessous la requête qui crée la table -

mysql> create table UnsignedDemoWithPositiveValue
   -> (
   -> Distance int unsigned
   -> );
Query OK, 0 rows affected (0.86 sec)

Si vous essayez d'insérer une valeur de limite supérieure non signée de 4294967295, cela générera une erreur car la valeur est hors plage.

Insérez des valeurs hors plage.

mysql> insert into UnsignedDemoWithPositiveValue values(4294967296);
ERROR 1264 (22003): Out of range value for column 'Distance' at row 1

Dans l'exemple ci-dessus, j'ai inséré 4294967296, qui est hors de portée et génère donc une erreur.

Maintenant, j'insère une autre valeur 4294967295 dans le tableau.

mysql> insert into UnsignedDemoWithPositiveValue values(4294967295);
Query OK, 1 row affected (0.30 sec)

Ci-dessus, vous pouvez voir que la requête a été exécutée avec succès.

Maintenant, regardons un autre exemple. Si j'insère des enregistrements négatifs, j'obtiens l'erreur suivante -

mysql> insert into UnsignedDemoWithPositiveValue values(-124);
ERROR 1264 (22003): Out of range value for column 'Distance' at row 1

Je n'insérerai désormais que les valeurs positives avec la valeur 124. La requête est la suivante -

mysql> insert into UnsignedDemoWithPositiveValue values(124);
Query OK, 1 row affected (0.86 sec)

Comme indiqué ci-dessus, la requête est exécutée avec succès.

Utilisons l'instruction select pour afficher les enregistrements. La requête est la suivante -

mysql> select *from UnsignedDemoWithPositiveValue;

Voici le résultat -

+------------+
| Distance   |
+------------+
| 4294967295 |
| 124        |
+------------+
2 rows in set (0.00 sec)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer