Cours SQL définition des tables, tutoriel & guide de travaux pratiques en pdf.
DATE ET HEURE
– le type DATE de la norme SQL2 comprend seulement une date en format YYYY-MM-DD ;
– le type TIME de la norme SQL2 comprend seulement une heure en format HH:MM:SS ;
– le type TIMESTAMP de la norme SQL2 comprend la date et l’heure
– en format YYYY-MM-DD HH:MM:SS.ffffff, où ffffff représente une fraction de seconde ;
– le type DATE d’Oracle est presque équivalent au type TIMESTAMP de SQL2 ;
il comprend la date et l’heure YYYY-MM-DD HH:MM:SS, mais sans fraction de seconde ; la valeur d’une date varie entre le 1er janvier 4712 avant J-C et 31 décembre 4712 après J-C.
– la date sous Oracle est affichée selon le format donné par le paramètre global NLS_DATE_FORMAT ;
– il existe plusieurs fonctions pour manipuler des dates en Oracle ; exemple : to_date(’29-02-2000′,’DD-MM-YYYY’) retourne la valeur de la date 29 février 2000 selon le type DATE d’Oracle.
Définition des tables
Notation utilisée pour décrire la syntaxe du langage SQL
• MOT_CLÉ : mot réservé du langage SQL ;
• <symbole terminal> : peut être remplacé par un identificateur ou une constante (nombre, chaîne de caractère, etc) ;
• «symbole non terminal» : doit être remplacé par sa définition ;
• ::= : définition d’un symbole non terminal ;
• « { » et « } » : équivalent des parenthèses en mathématiques ;
• + : une ou plusieurs occurrences ;
• * : zéro ou plusieurs occurrences ;
• [ élément optionnel ]
• | : choix entre plusieurs options
Définition des attributs
«liste-attributs» ::= «attributs» {, «attributs» }*
«attribut» ::= < nom-attribut > < type > [DEFAULT < expression > ]
[NOT NULL] [CHECK ( < condition > )]
• la valeur par défaut est utilisée si la valeur de l’attribut n’est pas spécifiée lors de la création d’un tuple ;
• la condition doit être vérifiée lors de la création ou de la mise à jour d’un tuple ;
• NOT NULL : la valeur de l’attribut ne peut contenir la valeur spéciale NULL ;
• exemples de condition
– < nom-attribut > { = | > | >= | … } « expression »
-< nom-attribut >[IN] (« liste-valeurs »)
-« condition » { [AND] | [OR] } « condition »
-NOT « condition »
– plusieurs autres (voir manuel Oracle).
Définition des contraintes
«liste-contraintes» ::=
« contrainte » {, « contrainte » }*
«contrainte» ::=
«cle-primaire» | «cle-unique» | «cle-etrangere»
Clé primaire
«cle-primaire» ::= CONSTRAINT <nom-contrainte> PRIMARY KEY
(«liste-noms-attribut»)
«liste-noms-attribut»» ::= <nom-attribut> {, <nom-attribut> }*
• <nom-attribut> sont ceux définis dans la table
• il ne peut y avoir deux tuples avec les mêmes valeurs pour les attributs de la clé primaire ;
• on peut définit une seule clé primaire pour une table ;
• la valeur d’un attribut d’une clé primaire ne peut être NULL dans un tuple.
Clé unique
«cle-unique» ::= CONSTRAINT <nom-contrainte> UNIQUE ( «liste-noms-attribut» )
«liste-noms-attribut» ::= <nom-attribut> {, <nom-attribut> }*
• <nom-attribut> sont ceux définis dans la table
• il ne peut y avoir deux tuples dans la table avec les mêmes valeurs pour les attributs de la clé unique ;
• on peut définir plusieurs clés uniques pour une table ;
• un attribut d’une clé unique peut être NULL, toutefois, la combinaison de tous les attributs non NULL doit être unique.
Clé étrangère
«cle-étrangère» ::= CONSTRAINT < nom-contrainte >
FOREIGN KEY («liste-attributs»)
REFERENCES < nom-table-referencee >
[ («liste-nom-attributs») ]
[ON DELETE CASCADE]
«liste-noms-attribut»» ::= <nom-attribut> {, <nom-attribut> }*
• <nom-attribut> sont ceux définis dans la table
• pour chaque tuple de la table dont les attributs de clé étrangère sont tous différents de [NULL], il doit exister un tuple dans < nom-table-référencée > avec la même valeur pour «liste-attributs » ;
• ON DELETE CASCADE : si un tuple dans < nom-table-référencée > est supprimé, tous les tuples de la table qui le référence sont aussi supprimés.
Il y a plusieurs autres triggers possibles prévu par le langage SQL
[ON DELETE SET NULL],
[ON DELETE SET DEFAULT],
[ON UPDATE CASCADE] …
• Les clauses [ON DELETE …] et [ON UPDATE …] servent à maintenir l’intégrité référentielle
Ajout d’attributs
«ajout-attribut» ::= ADD ( «liste-attributs» )
• ajoute les attributs de la liste à la table ;
• pour chaque ligne les attributs ont la valeurs null ou la nouvelle valeur par defaut s’il y a lieu ;
• si la table contient déjà des lignes, on ne peut ajouter un attribut avec la contrainte not null évidemment
Modification d’attributs
«modification-attribut»::= MODIFY ( «liste-attributs» )
• modifie le type, la valeur par défaut ou l’option NULL or NOT NULL des attributs de la liste ;
• on spécifie seulement les parties à modifier ;
• pour modifier le type, la valeur de chaque attribut doit être NULL pour tous les tuples de la table ;
• pour spécifier NOT NULL, il faut que l’attribut satisfasse déjà cette condition.
• Oracle accepte d’allonger la dimension d’une colonne sans que celle-ci soit vide
ALTER TABLE employe MODIFY ( plusHautDiplome VARCHAR(5) , idRAMQ DEFAULT ‘ZZZZ99999999’ ) ;
img class= »alignleft wp-image-110541 size-full » src= »https://clicours.com/wp-content/uploads/2020/01/downloadicon.png » alt= »Cours gratuit » width= »50″ height= »46″ />