Type de données-> est une abstraction d'une classification de données avec les mêmes attributs et propriétés.
Par exemple :
Une chaîne est une chaîne composée de caractères... Dans les ordinateurs, les sous-chaînes peuvent être divisées et de nouveaux caractères peuvent être ajoutés à la fin de la chaîne. Cependant, de telles opérations ne peuvent fonctionner que sur des données de chaîne, pas sur des données de chaîne. .
Le type numérique, les chiffres arabes auxquels nous sommes les plus exposés, peut être utilisé pour les opérations arithmétiques, les opérations logiques et d'autres opérations
MySQL prend en charge plusieurs types, qui peuvent être grossièrement divisés en trois catégories : les types numériques, date/heure et chaîne (caractère).
1. Pour les types entiers, vous pouvez limiter leur longueur, le format est le suivant :
整数类型[(M)] [SIGNED | UNSIGNED | ZEROFILL]
M est le nombre de chiffres du nombre. Par exemple, TINYINT(3) ne peut stocker que trois chiffres, et le nombre de chiffres ne doit pas dépasser la plage qu'il peut représenter
SIGNÉ : la valeur par défaut est le numéro signé
NON SIGNÉ : spécifié comme numéro non signé
ZEROFILL : Lorsque les bits M ne sont pas satisfaits, le devant est rempli de 0 et devient un nombre non signé
2. Pour les nombres à virgule flottante, le nombre total de chiffres et le nombre de décimales peuvent être limités
(FLOAT|DOUBLE)[(M,D)] [SIGNED | UNSIGNED | ZEROFILL]
M est le nombre total de chiffres, D est le nombre de chiffres après la virgule décimale
ZEROFILL a le même effet que UNSIGNED pour les types à virgule flottante
MariaDB [mydb]> DESC t1; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | c1 | float(5,2) | YES | | NULL | | | c2 | double(10,3) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) MariaDB [mydb]> INSERT INTO t1 VALUES(23.5,12.34566777); Query OK, 1 row affected (0.01 sec) MariaDB [mydb]> SELECT * FROM t1; //这里可以看到,在其后补了0 +-------+--------+ | c1 | c2 | +-------+--------+ | 23.50 | 12.346 | +-------+--------+ 1 row in set (0.00 sec)
Abréviation du format : Format de la date et de l'heure, en plus du format standard, il prend également en charge le format libre.
Créez un tableau de test avec la structure suivante :
MariaDB [mydb]> desc datetable; +-------+-----------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------+------+-----+-------------------+-----------------------------+ | c1 | date | YES | | NULL | | | c2 | time | YES | | NULL | | | c3 | datetime | YES | | NULL | | | c4 | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | +-------+-----------+------+-----+-------------------+-----------------------------+
Pour le type DATE : AA-MM-JJ, AAMMJJ, AAAA/MM/JJ
MariaDB [mydb]> INSERT INTO datetable(c1) VALUES('2018-01-01'),('18-01-01'), -> ('180101'),('2018/01/01'),(180101); Query OK, 5 rows affected (0.01 sec) Records: 5 Duplicates: 0 Warnings: 0 MariaDB [mydb]> SELECT c1 FROM datetable; +------------+ | c1 | +------------+ | 2018-01-01 | | 2018-01-01 | | 2018-01-01 | | 2018-01-01 | | 2018-01-01 | +------------+ 5 rows in set (0.00 sec)
Pour le type TIME : 'D HH:MM:SS', 'HH:MM:SS', 'HH:MM', 'D HH:MM', 'D HH', 'SS', 'HHMMSS'
D signifie jour, soit TIME+D*24
MariaDB [mydb]> INSERT INTO datetable(c2) VALUES -> ('12:20:20'),('1 12:20:20'), -> ('12:20'),('1 12'),('20'),('122020'), -> (122020); Query OK, 7 rows affected (0.03 sec) Records: 7 Duplicates: 0 Warnings: 0 MariaDB [mydb]> SELECT c2 FROM datetable; +----------+ | c2 | +----------+ | 12:20:20 | | 36:20:20 | | 12:20:00 | | 36:00:00 | | 00:00:20 | | 12:20:20 | | 12:20:20 | +----------+ 7 rows in set (0.00 sec)
Pour les deux formats DATETIME et TIMESTAMP, ce sont les abréviations du format d'abréviation d'heure ci-dessus, par exemple :
20180101122020 -> '2018-01-01 12:20:20'
Pour le format TIMESTAMP, qui est plus couramment utilisé, il faut dire qu'il stocke le nombre de millisecondes depuis '1970-01-01 00:00:00' jusqu'à l'heure de stockage. Sa valeur par défaut peut être CURRENT_TIMESTAMP ou son synonyme. : CURRENT_TIMESTAMP() , MAINTENANT(), LOCALTIME, LOCALTIME(), LOCALTIMESTAMP,LOCALTIMESTAMP()
Les types CHAR et VARCHAR sont similaires, mais ils sont enregistrés et récupérés différemment. Ils diffèrent également en termes de longueur maximale et de préservation ou non des espaces de fin. Aucune conversion de cas n'est effectuée pendant le stockage ou la récupération.
Les classes BINARY et VARBINARY sont similaires à CHAR et VARCHAR, sauf qu'elles contiennent des chaînes binaires au lieu de chaînes non binaires. Autrement dit, ils contiennent des chaînes d'octets plutôt que des chaînes de caractères. Cela signifie qu'ils n'ont pas de jeu de caractères et que le tri et la comparaison sont basés sur la valeur numérique des octets de valeur de colonne.
Un BLOB est un gros objet binaire pouvant contenir une quantité variable de données :
Il existe 4 types de BLOB : TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB. Ils ne diffèrent que par la longueur maximale pendant laquelle ils peuvent contenir une valeur.
Il existe 4 types de TEXTE : TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT. Ceux-ci correspondent à 4 types de BLOB, avec la même longueur maximale et les mêmes exigences de stockage.
Type d'énumération : ENUM('value1','value2',...)
Octets de stockage : comme il stocke les numéros d'éléments, les éléments 0 à 255 n'occupent qu'un octet, tandis que 255 à 65 535 occupent deux éléments
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!