Partie I
SQL de base
28
© Éditions Eyrolles
q
La directive UNSIGNED permet de considérer seulement des valeurs positives.
q
La directive ZEROFILL complète par des zéros à gauche une valeur (par exemple : soit un
INTEGER(5) contenant 4, si ZEROFILL est appliqué, la valeur extraite sera « 00004 »).
En déclarant une colonne ZEROFILL, MySQL l’affecte automatiquement aussi à UNSIGNED.
Synonymes et alias
• INT est synonyme de INTEGER.
• DOUBLE PRECISION et REAL sont synonymes de DOUBLE.
• DEC NUMERIC et FIXED sont synonymes de DECIMAL.
• SERIAL est un alias pour BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
• Dans toute instruction SQL, écrivez la virgule avec un point (7/2 retourne 3.5).
Dates et heures
Les types suivants permettent de stocker des moments ponctuels (dates, dates et heures,
années, et heures). Les fonctions NOW() et SYSDATE() retournent la date et l’heure courantes.
Dans une procédure ou un déclencheur SYSDATE est réévaluée en temps réel, alors que NOW
désignera toujours l’instant de début de traitement.
Tableau 1-6 Types de données dates et heures
Type
Description
Commentaire pour une colonne
DATE
Dates du 1 er janvier de l’an 1000 au 31
décembre 9999 après J.-C.
Sur 3 octets. L’affichage est au format
‘YYYY-MM-DD’.
DATETIME
Dates et heures (de 0 h de la première
date à 23 h 59 minutes 59 secondes de
la dernière date).
Sur 8 octets. L’affichage est au format
‘YYYY-MM-DD HH:MM:SS’.
YEAR[(2|4)]
Sur 4 positions : de 1901 à 2155
(incluant 0000). Sur 2 positions : de 70 à
69 (désignant 1970 à 2069).
Sur 1 octet ; l’année est considérée sur 2
ou 4 positions (4 par défaut). Le format
d’affichage est ‘YYYY’.
TIME
Heures de -838 h 59 minutes
59 secondes à 838 h 59 minutes
59 secondes.
L’heure au format ‘HHH:MM:SS’ sur
3 octets.
TIMESTAMP
Instants du 1 er Janvier 1970 0 h 0 minute
0 seconde à l’année 2037.
Estampille sur 4 octets (au format
‘YYYY-MM-DD HH:MM:SS’) ; mise à
jour à chaque modification sur la table.
SQL de base
28
© Éditions Eyrolles
q
La directive UNSIGNED permet de considérer seulement des valeurs positives.
q
La directive ZEROFILL complète par des zéros à gauche une valeur (par exemple : soit un
INTEGER(5) contenant 4, si ZEROFILL est appliqué, la valeur extraite sera « 00004 »).
En déclarant une colonne ZEROFILL, MySQL l’affecte automatiquement aussi à UNSIGNED.
Synonymes et alias
• INT est synonyme de INTEGER.
• DOUBLE PRECISION et REAL sont synonymes de DOUBLE.
• DEC NUMERIC et FIXED sont synonymes de DECIMAL.
• SERIAL est un alias pour BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
• Dans toute instruction SQL, écrivez la virgule avec un point (7/2 retourne 3.5).
Dates et heures
Les types suivants permettent de stocker des moments ponctuels (dates, dates et heures,
années, et heures). Les fonctions NOW() et SYSDATE() retournent la date et l’heure courantes.
Dans une procédure ou un déclencheur SYSDATE est réévaluée en temps réel, alors que NOW
désignera toujours l’instant de début de traitement.
Tableau 1-6 Types de données dates et heures
Type
Description
Commentaire pour une colonne
DATE
Dates du 1 er janvier de l’an 1000 au 31
décembre 9999 après J.-C.
Sur 3 octets. L’affichage est au format
‘YYYY-MM-DD’.
DATETIME
Dates et heures (de 0 h de la première
date à 23 h 59 minutes 59 secondes de
la dernière date).
Sur 8 octets. L’affichage est au format
‘YYYY-MM-DD HH:MM:SS’.
YEAR[(2|4)]
Sur 4 positions : de 1901 à 2155
(incluant 0000). Sur 2 positions : de 70 à
69 (désignant 1970 à 2069).
Sur 1 octet ; l’année est considérée sur 2
ou 4 positions (4 par défaut). Le format
d’affichage est ‘YYYY’.
TIME
Heures de -838 h 59 minutes
59 secondes à 838 h 59 minutes
59 secondes.
L’heure au format ‘HHH:MM:SS’ sur
3 octets.
TIMESTAMP
Instants du 1 er Janvier 1970 0 h 0 minute
0 seconde à l’année 2037.
Estampille sur 4 octets (au format
‘YYYY-MM-DD HH:MM:SS’) ; mise à
jour à chaque modification sur la table.
