Dans la phase de modélisation de la base de données, une fois le schéma logique complété, nous sommes rendus à entrer les types de données pour chacun des champs. Il s'agit de préciser si les données entrées seront des nombres, des chaînes de caractères, des dates, etc.
Voici les principaux types de données que vous rencontrerez. Une liste complète est présentée sur le site Web de MySQL.
| Type | Description | Intervalle permis | Doit-on spécifier la taille ? |
|---|---|---|---|
| INT |
Nombre entier Synonymne : INTEGER |
de -2 147 483 648 à 2 147 483 647 | Non |
| TINYINT | Nombre entier | de -128 à 127 | Non TINYINT(1) permet de stocker une valeur booléenne. Notez que la taille 1 affecte l'affichage seulement. Elle n'a aucun effet sur l'intervalle de valeurs permises. |
| BIGINT | Nombre entier | de -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 | Non |
| DECIMAL(M, D) |
Nombre avec décimales - représentation exacte Utiliser pour les calculs précis et pour les valeurs monétaires |
M = nombre total de chiffres avant ET après le point, sans compter le point décimal ni le signe D = nombre de chiffres après le point Maximum 65 chiffres pour M Maximum 30 chiffres pour D |
Oui sinon, c'est comme si on entrait (10,0) |
| DOUBLE(M, D) |
Nombre avec décimales - représentation avec points flottants Utiliser pour calculs scientifiques |
de -1.7976931348623157E+308 à -2.2250738585072014E-308, 0, et de 2.2250738585072014E-308 à 1.7976931348623157E+308 |
Oui sinon permettra la valeur maximale |
| FLOAT(M, D) |
Nombre avec décimales - représentation avec points flottants Pourrait causer des problèmes lors de calculs |
de -3.402823466E+38 à -1.175494351E-38, 0, et de 1.175494351E-38 à 3.402823466E+38 |
Oui sinon permettra la valeur maximale |
| VARCHAR | Chaîne de caractères |
MySQL 5.0.2 et moins : de 0 à 255 caractères MySQL 5.0.3 et plus : de 0 à 65 535 caractères théoriquement, la limite étant en fonction du jeu de caractères. |
Oui |
| TEXT | Longue chaîne de caractères | au maximum 216 - 1, ou 65 535 caractères (si chaque caractère est encodé sur un octet) | Non |
| LONGTEXT | Longue chaîne de caractères | au maximum 232 - 1, ou 4 294 967 295 caractères (si chaque caractère est encodé sur un octet) | Non |
| DATETIME |
Date, incluant l'heure Il est à noter que le format de stockage de la date est indépendant du format d'affichage. |
de '1000-01-01 00:00:00' à '9999-12-31 23:59:59' | Non |
| DATE |
Date, sans l'heure Il est à noter que le format de stockage de la date est indépendant du format d'affichage. |
de '1000-01-01' à '9999-12-31' | Non |
| TIME | Heure, sans la date | de '-838:59:59' à '838:59:59' | Non |
| TIMESTAMP |
Date et heure, pouvant prendre automatiquement la date et l'heure actuelles Sous MySQL < 5.6, la date et l'heure actuelles seront automatiquement enregistrées dans un champ TIMESTAMP lors d'un ajout et seront mises à jour lors d'une modification si le champ reçoit la valeur NULL. Sous MySQL >= 5.6, ce sera également le cas mais seulement si la variable système explicit_defaults_for_timestamp est désactivée dans le fichier my.ini (ou my.cnf). if the explicit_defaults_for_timestamp system variable is disabled, you can initialize or update any TIMESTAMP (but not DATETIME) column to the current date and time by assigning it a NULL value, unless it has been defined with the NULL attribute to permit NULL values 1 Il est possible dans tous les cas d'ajouter une clause lors de la création de la table pour que le champ prenne la date actuelle par défaut. CREATE TABLE ... ( ... ... ) |
de ’1970-01-01 00:00:01′ UTC à ’2038-01-09 03:14:07′ UTC | Non |
« Chapter 11 Data Types ». MySQL. http://dev.mysql.com/doc/refman/5.7/en/data-types.html
« 11.1.1 Numeric Type Overview ». MySQL. http://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html
« 11.2.5. Numeric Type Attributes ». MySQL. http://dev.mysql.com/doc/refman/5.7/en/numeric-type-attributes.html
« Automatic Initialization and Updating for TIMESTAMP and DATETIME ». MySQL. https://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
« Vous êtes arrivés au max des id INT 2 147 483 647 ». Efficience IT. https://www.itefficience.com/article/arrives-au-max-des-id-int-2147483647
▼Publicité