© Éditions Eyrolles
41
chapitre n° 2
Manipulation des données
Le script de la création de la table et des insertions est le suivant (même remarque pour les
parenthèses).
Dates et heures
Nous avons décrit au chapitre 1 les caractéristiques générales des types MySQL pour stocker
des éléments de type date/heure. Étudions maintenant la manipulation de ces types. Nous
verrons que MySQL peut les considérer soit en tant que chaînes de caractères soit comme
numériques.
Formats
Concernant les types DATETIME, DATE et TIMESTAMP les formats possibles sont les
suivants :
q
Chaînes de caractères 'YYYY-MM-DD HH:MM:SS' ou 'YY-MM-DD HH:MM:SS' (pour les
colonnes DATE 'YYYY-MM-DD' ou 'YY-MM-DD'). Tout autre délimiteur est autorisé comme :
'2005.12.31 11%30%45' (pour les colonnes DATE, '65.12.31', '65/12/31', et
'65@12@31' sont équivalents et désignent tous le réveillon de l’année 1965).
q
Considérés comme chaînes de caractères dans les formats suivants : 'YYYYMMDDHHMMSS' ou 'YYMMDDHHMMSS' (pour les DATE 'YYYYMMDD' ou 'YYMMDD') en
supposant que la chaîne ait un sens en tant que date. Ainsi '19650205063000' est interprété comme le 5 février 1965 à 6 heures et 30 minutes. Par contre '19650255' n’a pas de
sens du fait du jour (il sera interprété comme '0000-00-00').
Figure 2-3 Table avec une colonne SET
Cursus
num
nom
{diplomes}
E1
F. Brouard
BTS, Licence
E2
F. Degrelle
Licence, INSA , DUT
SET
BTS, DUT, Licence INSA
Tableau 2-5 Insertions avec un SET
Création
Insertions (deux bonnes une illicite)
CREATE TABLE Cursus
(num CHAR(4), nom CHAR(15), diplomes
SET
,
CONSTRAINT pk_Cusus PRIMARY KEY(num));
mysql> INSERT INTO Cursus VALUES ('E1',
'F. Brouard',
);
mysql> INSERT INTO Cursus VALUES ('E2',
'F. Degrelle',
;
mysql> INSERT INTO Cursus VALUES ('E3',
'Bug',
);
ERROR 1265 (01000): Data truncated for
column 'diplomes' at row 1
('BTS','DUT','Licence','INSA')
('BTS',Licence')
'Licence,INSA,DUT'
('BTS,INSA,ENAC')
Précédent

- 63/418

Suivant