8 3999 TG PA 02
169
Séquence 8
Langage de définition des données
Après avoir appris à récupérer, supprimer, modifier ou ajouter des enregistre-
ments, nous allons apprendre à manipuler leur contenant, les tables.
Il s’agit juste d’une sensibilisation pour vous indiquer que l’on peut le faire. Pas
question de creuser la théorie comme avec les requête sélection.
Capacités attendues
Savoir ajouter, modifier ou supprimer des tables
Contenu
Travaux dirigés 3
1. Créer une table .................................................................................... 170
1A. Rappel ....................................................................................................... 170
1B. Syntaxe ..................................................................................................... 170
2. Modifier une table ............................................................................. 171
2A. Ajout d’un champ ..................................................................................... 171
2B. Modification de champ ............................................................................ 171
2C. Suppression de champ ............................................................................. 172
3. Suppression d’une table .................................................................. 172
8 3999 TG PA 02
170
Séquence 8
1. Créer une table
1A. Rappel
Qu’est-ce qu’une table, en fait ? Je vous rappelle le MLD du cas Bibliothèque.
Auteur (NumAuteur, Nom, Prénom, DateNaissance, LieuNaissance, DateDécès, LieuDécès)
Livre (NumLivre, Titre, DateAchat, Prix, DateLecture, Collection, Numéro, Cycle, NumCycle,
AnnéeImpression, Pages, NumAuteur#)
primaire, étrangère#
De quoi sont constituées les tables ? De champs. Créer une table va donc consister à :
donner le nom de la table ;
donner le nom et le type de chaque champ ;
indiquer la clé primaire ;
indiquer les éventuelles clés étrangères.
L’instruction permettant de créer une table va permettre d’indiquer tout cela.
1B. Syntaxe
Sans autre forme de procès, voici la syntaxe à utiliser.
Création de table
Syntaxe Sémantique
create table table
(champ1 type1 [primary key],
champ2type2,
champntypen);
create table table à créer
(champ à créer type de ce champ [clé primaire],
champ à créer type de ce champ,
champ à créer type de ce champ);
Pour indiquer quel champ est clé primaire, on rajoute primary key juste après le type.
D’après ma syntaxe, on ne peut définir que le premier champ en tant que clé primaire.
Dans la réalité, c’est inexact, n’importe quel champ peut l’être. Cela dit, il est plus logi-
que de le mettre en premier dans la liste (comme l’identifiant dans le MCD Merise).
Les différents types sont classiques (numériques, texte, date…). Voici les principaux et
leur signification. Pour avoir plus d’informations (notamment les autres types possibles),
consultez l’aide d’Access.
Type de donnée Signification
char(longueur) chaîne de caractères possédant longueur caractères.
integer entier
currency monétaire
float réel
date date ou heure
counter Numéro automatique
8 3999 TG PA 02
171
Le langage de définition des données
Exercice 103
Créez la table Essai contenant le champ Num (type numéro automatique), Nom (chaîne de
caractère de longueur 20) et date de naissance (de type date bien entendu). Le champ Num
est identifiant.
Pour définir des clés étrangères ou des clés primaires multi-champs, consultez l’aide. En
effet, Access n’utilise pas la syntaxe standard SQL mais une clause constraint.
2. Modifier une table
Modifier une table signifie ajouter, modifier ou supprimer des champs dans une table.
L’instruction à utiliser est alter table. Elle se décline en trois syntaxes selon ce que l’on
veut faire.
2A. Ajout d’un champ
Pour ajouter un champ, il faut indiquer sur quelle table on travaille ainsi que le nom et
le type du champ à ajouter.
Ajout de champ
Syntaxe Sémantique
alter table table
add column champ1 type1 [primary key],
champ2type2
champ3type3;
alter table table à modifier
add column champ à ajouter type du champ clé primaire
champ à ajouter type du champ…
champ à ajouter type du champ;
Si la table ne possède pas encore de clé primaire, vous pouvez définir un des champs
ajoutés en tant que clé primaire.
Exercice 104
Rajoutez à la table Essai un champ Prénom (texte) et Poids (entier).
2B. Modification de champ
Il s’agit de modifier le type des champs. Attention à être cohérent ! Si la table contient
déjà des données, vous devez respecter les règles de base de la conversion. Par exemple,
la valeur texte Coucou ne peut pas être convertie en numérique. Toutes les conversions
ne sont donc pas possibles. De plus, si vous réduisez un champ texte de 100 caractères
à 5, les données seront tronquées si elles dépassent ce nouveau seuil.
Modification de champ
Syntaxe Sémantique
alter table table
alter column champ type [primary key] ;
alter table table à modifier
alter column champ à modifier nouveau type;
Si la table ne contient pas de champ clé primaire, modifier le champ peut revenir à le
définir en clé primaire.
8 3999 TG PA 02
172
Séquence 8
Exercice 105
Changez les champs Nom et Prénom de Essai pour qu’ils fassent 15 caractères de long.
2C. Suppression de champ
C’est très simple, il suffit de mentionner la table et le champ.
Suppression de champ
Syntaxe Sémantique
alter table table
drop column champ;
alter table table à modifier
drop column champ à supprimer;
Exercice 106
Dans Essai, supprimez les champs Nom puis Num.
3. Suppression d’une table
C’est trivial.
Suppression d’une table
Syntaxe Sémantique
drop table table; drop table table à supprimer ;
Exercice 107
Supprimez Essai.
Bah, non, pas de synthèse vu la simplicité et la concision de cette séquence. Il est inutile
d’apprendre ces syntaxes dont on se sert rarement. Si vous en avez besoin, utilisez votre
Memento SQL (autorisé à l’examen) ou lancez l’aide du système de gestion de base de
données que vous utilisez (Access ou autre).
Vous pouvez maintenantaliser le TD 3.
8 3999 TG PA 02
173
Travaux dirigés 3
Durée indicative : 1 heure et demie
Ceci correspond à un TD (travaux dirigés). Les requêtes que vous devez
écrire correspondent à l’ensemble du cours sur le LID. Elles sont sans ordre
particulier : certaines sont très simples, d’autres complexes. Vous devez
pouvoir les faire en une à deux heures.
Bon travail !
Nous allons travailler sur les tables suivantes (ce sont les tables de la base Bibliothèque
étudiée dans le cours).
Auteur (NumAuteur, Nom, Prénom, DateNaissance, LieuNaissance, DateDécès, LieuDécès)
Livre (NumLivre, Titre, DateAchat, Prix, DateLecture, Collection, Numéro, Cycle, NumCycle,
AnnéeImpression, Pages, NumAuteur#)
Légende : primaire, étrangère#
Remarques :
par auteur, j’entends le nom et le prénom (sauf indication contraire) ;
par livre, j’entends l’auteur et le titre (sauf indication contraire).
Travail à faire
Écrivez les requêtes suivantes :
1. Nom de l’auteur du livre 666 (vous ferez deux requêtes : avec une sous-requête et
une avec jointure).
2. Liste triée des auteurs.
3. Liste chronologique des livres achetés.
4. Nombre de titres de livres commençant par le mot « le » (ou « Le »).
5. Nombre d’auteurs.
6. Nombre de livres.
7. Nombre d’auteurs et de livres.
8. Montant total dépensé pour l’achat des livres, prix moyen d’un livre, nombre de
pages moyen d’un livre.
9. Liste chronologique des livres (auteur et titre) lus entre deux dates.
10. Liste des livres (titres) restant à lire.
Remarques :
l’informatisation n’a commencé qu’au premier janvier 1995 ; seuls les livres
achetés à partir de cette date sont concernés ;
un livre non lu n’a pas de date de lecture, c.-à-d. que l’attribut correspondant
possède la constante null.
1 / 16 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !