SOMMAIRE
I. LE LANGAGE SQL............................................................3
SQL ( STRUCTURED QUERY LANGAGE = LANGAGE DE REQUÊTE STRUCTURÉ ) N’EST PAS UN LANGAGE DE PROGRAMMATION
AU SENS CLASSIQUE DU TERME, MAIS PLUTÔT UN ENSEMBLE DE VERBES PERMETTANTS DE CRÉER EST DE MANIPULER DES TABLES
RELATIONNELLES, VERBES QUI DOIVENT EUX-MÊMES ÊTRE RETOURNÉS OU INCLUS DANS UN AUTRE LANGAGE. ........................3
1. LANGAGE DE DÉFINITION DE DONNÉES (DDL).........................................................................................................3
CREATE TABLE : Crée une nouvelle table.....................................................................................................3
II. SYNTAXE...........................................................................3
Description........................................................................................................................................................3
CREATE INDEX : Crée un nouvel index pour une table existante.............................................................5
Syntaxe.........................................................................................................................................................................5
ALTER TABLE : Modifie une table créée avec l’instruction CREATE .......................................................6
TABLE........................................................................................................................6
CONSTRAINT :.................................................................................................................................................9
DROP : Supprime une table d’une base de données ou supprime un index d’une table.............................11
Syntaxe.......................................................................................................................................................................11
2. LANGAGE DE MANIPULATION DE DONNÉES...............................................................................................................12
L’Instruction SELECT : Requête Sélection.....................................................................................................12
SQL ET L’ALGÈBRE RELATIONNELLE........................................................................................................................15
1.La Restriction...........................................................................................................................................................16
NUMCMD............................................................................16
2.La Projection............................................................................................................................................................16
NUMCMD............................................................................16
3.Le Produit cartésien ................................................................................................................................................16
NUMCMD............................................................................17
Paris................................................................................................................................................................17
C.NUMCMD.........................................................................17
Paris................................................................................................................................................................17
Paris................................................................................................................................................................17
Paris................................................................................................................................................................17
4.La Jointure...............................................................................................................................................................17
NUMCMD............................................................................18
Paris................................................................................................................................................................18
Grenoble.........................................................................................................................................................18
C.NUMCMD.........................................................................18
Ou Aussi..........................................................................................................................................................18
5.L’Union...................................................................................................................................................................19
Page 1
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
NUMCMD............................................................................19
NUMCMD............................................................................19
NUMCMD............................................................................19
6.L’Intersection...........................................................................................................................................................20
NUMCMD............................................................................20
NUMCMD............................................................................20
NUMCMD............................................................................20
7.La Différence :.........................................................................................................................................................20
NUMCMD............................................................................21
NUMCMD............................................................................21
NUMCMD............................................................................21
8.La Division .............................................................................................................................................................21
Ligne de COM Article ...................................................................................................................22
Les Prédicats : ALL, DISTINCT, DISTINCTROW, TOP ..............................................................................22
Les Fonctions de Regroupement :...................................................................................................................27
La Fonction AVG :.....................................................................................................................................................27
La Fonction Count :....................................................................................................................................................28
La Fonction MIN et MAX :........................................................................................................................................30
La Fonction Sum :.......................................................................................................................................................31
La Clause GROUP BY ..... HAVING :............................................................................................................33
La Clause Order..... BY :................................................................................................................................35
INNER JOIN :.................................................................................................................................................37
LEFT | RIGHT JOIN......................................................................................................................................40
PARAMETERS :..............................................................................................................................................42
SELECT .... INTO .... : Crée une requête de création de table.......................................................................43
INSERT INTO : Requête Ajout.......................................................................................................................44
Update : Requête Mise à jour.........................................................................................................................48
Page 2
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
I. Le Langage SQL
II. Syntaxe
Elément Description
Table Nom de la table à créer.
field1, field2 Nom du ou des champs à créer dans la nouvelle table. Vous
devez créer au moins un champ.
Type Type de données du field dans la nouvelle table.
Size Taille du champ en caractères (pour les données de type Texte
ou Binaire uniquement).
index1, index2 Clause CONSTRAINT définissant un index monochamp. Pour
plus d'informations sur la façon de le créer, reportez-vous à
l’aide relative à la clause CONSTRAINT.
Multifieldindex Clause CONSTRAINT définissant un index multichamp. Pour
plus d'informations sur la façon de le créer, reportez-vous à
l’aide relative à la clause CONSTRAINT.
Page 3
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Remarques
Employez l’instruction CREATE TABLE pour définir une nouvelle table, ses
champs et ses contraintes. Si NOT NULL est utilisé dans la définition d’un champ, les
nouveaux enregistrements devront contenir une donnée valide dans ce champ.
Vous pouvez appliquer NOT NULL sur un champ unique ou à l’intérieur d’une
clause CONSTRAINT nommée s’appliquant à un champ unique ou à un champ
multiple. Cependant, cette restriction NOT NULL ne peut s’appliquer qu’une seule
fois sur un champ, sinon une erreur d’exécution se produit.
Exemple :
L'exemple suivant présente la création d'une nouvelle table avec deux champs
de type Texte :
L'exemple suivant montre la création d'une nouvelle table avec deux champs de
type Texte, un champ Date/Heure et un index unique reprenant ces trois champs :
L'exemple suivant présente la création d'une nouvelle table avec deux champs
de type Text et un champ de type Entier. Le champ NSS est la clé primaire.
Page 4
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Syntaxe
Elément Description
index Nom de l’index à créer.
Table Nom de la table existante dans laquelle l’index doit être créé.
Field Nom du ou des champs à indexer. Pour créer un index monochamp,
spécifiez le nom de champ entre parenthèses à la suite du nom de la
table. Pour créer un index multichamp, spécifiez le nom de chaque
champ à inclure dans l'index. Pour créer des index établis par ordre
décroissant, utilisez le mot réservé DESC ; par défaut, les index sont
établis par ordre croissant.
Remarques
Dans la clause WITH facultative, vous avez la possibilité de forcer les règles de
validation des données. Pour ce faire, vous pouvez :
Interdire les entrées Null dans le ou les champs indexés des nouveaux
enregistrements en utilisant l'option DISALLOW NULL.
Empêcher que les enregistrements contenant des valeurs Null dans le ou les
champs indexés soient inclus dans l'index en utilisant l'option IGNORE NULL.
Définir le ou les champs indexés comme clé primaire en utilisant le mot réservé
PRIMARY. Cela implique alors que la clé doit être unique, ainsi vous pouvez
omettre le mot réservé UNIQUE.
Page 5
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Note : N'utilisez pas le mot réservé PRIMARY lorsque vous créez un nouvel index
sur une table qui dispose déjà d'une clé primaire. Cette opération provoque une
erreur.
Exemple :
L'exemple suivant présente la création d'un index comportant les champs Tél
domicile et Extension dans la table Employés :
Pour supprimer l'index créé dans l'exemple précédent, vous devez utiliser
l'instruction DROP. Vous ne pouvez supprimer cet index de la table en mode Création
à moins de supprimer également la relation avec la table Clients. L'instruction suivante
supprime le nouvel index en utilisant l'instruction DROP :
Syntaxe
Page 6
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Élément Description
Table Nom de la table à modifier.
Field Nom du champ à ajouter ou à supprimer dans la table.
Type Type de donnée du field.
Remarque :
Utiliser ADD COLUMN pour ajouter un nouveau champ à la table. Spécifiez alors
le nom du champ, son type de données et (dans le cas de champs Texte et Binaire)
sa taille (facultative). Par exemple, l'instruction suivante ajoute un champ de texte
de 25 caractères appelé Remarques à la table Employés :
Vous pouvez également définir un index sur ce champ. Pour plus d'informations
sur les index monochamp, reportez-vous à la rubrique d'aide relative à la clause
CONSTRAINT.
Page 7
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Notes :
Exemple :
L'exemple suivant ajoute à la table Employés une donnée Salaire avec un champ de
type Monétaire :
Page 8
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
CONSTRAINT :
une contrainte est identique à un index mais elle peut être également utilisée
pour établir une relation avec une autre table.
Utilisez la clause CONSTRAINT dans les instructions ALTER TABLE et
CREATE TABLE pour créer ou supprimer des contraintes. Il existe deux types de
clauses CONSTRAINT : une pour la création d'une contrainte portant sur un seul
champ et une autre pour la création d'une contrainte portant sur plusieurs champs.
Syntaxe
Contrainte monochamp :
Contrainte multichamp :
CONSTRAINT name
{PRIMARY KEY (primary1[, primary2 [, ...]]) |
UNIQUE (unique1[, unique2 [, ...]]) |
NOT NULL (notnull1[, notnull2 [, ...]]) |
FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES foreigntable [(foreignfield1 [,
foreignfield2 [, ...]])]}
Elément Description
Name Nom de la contrainte à créer.
primary1, primary2 Nom du ou des champs à spécifier comme clé primaire.
unique1, unique2 Nom du ou des champs à spécifier comme clé unique.
Notnull1, notnull2 Nom du ou des champs ne devant pas contenir la valeur
Null.
ref1, ref2 Nom du ou des champs de clé externe faisant référence à
des champs d’une autre table.
Foreigntable Nom de la table externe contenant le ou les champs
spécifiés par foreignfield.
Foreignfield1, Nom du ou des champs de la foreigntable spécifié(s) par
foreignfield2 ref1, ref2. Vous pouvez omettre cette clause si le champ
faisant l’objet de la référence constitue la clé primaire de
foreigntable .
Page 9
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Remarques
Utilisez la syntaxe d'une contrainte multichamp chaque fois que vous utilisez le
mot réservé CONSTRAINT hors d'une clause de définition de champ dans une
instruction ALTER TABLE ou CREATE TABLE.
CONSTRAINT permet de définir un des types de contraintes suivantes pour un
champ :
Vous pouvez utiliser le mot réservé UNIQUE pour définir un champ comme clé
unique. Cela signifie que deux enregistrements de la table ne peuvent pas avoir la
même valeur dans ce champ. Vous pouvez contraindre n'importe quel champ ou
liste de champs à être unique. Si un index multichamp est défini comme clé unique,
les valeurs combinées de tous les champs de l'index doivent être uniques, même si
plusieurs enregistrements ont la même valeur dans un seul des champs.
Vous pouvez utiliser les mots réservés PRIMARY KEY pour définir un champ ou
une plage de champs sur une table comme clé primaire. Toutes les valeurs de la clé
primaire doivent être uniques et non Null et vous ne pouvez définir qu'une seule clé
primaire par table.
Note : Ne définissez pas une contrainte PRIMARY KEY sur une table
disposant déjà d'une clé primaire. Cette opération provoque une erreur.
Vous pouvez utiliser les mots réservés FOREIGN KEY pour définir un champ
comme clé externe. Si la clé primaire de la table externe se compose de plusieurs
champs, vous devez utiliser une définition de contrainte multichamp en spécifiant
tous les champs de référence, le nom de la table externe et les noms des champs
référencés dans cette table, et cela, dans l'ordre des champs de référence. Si le ou
les champs référencés constituent la clé primaire de la table externe, il est inutile de
les spécifier ; par défaut, le moteur Microsoft Jet considère que ces champs
constituent la clé primaire.
Page 10
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Syntaxe
Elément Description
Table Nom de la table à supprimer ou de la table contenant l’index à
supprimer.
Index Nom de l’index à supprimer dans la table.
Remarques
Vous pouvez utiliser CREATE TABLE pour créer une table et CREATE INDEX
ou ALTER TABLE pour créer un index. Pour modifier une table, utilisez ALTER
TABLE.
Exemple :
Page 11
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Select : Recherche
Insert : Ajout
Update : Mise à jour
Delete : Suppression
Syntaxe
Elément Description
Predicate L'un des prédicats suivants : ALL, DISTINCT, DISTINCTROW
ou TOP. Les prédicats permettent de limiter le nombre
d'enregistrements renvoyés. Si aucun n’est précisé, ALL est choisi
par défaut.
* Indique que tous les champs de la ou des tables spécifiées sont
sélectionnés.
Table Nom de la table contenant les champs dans lesquels les
enregistrements sont sélectionnés.
Page 12
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
field1, field2 Noms des champs contenant les données à extraire. Si vous incluez
plusieurs champs, les données seront extraites dans l'ordre indiqué.
alias1, alias2 Noms à utiliser comme en-têtes de colonne à la place des noms de
colonnes originaux dans table.
Tableexpression Nom de la ou des tables contenant les données à extraire.
Externaldatabase Nom de la base de données contenant les tables de tableexpression
si elles ne se trouvent pas dans la base de données en cours.
Remarques
Vous pouvez utiliser un astérisque (*) pour sélectionner tous les champs d'une
table. Les exemples suivants sélectionnent tous les champs dans la table Employés :
Si le nom d'un champ figure dans plusieurs tables stipulées par la clause
FROM, faites-le précéder du nom de la table correspondante et de l'opérateur . (point).
Dans l'exemple suivant, le champ "Département" se trouve à la fois dans les tables
Employés et Superviseurs. L'instruction SQL sélectionne "Département" dans la table
Employés et "NomSupv" dans la table Superviseurs :
Lorsqu'un objet Recordset est créé, le moteur de base de données Microsoft Jet
utilise le nom de champ de la table comme nom de l'objet Field dans l'objet Recordset.
Si vous souhaitez utiliser un autre nom de champ ou un nom qui n'est pas concerné par
l'expression utilisée pour générer le champ, utilisez le mot réservé AS. L'exemple
suivant utilise le titre Anniversaire comme nom pour l'objet Field renvoyé dans l'objet
Recordset résultant :
Page 13
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Chaque fois que vous utilisez des fonctions de regroupement ou des requêtes
qui renvoient des noms d'objets Field ambigus ou en double, vous devez utiliser la
clause AS pour fournir un nom de remplacement à l'objet Field. Les exemples suivants
utilisent le titre Effectif comme nom pour l'objet Field renvoyé dans l'objet Recordset
résultant :
Vous pouvez utiliser les autres clauses d'une instruction SELECT pour limiter
et organiser davantage les données renvoyées. Pour plus d'informations, reportez-vous
à la rubrique d'aide relative à la clause que vous utilisez.
Exemple :
L'exemple suivant montre la sélection des champs Nom et Prénom de tous les
enregistrements dans la table Employés :
Page 14
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
A 1
1 A 2
A X 2 =
B 1
B
B 2
C
C 1
C 2
A 1
A 1 W 1 R1 A 1 W 1 R1 D 2
B 2 X 2 R2 B 2 X 2 R2 A 3 1
C 1 W 3 R3 C 1 W 1 R1 B 1 3 A
D 4 Z C 2
A 2
Page 15
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
1. La Restriction
2. La Projection
3. Le Produit cartésien
Page 16
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Commande (C)
Numcmd Datcmd Numfour Mncmd
1050 26/10/89 TH008 1587,50
1025 28/09/89 TH009 1678,90
1021 18/10/88 BM118 4857,10
Fournisseurs (F)
Numfour Adrfour
TH009 Bordeaux
TH008 Paris
Le Produit Cartésien
C.Nu C.Datcmd C.Numfour C.Mncmd F. Numfour F.Adrfour
mcmd
1050 26/10/89 TH008 1587,50 TH009 Bordeaux
1025 28/09/89 TH009 1678,90 TH009 Bordeaux
1021 18/10/88 BM118 4857,10 TH009 Bordeaux
1050 26/10/89 TH008 1587,50 TH008 Paris
1025 28/09/89 TH009 1678,90 TH008 Paris
1021 18/10/88 BM118 4857,10 TH008 Paris
4. La Jointure
Page 17
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Commande
Numcmd Datcmd Numfour Mncmd
1050 26/10/89 TH008 1587,50
1025 28/09/89 TH009 1678,90
1021 18/10/88 BM118 4857,10
Fournisseurs
Numfour Adrfour
TH009 Bordeaux
TH008 Paris
TH010 Grenoble
Ou Aussi
L’Auto-Jointure
Lorsque la condition de recherche introduite par la clause Where porte sur les
valeurs d’un attribut qu’il s’agit de comparer avec les valeur de ce même attribut dans
les mêmes enregistrements de la même table, l’élaboration d’un produit cartésien de la
relation avec elle même devient nécessaire. Ce type de requête est appelée auto-
jointure.
Exemples : Trouver les articles ayant le même prix unitaire que l’article n°14 ?
Page 18
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
5. L’Union
L’opération d’union entre deux tables de même schéma permet de réunir en une
table résultat l’ensemble des t-uplets appartenant à l’une ou aux deux tables de départ.
Exemple :
La liste des commandes qui ont été passées soit en 1988, soit en 1989
Commande 88
Numcmd Datcmd Numfour Mncmd
1050 26/10/88 TH008 1587,50
1025 28/09/88 TH009 1678,90
1021 18/10/88 BM118 4857,10
Commande 89
Numcmd Datcmd Numfour Mncmd
1023 15/09/89 TH010 2534,30
1051 23/07/89 MN008 3548,90
950 19/05/89 BM107 4721,20
Page 19
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
6. L’Intersection
Permet de presenter en une table résultat l’ensemble des t-uplets appartenant aux
deux tables de départ.
Commande 88
Numcmd Datcmd Numfour Mncmd
1050 26/10/88 TH008 1587,50
1025 28/09/88 TH009 1678,90
1021 18/10/88 BM118 4857,10
Commande 88/TH
Numcmd Datcmd Numfour Mncmd
1023 15/09/88 TH010 2534,30
1025 28/09/88 TH009 1678,90
1021 18/10/88 BM118 4857,10
1051 23/07/88 MN008 3548,90
950 19/05/88 BM107 4721,20
7. La Différence :
Permet de présenter en une table les t-uplets de la première en éliminant ceux qui
appartiennent aussi à la seconde.
Page 20
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Exemple : Quelles sont les commandes qui ne sont pas mentionnées dans la table
commandeTH ?
Commande
Numcmd Datcmd Numfour Mncmd
1023 15/09/88 TH010 2534,30
1025 28/09/88 TH009 1678,90
1021 18/10/88 BM118 4857,10
1051 23/07/88 MN008 3548,90
950 19/05/88 BM107 4721,20
Commande TH
Numcmd Datcmd Numfour Mncmd
1025 28/09/88 TH009 1678,90
1051 23/07/88 MN008 3548,90
950 19/05/88 BM107 4721,20
8. La Division
Exemple :
Page 21
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Numcmd
1050
1070
Syntaxe
Page 22
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Une instruction SELECT contenant ces prédicats se compose des éléments suivants :
Elément Description
ALL Si vous n'incluez aucun prédicat, le moteur de base de données
Microsoft Jet sélectionne tous les enregistrements qui
remplissent les conditions de l'instruction SQL. Les deux
exemples suivants sont équivalents et renvoient tous les
enregistrements de la table Employés :
SELECT ALL *
FROM Employés
ORDER BY [N° employé];
SELECT *
FROM Employés
ORDER BY [N° employé];
Page 23
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
SELECT
TOP 25
Nom, Prénom
FROM Etudiants
WHERE Promotion = 1996
ORDER BY Moyenne DESC;
Page 24
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Exemple :
Pour essayer les exemples suivants sous Microsoft Access, créez deux
nouvelles tables comme celles présentées ci-dessous. Créez une nouvelle requête dans
l'exemple de votre base de données. Passez en mode SQL, Ecrivez votre code SQL,
puis exécutez la requête.
Table Clients
Table Factures
Page 25
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
L'exemple suivant retourne tous les enregistrements retournés par une jointure
interne entre les deux tables. Le résultat peut être mis à jour.
Résultat
Bob
Bob
Adam
Adam
Adam
Bob
Bob
Résultat
Bob
Adam
Résultat
Bob
Adam
Bob
Page 26
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Résultat
Bob
Bob
Adam
Adam
Adam
♦ La Fonction AVG :
Syntaxe
Avg(expr)
Exemple :
Page 27
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
L'exemple qui suit crée un contrôle calculé qui affiche les frais de port moyens
relatifs aux enregistrements sous-jacents d'un formulaire, à partir de la même table
Commandes. Ouvrez un nouveau formulaire et attribuez Commandes à sa propriété
Source (RecordSource). Tapez l'expression suivante dans la propriété SourceContrôle
(ControlSource) d'une zone de texte du formulaire. Pour appliquer une condition qui
limite le calcul à quelques enregistrements seulement, comme ceux qui se rapportent
aux commandes de plus de 100F, paramétrez la propriété Filtre (Filter) du formulaire.
=Avg(Port)
Remarques
La moyenne calculée par Avg est la moyenne arithmétique (la somme des
valeurs divisée par le nombre de valeurs). Vous pouvez utiliser Avg, par exemple,
pour calculer le coût moyen du transport de marchandises.
♦ La Fonction Count :
Syntaxe
Count(expr)
Page 28
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Remarques
Bien que l’argument expr puisse exécuter un calcul sur un champ, la fonction
Count ne fait que dénombrer les enregistrements. Le type des valeurs contenues dans
les enregistrements est sans importance.
SELECT Count(*)
AS TotalCommandes FROM Commandes;
SELECT
Count('[Date envoi] & Port')
AS [Nonnull] FROM Commandes
Exemple :
Page 29
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
=Count([PaysLivraison])
Syntaxe
Min(expr)
Max(expr)
Remarques
Vous pouvez utiliser les fonctions Min et Max pour déterminer les valeurs les
plus basses et les plus élevées contenues dans un champ en fonction du mode de
regroupement spécifié. Par exemple, vous pouvez utiliser ces fonctions pour renvoyer
les coûts de transport de marchandises les plus bas et les plus élevés. Si aucun
regroupement n'est spécifié, toute la table est utilisée.
Vous pouvez utiliser les fonctions Min et Max dans une expression de requête.
Page 30
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Exemple :
L'exemple qui suit crée un contrôle calculé qui affiche les frais de port les plus
faibles parmi tous les enregistrements de la même table Commandes. Ouvrez un
nouveau formulaire et attribuez Commandes à sa propriété Source (RecordSource).
Tapez l'expression suivante dans la propriété SourceContrôle (ControlSource) d'une
zone de texte du formulaire. Pour appliquer une condition qui limite la recherche à
quelques enregistrements seulement, comme ceux qui se rapportent aux commandes
expédiées en Belgique, paramétrez la propriété Filtre (Filter) du formulaire.
=Min(Port)
♦ La Fonction Sum :
Renvoie la somme d'une série de valeurs contenues dans un champ spécifié dans
une requête.
Syntaxe
Sum(expr)
Page 31
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Remarques
La fonction Sum totalise les valeurs contenues dans un champ. Par exemple,
vous pouvez utiliser la fonction Sum pour déterminer le coût total des frais de
transport.
SELECT
Sum([Prix unitaire] * Quantité)
AS [Rapport Total] FROM [Détails commandes];
Exemple :
L'exemple qui suit crée un contrôle calculé qui affiche les ventes totales
relatives aux enregistrements de la table Détails commandes. Ouvrez un nouveau
formulaire et attribuez Détails commandes à sa propriété Source (RecordSource).
Tapez l'expression suivante dans la propriété SourceContrôle (ControlSource) d'une
zone de texte du formulaire. Pour appliquer une condition qui limite la recherche à
quelques enregistrements seulement, comme ceux qui se rapportent aux commandes
expédiées en Belgique, paramétrez la propriété Filtre (Filter) du formulaire.
=Sum([PrixUnitaire]*[Quantité])
Page 32
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Syntaxe
SELECT fieldlist
FROM table
[WHERE criteria]
[GROUP BY groupfieldlist [HAVING Groupcriteria ]]
Une instruction SELECT contenant une clause GROUP BY se compose des éléments
suivants :
Élément Description
Fieldlist Nom du ou des champs à extraire ainsi que des alias de nom de
champ, fonctions de regroupement SQL, prédicats de sélection
(ALL, DISTINCT, DISTINCTROW ou TOP) ou autres options
d'instructions SELECT.
Table Nom de la table contenant les enregistrements à extraire. Pour plus
d'informations, reportez-vous à la rubrique relative à la clause
FROM.
Criteria Critères de sélection. Si l'instruction inclut une clause WHERE, le
moteur de base de données Microsoft Jet regroupe les valeurs après
avoir appliqué les conditions WHERE aux enregistrements.
Groupfieldlist Noms des champs (10 au maximum) utilisés pour regrouper les
enregistrements. L'ordre des noms de champs dans groupfieldlist
détermine les niveaux de regroupement, du plus élevé au plus bas.
Groupcriteria Expression qui détermine quels sont les enregistrements regroupés
à afficher.
Remarques
Page 33
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Les valeurs Null des champs GROUP BY sont regroupées et ne sont pas omises.
Toutefois, les valeurs Null ne sont évaluées dans aucune fonction de regroupement
SQL.
Utilisez la clause WHERE pour exclure les lignes que vous ne souhaitez pas
regrouper et la clause HAVING pour filtrer les enregistrements après leur
regroupement.
À moins de contenir des données de type Memo ou OLE Object, un champ d'une
liste de champs GROUP BY peut faire référence à n'importe quel champ de la
clause FROM, même si celui-ci n'est pas inclus dans l'instruction SELECT, à
condition toutefois que l'instruction SELECT inclue au moins une fonction de
regroupement SQL. Le moteur de base de données Microsoft Jet ne peut pas faire
porter des opérations de regroupement sur des champs Memo ou OLE.
Tous les champs de la liste de champs SELECT doivent être inclus dans la clause
GROUP BY ou, sous forme d'arguments, dans une fonction de regroupement SQL.
HAVING est similaire à WHERE, qui détermine quels sont les enregistrements à
sélectionner. Une fois que GROUP BY a regroupé les enregistrements, HAVING
détermine quels sont les enregistrements qui seront affichés :
Une clause HAVING peut contenir jusqu'à 40 expressions liées par des opérateurs
logiques comme And et Or.
Exemple
Page 34
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
L'exemple suivant trouve le prix unitaire maximal par produit dans chaque
catégorie :
L'exemple suivant trouve les fournisseurs dont les produits ont un prix unitaire
moyen supérieur à 25 F :
L'exemple suivant présente la sélection des employés qui ont vendu plus de
100 commandes :
La Clause Order..... BY :
Trie, par ordre croissant ou décroissant, les enregistrements résultants d'une requête
en fonction du ou des champs spécifiés.
Syntaxe
SELECT fieldlist
FROM table
WHERE selectcriteria
[ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]
Page 35
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Élément Description
Fieldlist Noms du ou des champs à extraire avec leurs alias de nom de champ,
fonctions de regroupement SQL, prédicats de sélection (ALL,
DISTINCT, DISTINCTROW, ou TOP) ou autres options
d'instruction SELECT.
Table Nom de la table contenant les enregistrements à extraire. Pour plus
d'informations, reportez-vous à la rubrique relative à la clause FROM.
Selectcriteria Critères de sélection. Si l'instruction contient une clause WHERE, le
moteur de base de données Microsoft Jet trie les valeurs après avoir
appliqué les conditions WHERE aux enregistrements.
field1, field2 Noms des champs sur lesquels doit porter le tri.
Remarques
La clause ORDER BY est facultative. Mais si vous n'incluez pas ORDER BY,
les données sont affichées sans être triées.
L'ordre de tri par défaut est l'ordre croissant (de A à Z et de 0 à 9). Toutefois,
vous pouvez inclure le mot réservé ASC à la fin de chaque champ que vous souhaitez
trier par ordre croissant.
Dans les deux exemples suivants, les employés sont triés sur leur nom :
Pour effectuer un tri par ordre décroissant (de Z à A et de 9 à 0), ajoutez le mot
réservé DESC à la fin de chaque champ que vous souhaitez trier par ordre décroissant.
Dans les deux exemples suivants, les employés sont sélectionnés, puis triés par ordre
décroissant :
Page 36
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Vous pouvez inclure des champs supplémentaires dans une clause ORDER BY.
Les enregistrements sont triés tout d'abord en fonction du premier champ spécifié
après ORDER BY. Ensuite, les enregistrements pour lesquels ce champ contient des
valeurs identiques sont triés en fonction de la valeur du second champ spécifié, et ainsi
de suite.
Exemple
Cet exemple trie les enregistrements par ordre décroissant sur le nom de famille
(Z à A) :
Cet exemple trie d'abord par catégorie, puis par nom de produit :
INNER JOIN :
Fusionne les enregistrements de deux tables lorsqu’un champ commun contient des
valeurs identiques
Syntaxe
Page 37
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Elément Description
table1, table2 Noms des tables depuis lesquelles les enregistrements sont fusionnés.
field1, field2 Noms des champs reliés entre eux. S'ils ne sont pas numériques, les
champs doivent avoir le même type de données et contenir des données
de nature identique. Leurs noms peuvent être différents.
Oprcomp Tout opérateur de comparaison relationnelle tel que "=", "<", ">",
"<=", ">=", ou "<>".
Remarques
Vous pouvez utiliser une opération INNER JOIN dans n'importe quelle clause
FROM. Il s'agit du type de jointure le plus répandu. Les jointures INNER JOIN
fusionnent les enregistrements de deux tables lorsqu’un champ commun contient des
valeurs identiques.Vous pouvez utiliser INNER JOIN avec les tables Services et
Employés pour sélectionner tous les employés appartenant à un service donné. À
l'opposé, pour sélectionner tous les services (même si certains n'ont aucun personnel)
ou tous les employés (même si certains ne sont liés à aucun service), vous pouvez
utiliser une opération LEFT JOIN or RIGHT JOIN pour créer une jointure externe.
Si vous tentez d'établir une jointure entre des champs contenant des données de
type Memo ou OLE Object , une erreur se produit.
Une jointure peut impliquer deux champs numériques de type identique. Vous
pouvez, par exemple, établir une jointure entre les champs AutoNumber et Long car il
s'agit de types identiques. Par contre, il est impossible d'établir une jointure entre les
types de champs Single et Double.
Exemple :
L'exemple qui suit montre comment réaliser une jointure entre les tables
Catégories et Produits, sur la base du champ Nom de catégorie :
Dans cet exemple, le champ sur lequel se fait la jointure est Nom de catégorie
mais il n'est pas visible dans le résultat de la requête car il n'a pas été inclus dans
l'instruction SELECT. Pour inclure le champ de base de la jointure, intégrez son nom à
l'instruction SELECT ¾ dans le cas présent, Catégories.[Nom de catégorie].
Page 38
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Vous pouvez également relier plusieurs clauses ON dans une instruction JOIN,
à l'aide de la syntaxe suivante :
SELECT fields
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field1 AND
ON table1.field2 compopr table2.field2) OR
ON table1.field3 compopr table2.field3)];
SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...) ]
ON table3.field3 compopr tablex.fieldx)]
ON table2.field2 compopr table3.field3)
ON table1.field1 compopr table2.field2;
Une jointure LEFT JOIN ou RIGHT JOIN peut être imbriquée dans une
jointure INNER JOIN mais il est impossible d'imbriquer une jointure INNER JOIN
dans une jointure LEFT JOIN ou RIGHT JOIN.
Exemple :
L'exemple suivant présente la création de deux équi-jointures : l'une
entre les tables Détails des commandes et Commandes, et l'autre entre les tables
Commandes et Employés. Les deux jointures sont nécessaires car la table
Employés ne contient pas de données de ventes, et la table Détail des
commandes ne contient pas de données d'employés. La requête aboutit à une
liste d'employés et leurs ventes totales.
Page 39
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Fusionnent des enregistrements de tables source lorsqu'on les utilise dans une
clause FROM.
Syntaxe
Les opérations LEFT JOIN et RIGHT JOIN comprennent les éléments suivants :
Elément Description
table1, table2 Noms des tables depuis lesquelles les enregistrements sont
fusionnés.
field1, field2 Noms des champs reliés entre eux. Les champs doivent avoir le
même type de données et contenir des données de nature
identique. Leurs noms peuvent être différents.
Compopr Tout opérateur de comparaison relationnelle tel que "=","<", ">",
"<=", ">=", ou "<>".
Remarques
Utilisez une opération LEFT JOIN pour créer une jointure externe gauche. Avec
deux tables, les jointures externes gauches comprennent tous les enregistrements de la
première table (celle de gauche) même s'il n'existe aucune valeur correspondante aux
enregistrements dans la deuxième table (celle de droite).
Utilisez une opération RIGHT JOIN pour créer une jointure externe droite.
Avec deux tables, les jointures externes droites comprennent tous les enregistrements
de la deuxième table (celle de droite) même s'il n'existe aucune valeur correspondante
aux enregistrements dans la première table (celle de gauche).
Vous pouvez utiliser, par exemple, une jointure LEFT JOIN avec les tables
Services (gauche) et Employés (droite) pour sélectionner tous les services y compris
ceux auquel aucun employé n'est affecté. Pour sélectionner tous les employés, y
compris ceux ne relevant d'aucun service en particulier, vous pouvez utiliser une
jointure RIGHT JOIN.
Page 40
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
L'exemple qui suit montre comment réaliser une jointure entre les tables
Catégories et Produits, sur la base du champ Nom de catégorie. La requête produit une
liste exhaustive des catégories qui comprend aussi celles ne contenant aucun produit.
Dans cet exemple, le champ sur lequel se fait la jointure est Nom de catégorie
mais il n'est pas visible dans les résultats de la requête car il n'a pas été inclus dans
l'instruction SELECT. Pour inclure le champ de base de la jointure, intégrez son nom à
l'instruction SELECT, dans le cas présent, Catégories.[Nom de catégorie].
Notes
Pour créer une requête ne comprenant que les enregistrements dans lesquels les
données des champs reliés sont identiques, utilisez une opération INNER JOIN.
Une jointure LEFT JOIN ou RIGHT JOIN peut être imbriquée dans une jointure
INNER JOIN mais il est impossible d'imbriquer une jointure INNER JOIN dans
une jointure LEFT JOIN ou RIGHT JOIN. Reportez-vous aux informations
données sur l'imbrication, dans la section consacrée à la jointure INNER JOIN,
pour voir comment imbriquer des jointures les unes dans les autres.
Vous pouvez relier plusieurs clauses ON. Reportez-vous aux informations données
sur la liaison des clauses, dans la section consacrée à la jointure INNER JOIN, pour
voir comment procéder.
Si vous tentez d'établir une jointure entre des champs contenant des données de
type Memo ou OLE Object , une erreur se produit.
Exemple :
L'exemple suivant présente la sélection de tous les clients, y compris les clients
sans commandes :
Page 41
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
PARAMETERS :
Déclare le nom et le type de données de chaque paramètre dans une requête Paramètre.
Syntaxe
Élément Description
Nom Nom du paramètre. Affecté à la propriété Name de l'objet Parameter
et servant à identifier ce paramètre dans la collection Parameters.
Vous pouvez utiliser nom comme une chaîne affichée dans une boîte
de dialogue pendant que votre application exécute la requête. Utilisez
des crochets ([ ]) pour encadrer les textes contenant des espaces ou
des signes de ponctuation. Par exemple, [Prix bas] et [Lancer l'état à
compter de quel mois ?] sont des arguments de nom valides.
Datatype Types de données SQL Microsoft Jet primaires ou leurs synonymes.
Remarques
Pour les requêtes que vous exécutez périodiquement, vous pouvez utiliser une
déclaration PARAMETERS pour créer une requête Paramètre. La création d'une
requête Paramètre peut faciliter l'automatisation du processus de modification des
critères de requête. Avec une requête Paramètre, votre code devra fournir les
paramètres à chaque exécution de la requête.
Vous pouvez utiliser nom mais pas datatype dans une clause WHERE ou
HAVING. Dans l'exemple qui suit, on doit fournir deux paramètres. Les critères sont
ensuite appliqués aux enregistrements de la table Commandes.
Page 42
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Syntaxe
Élément Description
field1, field2 Noms des champs à copier dans la nouvelle table.
Newtable Nom de la table à créer. Ce nom doit respecter les conventions
d'appellation standard. Si newtable est identique au nom d'une
table existante, une erreur récupérable se produit.
Externaldatabase Chemin d’accès d'une base de données externe. Pour obtenir une
description du chemin, examinez la clause IN.
Source Nom de la table dans laquelle les enregistrements sont
sélectionnés. Il peut s'agir d'une ou de plusieurs tables, ou encore
d'une requête.
Remarques
Vous pouvez utiliser les requêtes de création de tables pour archiver les
enregistrements, faire des copies de sauvegarde des tables, ou pour faire des copies à
exporter dans une autre base de données ou à utiliser pour produire des états
concernant des données sur une période déterminée. Par exemple, vous pouvez
produire un état Ventes Mensuelles par Région en exécutant la même requête de
création de table chaque mois.
Page 43
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Notes
Vous souhaiterez peut-être définir une clé primaire pour la nouvelle table. Lorsque
vous créez la table, les champs de la nouvelle table héritent du type de données et
de la taille de champ de chaque champ présent dans les tables sous-jacentes de la
requête. Aucune autre propriété de champ ou de table n'est transférée.
Pour ajouter des données à une table existante, utilisez l'instruction INSERT INTO
au lieu de créer une requête Ajout.
Syntaxe
Elément Description
Target Nom de la table ou de la requête à laquelle on souhaite ajouter des
enregistrements.
Externaldatabase Chemin d’accès d'une base de données externe. Pour obtenir une
description du chemin, examinez la clause IN.
Source Nom de la table ou de la requête à partir de laquelle on souhaite
copier les enregistrements.
Page 44
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
field1, field2 Noms des champs auxquels on souhaite ajouter les données, s'ils
sont placés à la suite de l'argument target, ou noms des champs à
partir desquels on souhaite extraire les données, s'ils sont placés à
la suite de l’argument source.
Tableexpression Nom de la ou des tables à partir desquelles les enregistrements sont
insérés. Cet argument peut être constitué d'un seul nom de table ou
d'un composé obtenu par une opération INNER JOIN, LEFT JOIN
ou RIGHT JOIN, ou encore d'une requête sauvegardée.
value1, value2 Valeurs à insérer dans des champs spécifiques du nouvel
enregistrement. Chaque valeur vient s'insérer dans le champ
correspondant à la position de la valeur dans la liste : value1
s'insère dans le field1 du nouvel enregistrement, value2 dans le
field2 et ainsi de suite. Vous devez séparer les valeurs par une
virgule et encadrer les zones de texte par des apostrophes (' ').
Remarques
Vous pouvez aussi utiliser INSERT INTO pour ajouter une série
d'enregistrements depuis une autre table ou requête, conjointement à la clause
SELECT ... FROM comme décrit plus haut dans la syntaxe de requête Ajout avec
plusieurs enregistrements. Dans ce cas, la clause SELECT mentionne les champs à
ajouter à la table target spécifiée.
La cible source ou target peut spécifier une requête ou une table. Dans le cas
d'une requête, le moteur de base de données Microsoft ajoute les enregistrements à
toutes les tables spécifiées par la requête, sans exception.
INSERT INTO est facultatif mais, lorsqu'on l'inclut, doit se placer avant
l'instruction SELECT.
Si votre table de destination contient une clé primaire, assurez-vous que vous
ajoutez des valeurs uniques et différentes de Null aux champs de clé primaire ; dans le
Page 45
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
cas contraire, le moteur de base de données Microsoft Jet n'ajoutera pas les
enregistrements.
Si vous ajoutez des enregistrements à une table dotée d'un champ AutoNumber
et que vous désirez changer les numéros des enregistrements ajoutés, n'intégrez pas le
champ AutoNumber à votre requête. En revanche, faites-le si vous souhaitez conserver
les valeurs d'origine du champ.
Utilisez la clause IN pour ajouter des enregistrements à une table située dans
une autre base de données.
Pour créer une nouvelle table, utilisez l'instruction SELECT... INTO au lieu de
créer une requête de création de table.
Au lieu d'ajouter des enregistrements existant à partir d'une autre table, vous
pouvez spécifier la valeur de chaque champ dans un nouvel et unique enregistrement
en utilisant la clause VALUES. Si vous omettez la liste des champs, la clause
VALUES doit comprendre une valeur pour chaque champ de la table. À défaut,
l'opération INSERT échouera. Utilisez une instruction INSERT INTO supplémentaire,
associée à une clause VALUES, pour chaque nouvel enregistrement que vous
souhaitez créer.
Exemple :
Pour tester l'exemple suivant, créez une copie de la table Clients et nommez-la
NouveauxClients. Cet exemple présente la sélection de tous les enregistrements de la
table NouveauxClients et les ajoute à la table Clients. Si les colonnes individuelles ne
sont pas désignées, les noms de colonne de la table SELECT doivent correspondre
exactement à ceux de la table INSERT INTO.
Page 46
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
DoCmd.OpenQuery "SauvegardeRequête"
Page 47
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Syntaxe
Elément Description
Tablename Nom de la table dans laquelle des enregistrements sont modifier.
Fields Nom du champ de la table pour lequel la valeur va changer
Newval Nouvelle valeur du champ
Criteria Expression qui détermine quels enregistrements seront mis à jour.
Remarque
Les mises à jour ne peuvent faire appel aux fonctions AVG, Count, Max, Min,
Sum.
La nouvelle valeur doit être compatible avec la definition de la colonne (Type,
Taille,...).
Exemples
UPDATE ARTICLE
SET Stock=Stock * 2
Where TVA=19
Page 48
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Crée une requête Suppression qui supprime des enregistrements dans une ou
dans plusieurs des tables mentionnées dans la clause FROM qui correspond à la clause
WHERE.
Syntaxe
DELETE [table.*]
FROM table
[WHERE criteria]
Elément Description
Table Nom facultatif de la table dans laquelle des enregistrements sont
supprimés.
Table Nom de la table dans laquelle des enregistrements sont supprimés.
Criteria Expression qui détermine quels enregistrements seront mis à jour.
Remarques
Pour supprimer l'ensemble d'une table d'une base de données, vous pouvez utiliser la
méthode Execute conjointement à une instruction DROP. Notez que, si vous
supprimez la table, la structure associée est perdue. En revanche, si vous employez
DELETE, seules les données sont supprimées ; la structure de la table et toutes ses
propriétés, notamment les attributs de champs et les index, sont conservées.
Page 49
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Une requête Suppression efface des enregistrements dans leur intégralité et non
seulement les données de certains champs. Si vous désirez supprimer des valeurs
contenues dans un champ déterminé, créez une requête de mise à jour pour remplacer
les valeurs par Null.
Important
Une fois que vous avez supprimé des enregistrements à l'aide d'une requête
Suppression, vous ne pouvez pas annuler l'opération. Si vous désirez savoir quels
enregistrements ont été supprimés, faites d'abord une requête Sélection avec les
mêmes critères, examinez les résultats obtenus, puis exécutez la requête
Suppression.
Exemple :
La Clause Where
Indique quels enregistrements des tables citées dans la clause FROM sont
affectés par l’instruction SELECT, UPDATE ou DELETE.
Syntaxe
SELECT fieldlist
FROM tableexpression
WHERE criteria
Page 50
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Élément Description
Fieldlist Nom du ou des champs à extraire .
Tableexpression Nom de la ou des tables contenant les données à extraire.
Criteria Expression que les enregistrements doivent satisfaire pour être
inclus dans le résultat de la requête.
Remarques
Si vous n'utilisez pas de clause JOIN pour effectuer des opérations de jointure
SQL sur plusieurs tables, l'objet Recordset résultant ne pourra pas être mis à jour.
Une clause WHERE peut contenir jusqu'à 40 expressions liées par des
opérateurs logiques comme And et Or.
Page 51
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
Si vous spécifiez l'argument criteria, vous devez indiquer les littéraux date au
format américain, et ce, même si vous n'utilisez pas la version américaine du moteur
de base de données Microsoft Jet. Par exemple, le 10 mai 1996, s'écrit sous la forme
10/5/96 en France et 5/10/96 aux Etats-Unis. N'oubliez pas d'indiquer vos littéraux
date entre deux caractères #, comme dans l'exemple ci-dessous.
Pour rechercher les enregistrements datés du 10 mai 1996 dans une base de
données française, utilisez l'instruction SQL suivante :
SELECT *
FROM Commandes
WHERE [Date envoi] = #5/10/96#;
SELECT *
FROM Orders
WHERE ShippedDate = DateValue('5/10/96');
SELECT *
FROM Commandes
WHERE [Date envoi] = DateValue('10/5/96');
Exemples
Page 52
OFPPT – ISTA BENI MELLAL © RHATAY – BENTALEB
Module N° 5 : Système d’information
Séquence N° 4 : Accèss : Requêtes Durée : 5 Jours
Objectif : Savoir Interroger une base de données à l’aide de requêtes SQL.
L'exemple suivant présente la sélection des produits dont les prix unitaires sont
compris entre 20 et 50 F inclusivement :
L'exemple suivant présente la sélection de tous les produits qui apparaissent par
ordre alphabétique entre "Cha" et "Out", inclusivement. "Outback Lager" n'est pas
retenu parce que "Outback Lager" vient après "Out"et se trouve donc en dehors de la
plage spécifiée.
L'exemple suivant présente la sélection des commandes livrées dans les états de
l'Idaho, de l'Orégon ou de Washington :
Page 53