2. I -Introduction
II -Le langage SQL dans Access
III -Création et suppression de tables
IV –Création et suppression d’une relation
3. I - Introduction
Le sigle SQL signifie "Structured Query
Language", soit en français "Langage de
recherche structuré". SQL est un langage de
gestion des bases de données relationnelles
que presque tous les SGBD comprennent. Il a
été développé par IBM dans le courant des
années 70, et son nom actuel (il s'appelait
initialement SEQUEL) date du début des
années 80.
4. II -Le langage SQL dans Access
Évidemment, il est beaucoup plus facile
de créer, remplir, modifier, et supprimer
une table dans l'interface graphique
d'Access qu'en utilisant des commandes
SQL. Mais tous les SGBD ne sont pas
dotés d'une interface graphique, et il est
bon de savoir se débrouiller sans elle le
cas échéant.
5. Il
présente cependant de l'intérêt dans les
deux cas suivants :
l'apprentissage initial du SQL, pour lequel il n'est
pas utile d'entrer immédiatement dans les moindres
détails ;
l'automatisation (via les macros) de certaines
opérations relatives aux tables. En effet, le code
SQL que nous allons écrire sera enregistré sous
forme de requête par le SGBD, et il est très facile
de lancer une requête à partir d'une macro.
6. Pour gérer les tables en langage SQL
dans Access
Il suffit d’ouvrir une requête en mode
création puis passer en mode SQL
7. III -Création et suppression de
tables
Dans la fenêtre SQL ouverte, nous écrivons
notre première commande (ou instruction)
SQL, contenant la clause CREATE TABLE,
pour créer la table "Personnes" (nous notons
qu'un point-virgule marque la fin de la
commande) :
CREATE TABLE Personnes
(Nom CHAR(20),
Prénom CHAR(20));
8. Les types de données sont définis dans le DDL (Data
Definition Language) du SGBD Microsoft Access:
Booléen : BIT ;
Nombre entier : SHORT (entier), SMALLINT (entier), LONG
(entier long), INTEGER (entier long), BYTE (octet) ;
Nombre réel : SINGLE (réel simple), DOUBLE (réel double),
NUMERIC (réel double) ;
Monétaire : CURRENCY, MONEY ;
Date/Heure : DATE, TIME, DATETIME ;
Texte : VARCHAR (255 caractères), CHAR(n) ou TEXT(n) (n
caractères), LONGTEXT (mémo, 32K max.) ;
Fichier binaire : LONGBINARY (Objet OLE) ;
Compteur : COUNTER (NuméroAuto).
9. Pour supprimer une table, on utilise la
clause DROP TABLE, comme le montre
l'exemple suivant :
DROP TABLE Personnes;
10. 1) Modification d’une table
Il est possible de modifier une table existante.
Les exemples les plus classiques concernent
l'addition d'une nouvelle colonne et la
suppression d'une colonne existante. La
commande :
ALTER TABLE Personnes
ADD Naissance DATE;
Ou bien
ALTER TABLE Personnes
ADD COLUMN Naissance DATE;
11. Pour supprimer la colonne que nous
venons de créer, nous utilisons la
commande suivante :
ALTER TABLE Personnes
DROP Naissance;
ou sa variante :
ALTER TABLE Personnes
DROP COLUMN Naissance;
12. En SQL standard, la commande ALTER
TABLE peut aussi être utilisée pour
modifier les propriétés d'une colonne
existante. Exemple :
ALTER TABLE Personnes
MODIFY Nom CHAR(40);
mais la clause MODIFY n'est pas
reconnue par Access
13. 2) Propriétés des champs
Pour empêcher un champ de rester vide,
nous utilisons la clause NOT NULL,
comme le montre l'exemple suivant :
CREATE TABLE Personnes
(Nom CHAR(20) NOT NULL,
Prénom CHAR(20));
14. Pour qu'un champ soit indexé sans
doublons, nous utilisons la clause
UNIQUE, comme le montre l'exemple
suivant :
CREATE TABLE Personnes
(Nom CHAR(20) UNIQUE,
Prénom CHAR(20));
15. Pour poser une clé primaire sur un champ,
nous utilisons la clause PRIMARY KEY,
comme le montre l'exemple suivant :
CREATE TABLE Personnes
(Nom CHAR(20) PRIMARY KEY,
Prénom CHAR(20));
Si deux champs représentent une clé primaire:
CREATE TABLE Personnes
(Nom CHAR(20),
Prénom CHAR(20),
PRIMARY KEY(Nom, Prénom));
16. 3) Application
Grâce au langage SQL créer les tables
suivantes dans une base de donnée
nommée « bon de commande votre nom et
prénom »
17. Table article Table commande
Code_art Entier long
Num_cmd Entier long
Des_art Texte (20)
Date_cmd date
pu Numérique
Num_cl Entier long
Qte_stock Numérique
18. Table client
Num_cl Entier long
Nom Texte (20)
prénom Texte (20)
adresse Texte (50)
tel Entier long
19. Table detail
Num_detail Entier long
Num-cmd Entier long
Code_art Entier long
Qte_cmd Réél double
20. IV –Création et suppression d’une
relation
1) Création d’une relation 1-n
Pour montrer comment on crée une relation 1-
n entre deux tables, nous avons décomposé
les opérations en quatre étapes. Dans un
premier temps, en exécutant la commande
suivante :
CREATE TABLE Personnes
(Nom TEXT(30),
Prénom TEXT(30),
Code_Ville LONG);
21. Dans un deuxième temps, nous créons
la table "Villes". Cette table servira
de liste externe pour la table
"Personnes". Nous exécutons la
commande suivante :
CREATE TABLE Villes
(Code_Ville COUNTER,
Ville TEXT(30));
22. Dans un troisième temps, nous
modifions la table "Villes" en plaçant une
clé primaire sur le champ "Code_Ville",
qui servira de côté 1 à la future relation.
Pour ce faire, nous exécutons la
commande suivante :
ALTERTABLE Villes
ADD PRIMARY KEY(Code_Ville);
23. Dans un quatrième temps, nous
modifions la table "Personnes" en
plaçant une clé étrangère, nommée
"relation_ville", sur le champ
"Code_Ville" de la table "Personnes"
24. (onparle de clé étrangère pour le côté
n de la relation), en précisant que le côté
1 de la relation est le champ
"Code_Ville" de la table "Villes".
25. Nous exécutons donc la commande
suivante
ALTERTABLE Personnes
ADD FOREIGN KEY (Code_Ville)
REFERENCES Villes (Code_Ville);
26. 2) Suppression d’une relation
Pour pouvoir supprimer une relation ou
une clé primaire, il faux donner un nom
indexe à ces derniers lors de la création
grâce à la clause CONSTRAINT.
Exemple:
27. CREATE TABLE Villes
(Code_Ville COUNTER PRIMARY KEY,
Ville TEXT(30));
CREATE TABLE Personnes
(Nom TEXT(30),
Prénom TEXT(30),
Code_Ville LONG,
CONSTRAINT relation_ville FOREIGN
KEY (Code_Ville) REFERENCES Villes
(Code_Ville));
28. La suppression de cette relation s'obtient
à l'aide de la commande ALTER TABLE.
Dans le cas de la table "Personnes",
côté n de la relation "relation_ville" créée
précédemment, la commande s'écrit :
ALTERTABLE Personnes
DROP CONSTRAINT relation_ville;
29. V- La saisie et la correction des
données
Pour saisir des données dans la table
"Personnes", la commande SQL utilise
la clause INSERT INTO. Les données
en mode texte doivent être placées entre
guillemets. Exemple :
INSERT INTO Personnes
VALUES
("Machin","Pierre");
30. Si
le Null n'est pas interdit dans les
champs de la table "Personnes", nous
pouvons introduire un nom sans le
prénom correspondant, en opérant de la
manière suivante :
INSERT INTO Personnes (Nom)
VALUES ("Truc");
31. Pour modifier un enregistrement
existant, nous faisons appel à la clause
UPDATE (qui signifie "mise à jour" en
anglais). Si, par exemple, nous voulons
doter M. Truc de son prénom, nous
écrirons :
UPDATE Personnes
SET Prénom="Henri"
WHERE Nom="Truc";
32. Poursupprimer une ligne, nous utilisons
la commande basée sur la clause:
DELETE
:DELETE FROM Personnes
WHERE Nom="Truc";
Lorsque la clause WHERE est absente,
le SGBD supprime tous les
enregistrements, laissant la table vide
(mais ne la supprimant pas) :
DELETE FROM Personnes;