#Types de données courants
/*
Type numérique :
entier
décimal : nombre
à virgule fixe et
flottant
Type de caractère :
texte plus court : char, varchar
Texte plus long : texte, blob (données binaires plus longues)
type de date :
*/
# 1. Classification Entier
/*
:
tinyint, smallint, mediumint, int/integer, bigint
1 2 3 4 8
Caractéristiques :
① Si vous ne définissez pas non signé ou signé, la valeur par défaut est signée. Si vous souhaitez définir non signé, vous devez ajouter le mot-clé non signé. ② Si la valeur insérée
dépasse la plage de l'entier, une exception hors plage sera sera signalé et une valeur critique sera insérée. Valeur
③ Si la longueur n'est pas définie, il y aura une longueur par défaut.
La longueur représente la largeur maximale de l'écran. Si elle n'est pas suffisante, elle sera remplie de 0 sur la gauche, mais il faut l'utiliser avec zerofill !
*/
# 1. Comment définir non signé et signé
SUPPRIMER LA TABLE SI EXISTE tab_int;
CREATE TABLE tab_int(
t1 INT(7) ZEROFILL,
t2 INT(7) ZEROFILL
);
DESC tab_int;
INSÉRER DANS tab_int VALEURS(-123456);
INSERT INTO tab_int VALUES(-123456,-123456);
INSÉRER DANS tab_int VALEURS(2147483648,4294967296);
INSERT INTO tab_int VALUES(123,123);
SELECT * FROM tab_int;
# 2. Classification décimale
/*
:
1. Type à virgule flottante
float(M,D)
double(M,D)
2. Type à virgule fixe
dec(M,D)
decimal(M,D)
Caractéristiques:
①
M : partie entière + partie décimale
D : partie décimale
Si elle dépasse la plage, insérez une valeur critique
②
M et D peuvent être omis.
S'il est décimal, M est par défaut 10 et D par défaut 0.
S'il est float ou double, la précision sera déterminée en fonction de la précision de la valeur insérée.
③La précision du type à virgule fixe est élevée. Si la précision de la valeur insérée doit être élevée, comme le calcul de la devise, etc., envisagez de l'utiliser
*/
#test M et D
DROP TABLE tab_float;
CREATE TABLE tab_float(
f1 FLOAT,
f2 DOUBLE,
f3 DECIMAL
);
SELECT * FROM tab_float;
DESC tab_float ;
INSÉRER DANS tab_float VALUES(123.4523,123.4523,123.4523);
INSÉRER DANS tab_float VALUES(123.456,123.456,123.456);
INSÉRER DANS tab_float VALUES(123.4,123.4,123.4);
INSÉRER DANS tab_float VALUES(1523.4,1523.4,1523.4);
#Principe :
/*
Plus le type sélectionné est simple, mieux c'est, et plus le type qui peut enregistrer la valeur est petit, mieux c'est
*/
# 3. Type de caractère
/*
Texte plus court :
char
varchar
autre:
binaire et varbinary sont utilisés pour contenir
des énumérations binaires plus courtes sont utilisés pour contenir
des ensembles d'énumérations sont utilisés pour contenir des collections
Texte plus long :
texte
blob (binaire plus grand)
Caractéristiques:
La signification de l'écriture M Caractéristiques Consommation d'espace Efficacité
char char(M) Le nombre maximum de caractères peut être omis, la valeur par défaut est 1 Caractères de longueur fixe Relativement cher Élevé
varchar varchar(M) Le nombre maximum de caractères ne peut pas être omis. Les caractères de longueur variable sont plus économiques et plus faibles
*/
CREATE TABLE tab_char(
c1 ENUM('a','b','c')
);
INSÉRER DANS tab_char VALUES('a');
INSÉRER DANS tab_char VALUES('b');
INSÉRER DANS tab_char VALUES('c');
INSÉRER DANS tab_char VALUES('m');
INSÉRER DANS tab_char VALUES('A');
SELECT * FROM tab_set ;
CREATE TABLE tab_set(
s1 ENSEMBLE('a','b','c','d')
);
INSERT INTO tab_set VALUES('a');
INSERT INTO tab_set VALUES('A,B');
INSERT INTO tab_set VALUES('a,c,d');
# 4. Type de date
/*
Classification :
la date enregistre uniquement la date
l'heure enregistre uniquement l'heure
année enregistre uniquement l'année
datetime enregistre la date + l'heure
timestamp enregistre la date + l'heure
Caractéristiques:
Influencé par la plage d'octets, le fuseau horaire, etc.
datetime 8 1000——9999 n'est pas affecté par
l'horodatage 4 1970-2038 n'est pas affecté
*/
CREATE TABLE tab_date(
t1 DATETIME,
t2 TIMESTAMP
);
INSERT INTO tab_date VALUES(MAINTENANT(),MAINTENANT());
SELECT * FROM tab_date ;
AFFICHER LES VARIABLES COMME 'time_zone' ;
SET time_zone='+9:00';