Maison  >  Article  >  base de données  >  Types numériques dans les types de colonnes dans le didacticiel MySQL

Types numériques dans les types de colonnes dans le didacticiel MySQL

藏色散人
藏色散人avant
2018-11-22 16:44:372931parcourir

Cet article vous présente principalement les points de connaissances pertinents sur le type de colonne numérique dans MySQL. J'espère qu'il sera utile aux amis dans le besoin !

Tutoriel de référence recommandé : "Tutoriel mysql"

Type de colonne (type de données) numériques dans les types de colonnes dans le didacticiel MySQL>

Le soi-disant type de colonne fait en fait référence à Le type de données, c'est-à-dire une classification unifiée des données, du point de vue du système, consiste à pouvoir les gérer de manière unifiée et à mieux utiliser l'espace limité.

En SQL, les types de données sont divisés en trois grandes catégories : Type numérique, type de chaîne et type de date et d'heure.

Types numériques dans les types de colonnes dans le didacticiel MySQL

Pour les données numériques, elles peuvent être divisées en type entier et type décimal.

Type entiernumériques dans les types de colonnes dans le didacticiel MySQL>

En SQL, en raison de la problématique d'économie d'espace disque, le système subdivise le type entier en cinq catégories, à savoir :

  • tinyint : mini entier, utilise Types numériques dans les types de colonnes dans le didacticiel MySQL octet pour stocker les données (couramment utilisé) ;

  • smallint : petit entier, utilise Types numériques dans les types de colonnes dans le didacticiel MySQL octets pour stocker les données ;

  • mediumint : type entier moyen, utilise Types numériques dans les types de colonnes dans le didacticiel MySQL octets pour stocker les données ;

  • int : type entier standard, utilise Types numériques dans les types de colonnes dans le didacticiel MySQL octets pour stocker les données (couramment utilisé). );

  • bigint : grand entier, utilisant Types numériques dans les types de colonnes dans le didacticiel MySQL octets pour stocker les données.

Ensuite, entrez l'instruction SQL suivante pour tester :

-- 创建整型表create table my_int(
    int_Types numériques dans les types de colonnes dans le didacticiel MySQL tinyint,
    int_Types numériques dans les types de colonnes dans le didacticiel MySQL smallint,
    int_Types numériques dans les types de colonnes dans le didacticiel MySQL int,
    int_Types numériques dans les types de colonnes dans le didacticiel MySQL bigint
)charset utfTypes numériques dans les types de colonnes dans le didacticiel MySQL;

Types numériques dans les types de colonnes dans le didacticiel MySQL

Comme le montre l'image ci-dessus, nous avons réussi créémy_int table, puis insérez des données :

-- 插入数据insert into my_int values (Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL);insert into my_int values (&#Types numériques dans les types de colonnes dans le didacticiel MySQL9;a&#Types numériques dans les types de colonnes dans le didacticiel MySQL9;,&#Types numériques dans les types de colonnes dans le didacticiel MySQL9;b&#Types numériques dans les types de colonnes dans le didacticiel MySQL9;,&#Types numériques dans les types de colonnes dans le didacticiel MySQL9;c&#Types numériques dans les types de colonnes dans le didacticiel MySQL9;,&#Types numériques dans les types de colonnes dans le didacticiel MySQL9;d&#Types numériques dans les types de colonnes dans le didacticiel MySQL9;);insert into my_int values (Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL);

Types numériques dans les types de colonnes dans le didacticiel MySQL

Comme le montre la figure ci-dessus, grâce au type de colonne, nous pouvons limiter le type et la plage de longueur de les données insérées.

Quant à la raison pour laquelle une erreur hors plage est signalée lors de l'attribution d'une valeur à int_Types numériques dans les types de colonnes dans le didacticiel MySQL, c'est parce que le type numérique en SQL a un bit signé par défaut, c'est-à-dire qu'il est divisé en positif et négatif. Si nous devons utiliser des données non signées, nous devons déclarer le type de données nous-mêmes, c'est-à-dire ajouter le mot-clé unsigned lors de la déclaration du type de données. Par exemple :

-- 在 my_int 表中,添加 int_Types numériques dans les types de colonnes dans le didacticiel MySQL 字段,设置其数据类型为 tinyint unsignedalter table my_int add int_Types numériques dans les types de colonnes dans le didacticiel MySQL tinyint unsigned;

Types numériques dans les types de colonnes dans le didacticiel MySQL

Comme le montre l'image ci-dessus, l'ajout du champ int_Types numériques dans les types de colonnes dans le didacticiel MySQL est réussi et l'insertion des données continue :

-- 插入数据insert into my_int values (Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL);

Types numériques dans les types de colonnes dans le didacticiel MySQL

Comme le montre l'image ci-dessus, lorsque nous limitons tinyint à unsigned, nous pouvons déjà insérer n'importe quel entier entre 0~Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL ! Cependant, avec le recul, regardons de plus près l'image suivante :

Types numériques dans les types de colonnes dans le didacticiel MySQL

En observant l'image ci-dessus, nous retrouverons : Les données de chaque champ Le type sera suivi d’une paire de parenthèses contenant des nombres. Ces chiffres n'ont en réalité aucune signification particulière, ils représentent simplement la largeur d'affichage des données. En effet, on peut modifier la largeur d'affichage, mais cette modification ne changera pas la taille des données elles-mêmes.

La signification de la largeur d'affichage : lorsque les données ne sont pas suffisantes pour afficher la largeur, les données passeront automatiquement à la largeur d'affichage correspondante. Habituellement, elles doivent être associées à un <.> pour augmenter la largeur. Ne modifiez pas la taille de la valeur des données, c'est-à-dire utilisez 0 pour effectuer un remplissage nul, et le remplissage nul fera que la valeur deviendra automatiquement non signée. zerofill

Ensuite, exécutez l'instruction SQL suivante :

-- 在 my_int 表中,添加 int_Types numériques dans les types de colonnes dans le didacticiel MySQL 字段,设置其数据类型为 tinyint zerofillalter table my_int add int_Types numériques dans les types de colonnes dans le didacticiel MySQL(Types numériques dans les types de colonnes dans le didacticiel MySQL) tinyint zerofill;

Types numériques dans les types de colonnes dans le didacticiel MySQL

Insérez les données et testez :

-- 插入数据insert into my_int values (Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL);

Types numériques dans les types de colonnes dans le didacticiel MySQL

Comme le montre la figure ci-dessus, la signification du

zéro remplissage est de garantir le format des données.

Type décimalnumériques dans les types de colonnes dans le didacticiel MySQL>Type décimal, c'est-à-dire

type numérique avec point décimal ou plage au-delà du type entier.

En SQL, le type décimal se subdivise en deux types :

Type à virgule flottante et Type à virgule fixe, parmi lesquels :

  • Type à virgule flottante : virgule décimale flottante, précision limitée, précision facile à perdre

  • Type à virgule fixe : virgule décimale fixe, précision fixe, aucune perte de précision ;

Type Types numériques dans les types de colonnes dans le didacticiel MySQL : Type à virgule flottante

Les données à virgule flottante sont un type de données de précision, car après avoir dépassé la plage spécifiée, elles seront précises est perdu et l’arrondi est effectué automatiquement. Théoriquement, les types à virgule flottante sont divisés en deux types de précision :

  • : simple précision, qui prend Types numériques dans les types de colonnes dans le didacticiel MySQL octets pour stocker les données, et la plage de précision est d'environ Types numériques dans les types de colonnes dans le didacticiel MySQL chiffres ; float

  • double:双精度,占用 Types numériques dans les types de colonnes dans le didacticiel MySQL 个字节存储数据,精度范围大概为 Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL 位左右。

浮点型的使用方式:如果直接用float,则表示没有小数部分;如果用float(M,D),其中M代表总长度,D代表小数部分长度,M-D则为整数部分长度。

执行如下 SQL 语句创建浮点数表,进行测试:

-- 创建浮点数表create table my_float(
    fTypes numériques dans les types de colonnes dans le didacticiel MySQL float,
    fTypes numériques dans les types de colonnes dans le didacticiel MySQL float(Types numériques dans les types de colonnes dans le didacticiel MySQL0,Types numériques dans les types de colonnes dans le didacticiel MySQL),
    fTypes numériques dans les types de colonnes dans le didacticiel MySQL float(Types numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL)
)charset utfTypes numériques dans les types de colonnes dans le didacticiel MySQL;

在咱们向浮点数表my_float插入数据的时候,可以直接插入小数,也可以插入用科学计数法表示的数据。此外,插入浮点型数据时,整数部分是不能超出长度范围的,但是小数部分是可以超出长度范围的,系统会自动进行四舍五入的操作。特别是,如果浮点数是因为系统进位(四舍五入)导致整数部分超出指定的长度,那么系统是允许成立的。

-- 插入测试数据insert into my_float values (Types numériques dans les types de colonnes dans le didacticiel MySQL.Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLeTypes numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQL0.Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL,9999.99);insert into my_float values (Types numériques dans les types de colonnes dans le didacticiel MySQL0Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL0,Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL9.99,9999.99);insert into my_float values (Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL,Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL.99,99.99999);

Types numériques dans les types de colonnes dans le didacticiel MySQL

如上图所示,咱们的结论得到了验证。

第 Types numériques dans les types de colonnes dans le didacticiel MySQL 种:定点型

定点型数据,绝对的保证整数部分不会被四舍五入,也就是说不会丢失精度,但小数部分有可能丢失精度,虽然理论上小数部分也不会丢失精度。

执行如下 SQL 语句创建定点数表,以浮点数做对比,进行测试:

-- 创建定点数表create table my_decimal(
    fTypes numériques dans les types de colonnes dans le didacticiel MySQL float(Types numériques dans les types de colonnes dans le didacticiel MySQL0,Types numériques dans les types de colonnes dans le didacticiel MySQL),
    dTypes numériques dans les types de colonnes dans le didacticiel MySQL decimal(Types numériques dans les types de colonnes dans le didacticiel MySQL0,Types numériques dans les types de colonnes dans le didacticiel MySQL)
)charset utfTypes numériques dans les types de colonnes dans le didacticiel MySQL;

当咱们插入数据的时候,定点数的整数部分一定不能超出长度范围(进位也不可以),小数部分的长度则可以随意超出,没有限制,系统会自动进行四舍五入的操作:

-- 插入测试数据insert into my_decimal values (99999999.99,99999999.99);insert into my_decimal values (Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL9.99,Types numériques dans les types de colonnes dans le didacticiel MySQL0Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL.Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL);insert into my_decimal values (Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL.99,Types numériques dans les types de colonnes dans le didacticiel MySQL0Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL.Types numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQLTypes numériques dans les types de colonnes dans le didacticiel MySQL);

Types numériques dans les types de colonnes dans le didacticiel MySQL

如上图所示,咱们的结论同样得到了验证。

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