Partie I
SQL de base
50
© Éditions Eyrolles
Restrictions
Pour l’heure, il n’est pas possible de modifier une table en utilisant une requête (dans la clause
SET) portant sur cette même table.
Dates et intervalles
Le tableau suivant résume les principales opérations possibles entre des colonnes de type dateheure.
Considérons la table suivante :
CREATE TABLE Pilote
(brevet VARCHAR(6), nom VARCHAR(20), dateNaiss DATETIME, dernierVol DATE,
dateEmbauche DATETIME, prochainVolControle DATETIME,
nombreJoursNaisBoulot INTEGER(5),
intervalleNaisBoulot Decimal (20,6), intervalleVolExterieur
Decimal (10,6),
intervalleEntreVols Decimal (10,6), intervalleEmbaucheControle
TIME,
compa VARCHAR(4), CONSTRAINT pk_Pilote PRIMARY KEY(brevet));
À l’insertion du pilote 'Thierry Albaric' de la compagnie de code 'AF', initialisons sa date de
naissance (25 mars 1967), la date de son dernier vol (30 octobre 2005), sa date d’embauche (à
celle du jour) et la date de son prochain contrôle en vol (13 novembre 2005, 15h30).
INSERT INTO Pilote VALUES
('PL-1', 'Thierry Albaric','1967-03-25','2005-10-30', SYSDATE(),
'2005-11-13 15:30:00', NULL, NULL, NULL, NULL, NULL, 'AF');
Les mises à jour par UPDATE sur cet enregistrement vont consister, sur la base de ces quatre
dates, à calculer les intervalles illustrés à la figure suivante :
Tableau 2-10 Opérations entre colonnes date-heure
Opérande 1
Opérateur
Opérande 2
Résultat
DATE | DATETIME
+ ou -
Interval
DATE | DATETIME
DATE | DATETIME
+ ou -
INTEGER
DATE | DATETIME
TIME
+ ou -
TIME
TIME
TIME
+ ou -
INTEGER
TIME
Web
SQL de base
50
© Éditions Eyrolles
Restrictions
Pour l’heure, il n’est pas possible de modifier une table en utilisant une requête (dans la clause
SET) portant sur cette même table.
Dates et intervalles
Le tableau suivant résume les principales opérations possibles entre des colonnes de type dateheure.
Considérons la table suivante :
CREATE TABLE Pilote
(brevet VARCHAR(6), nom VARCHAR(20), dateNaiss DATETIME, dernierVol DATE,
dateEmbauche DATETIME, prochainVolControle DATETIME,
nombreJoursNaisBoulot INTEGER(5),
intervalleNaisBoulot Decimal (20,6), intervalleVolExterieur
Decimal (10,6),
intervalleEntreVols Decimal (10,6), intervalleEmbaucheControle
TIME,
compa VARCHAR(4), CONSTRAINT pk_Pilote PRIMARY KEY(brevet));
À l’insertion du pilote 'Thierry Albaric' de la compagnie de code 'AF', initialisons sa date de
naissance (25 mars 1967), la date de son dernier vol (30 octobre 2005), sa date d’embauche (à
celle du jour) et la date de son prochain contrôle en vol (13 novembre 2005, 15h30).
INSERT INTO Pilote VALUES
('PL-1', 'Thierry Albaric','1967-03-25','2005-10-30', SYSDATE(),
'2005-11-13 15:30:00', NULL, NULL, NULL, NULL, NULL, 'AF');
Les mises à jour par UPDATE sur cet enregistrement vont consister, sur la base de ces quatre
dates, à calculer les intervalles illustrés à la figure suivante :
Tableau 2-10 Opérations entre colonnes date-heure
Opérande 1
Opérateur
Opérande 2
Résultat
DATE | DATETIME
+ ou -
Interval
DATE | DATETIME
DATE | DATETIME
+ ou -
INTEGER
DATE | DATETIME
TIME
+ ou -
TIME
TIME
TIME
+ ou -
INTEGER
TIME
Web
