Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia
Cours Informatique Appliquée (Partie 2)
Introduction aux Base de données avec ACCESS
Semestre 6
Introduction aux Bases de données
Systèmes de Gestion de Base de Données ACCESS
Les données ne servent pas seulement à contrôler la gestion et le fonctionnement d'une entreprise au jour le jour. Elles sont aussi souvent utilisées pour soutenir des décisions tactiques et stratégiques…
Pouvoir conserver les données sous une forme structurée, cohérente, non redondante et facilement accessible.
Plan
1. Définition d’une base données
2. Principales fonctions d’une base de données 3. Bases de données relationnelles
4. Système de Gestion de Base des données
5. Création d’une base de données sur le SGBD Microsoft Access
6. Table, Champs, Enregistrement et Clés 7. Types de relations
8. Requêtes (QBE et SQL)
3
Définition
Base de Données (BD) est un ensemble de données
structurées, sécurisées, et inter-corrélées, enregistrées
dans des fichiers avec le minimum de redondance et
traitées par une ou plusieurs applications, d’une manière
optimale.
Une base de données est un outil qui permet de :
• Collecter des informations.
• Stocker ces informations.
• Traiter ces informations.
• Fournir à la demande ces informations
Fonctions principales d’une BD
• Données structurées : Les informations contenues dans une base de données sont réparties en enregistrements, chaque enregistrement ayant une structure bien définie.
• Données non redondantes : Une même information ne sera pas répétée plusieurs fois dans la base de données.
• Données cohérentes : Il ne doit pas être permis d’enregistrer dans une base des informations incohérentes entre elles.
Caractéristiques d’une BD
7
• Données accessibles directement selon de multiples critères.
• Indépendance des programmes et des données : La base de données est indépendante des programmes qui y ont accès, on peut utiliser plusieurs programmes pour traiter différemment ces données.
• Sécurité des données stockées : La base de données doit permettre un système de sécurité permettant de gérer les droits d’accès aux informations par les utilisateurs.
Avantages d’utilisation d’une BD
• Accès rapide et facile à l'information
• Toute l'information se retrouve à une seule place dans la base de données
• Regroupement de l'information qui provient de plusieurs sources
• Recherche facile
• Meilleur suivi de l'information et gestion des données
• Meilleure analyse des données et prise de décision
• Automatisation de tâches répétitives
• Sécurité des données
Bases de données relationnelles
Une BD relationnelle est composée d’un ensemble de tables.
• Chaque table a un nom
• Une table est composée de Lignes qu’on appelle enregistrements (ou N-uplet) et de colonnes représentant chacune un champ (attribut).
• L’enregistrement (ligne) : est l’ensemble des données relatif à la même information
• Le champ (colonne) : est l’unité d’information dans une table, une table est constituée de différents champs. Chaque champ a un nom et un type de données : Texte, numérique, date, …
9
Structure d’une BDR
11
Exemple: Base de données pour la gestion des commandes
Chaque table d’une BDR a la structure suivante :
Notation : Nom_Table(Champ 1, Champ 2,…, Champ N)
13
Champs
Enregistrements
Commandes Nu_cmd
Code_Client Date_cmd Cmd_réglée
Nom de la table: Commandes
Ci-dessous un exemple de table d’une BD pour la gestion des commandes d’une entreprise
Commandes(Num_Cmd, Code_Client, Date_Cmd, Cmd_réglée)
Remarques
Deux tables d’une même base de données ne peuvent pas avoir le même nom.
Deux champs de la même table ne peuvent pas avoir le même nom.
Un même champ peut être présent dans plusieurs
tables.
Conception d’une Base de Données
La réalisation d’une Base de Données implique trois grandes étapes:
1. La définition d’un cahier des charges incluant les règles de gestion.
2. La modélisation.
3. L’implantation physique dans un système informatique.
15
Un identifiant c’est un (ou plusieurs) champ d’une table de la BD qui permet:
• d’identifier chaque enregistrement de façon distincte.
• de créer les relations (liaisons) entre les tables Exemples: CNE, CIN, Code d’Appogée, N° de facture,
immatricule
Identifiant, clé primaire et clé étrangère
Exemple
17
Identifiants
Clé primaire
Une table peut posséder plusieurs identifiants. On choisit l'un d'eux, qu'on déclare clé primaire. Les autres sont dès lors des identifiants secondaires.
Une clé primaire est donc une combinaison minimale de propriétés qui permet d’identifier d’une manière unique un enregistrement.
Une clé peut être simple (un seul champ) ou composée (plusieurs champs), et ne peut être jamais nulle ou répétée
Clé étrangère
Un champ (ou ensemble de champs) est clé étrangère dans une table
Identifiant, clé primaire et clé étrangère
19
Clé primaire
Clé étrangère
Un Système de Gestion de Bases de Données (S.G.B.D.) est une collection de logiciels (un programme)
– Il permet de décrire, traiter, interroger les ensembles de données formant la base.
– Il doit également assurer la sécurité et la confidentialité des données dans un environnement où de nombreux utilisateurs ayant des besoins variés peuvent interagir simultanément sur ces données.
Système de Gestion de Base de Données
Exemple de SGBDR :
ACCESS pour gérer des petites bases de données.
ORACLE, très performant pour les grandes BD mais coute très cher SQLSERVER, outils de Microsoft concurrent de oracle (coute cher)
21
Création de tables d’une base de données
Exemple de base de données pour la gestion des produits
Règles de gestion
Chaque produit est fourni par un seul fournisseur, et un fournisseur peut fournir plusieurs produits.
Un fournisseur est défini par un code, un nom, l’adresse et le téléphone.
Chaque produit est défini par une référence, une désignation, le prix unitaire , la disponibilité et la quantité en stock.
Tables de la base de données
23
Démarrer Microsoft Access
Système de Gestion de Base de Données - Access
1
2
3
Création d’une base de données
25
Les Composantes du SGBDR ACCESS
1. Les tables: pour stocker les données ;
2. Les formulaires: pour saisir les données ou les visualiser à l'écran ; 3. Les états: pour imprimer les données ;
4. Les requêtes: pour retrouver les données ; Autres composantes:
5. Les macros, pour automatiser des opérations répétitives effectuées sur la base ;
6. Les pages, pour communiquer avec la BDD via un navigateur;
7. Les modules, pour rajouter des fonctionnalités grâce à de la programmation en VBA (Visual Basic for Applications).
Les Composantes du SGBD ACCESS
27
Création d’une table
La liste des champs
(ajouter les champs) Types de chaque champ (définir les types)
Commentaire sur le champ (ajouter les commentaire)
29
Définir les types des données
Ajouter le champ CNE
Choisir le type du champ CNE
Ajouter une clé primaire
Sélectionner le champ & Définir CNE Clé primaire
31
Type de données d’un champ
Texte : Concerne les valeurs alphanumériques (suite de caractères ou combinaison de caractères et de chiffres).
Numérique : Concerne les valeurs numériques (entiers ou réels
…etc.).
Date et heure : Concerne les valeurs de type date telles que date d’une commande, date de livraison, date d’intervention, date d’embauche, date d’inscription…, ou les valeurs concernant les heures comme heure de départ, heure d’arrivée, heure d’une transaction….
Monétaire : Concerne les valeurs numériques contenant des symboles des unités monétaires comme $, €, DH…etc. Tous les traitements de calcul qu’on peut faire sur les données numériques sont valables pour les données monétaires.
Oui/Non : Concerne les données qui ne peuvent avoir que deux valeurs possibles telles que : Oui/Non, Vrai/Faux, Activé/Désactivé.
Objet OLE : Concerne les données qui peuvent être des documents Microsoft Word, des feuilles de calcul Microsoft Excel, des images, des sons, des vidéos ou d’autres données binaires.
LienHypertexte : pour un champ destiné à contenir un lien cliquable.
33
Propriétés
Taille du champ : définit le nombre de caractères ;
Format : définit la manière dont les informations s'affichent.
Masque de saisie : guide la saisie des données en déterminant la manière dont les données doivent être saisies.
Passage de mode Création en mode Feuille de données pour saisir les données
35
Mode de création
Mode d’affichage
Livres Nom Auteur
Prénom Auteur
Date de naissance de l’auteur Nationalité auteur
Titre
Nbre pages Année d’édition Éditeur
Prenons l’exemple de la gestion d’une collection de livres dans une bibliothèque
Relations entre les tables d’une BD
37
Auteurs Nom Auteur Prénom Auteur Date de naissance Nationalité
Livres Nom Auteur Prénom Auteur Date de naissance Nationalité
Titre
Nbre pages Éditeur
Année d’édition
Il est plus judicieux de créer ici deux tables, il faut toujours regrouper dans une même table toutes les informations relatives au même « sujet »
Livres Titre
Nbre pages Éditeur
Année d’édition
Trouver un moyen pour savoir exactement à quel auteur correspond chaque livre.
ajouter dans la table Auteurs un champ qui va identifier de façon unique chaque enregistrement Clé Primaire
Auteurs N° Auteur Nom Auteur Prénom Auteur Date de naissance Nationalité
Associer un livre à un auteur-
ajouter un champ dans la table Livres, ce champ contient le n° de l’auteur de livre
Livres N° Auteur Titre
Nbre pages Éditeur
Année d’édition
N° Auteur clé primaire dans la table Auteurs Et clé étrangère dans la table Livres
39
Définitions
Une relation est un lien entre deux tables, associant des données de la première (table source) avec celles de la deuxième (table destination).
Relation : la relation entre deux tables est basée sur un champ commun aux deux tables. Elle est matérialisée par une ligne appelée « ligne de jointure ».
Une relation a pour principe la correspondance des données des champs clés de deux tables :
– Ces champs sont la clé primaire et la clé étrangère.
Relation un-à-un
Dans une relation de type un-à-un:
– Chaque enregistrement de la table 1 ne peut correspondre qu'à un (seul) enregistrement de la table 2, – Et inversement, chaque enregistrement de la table 2 ne peut correspondre qu'à un (seul) enregistrement de la table 1.
Cette relation est représentée par un trait reliant la clé primaire de la table 1 avec la clé primaire de la table 2
41 Table 1
Enregistrement 1 Enregistrement 2 Enregistrement 3 Enregistrement 4 Enregistrement 5
Table 2 Enregistrement 1 Enregistrement 2 Enregistrement 3 Enregistrement 4 Enregistrement 5
Personne Num_permis Nom
Prénom Ville
Exemple
Voiture Immatricule Marque Couleur Puissance
Possède
Une personne possède une seule voiture
Chaque voiture n’appartient qu’à une seule personne
1 1
Table 2 Enregistrement 1 Enregistrement 2 Enregistrement 3 Enregistrement 4 Enregistrement 5 Enregistrement 2
Enregistrement 1 Table 1
Relation un à plusieurs (1 à n)
Un enregistrement de la table 1 est en relation avec plusieurs enregistrements de la table 2, et un enregistrement de la table 2 est en relation avec un seul enregistrement de la table 2 .
Cette relation est représentée par un trait reliant la clé primaire de la table 1 avec la clé étrangère de la table 2
43 Livres
N° Auteur Titre Nbre pages Éditeur
Année d’édition Auteurs
N° Auteur Nom Auteur Prénom Auteur Date de naissance Nationalité
1
Clé primaire
n
Clé secondaire
Exemple 1
Un auteur a un ou plusieurs livres
Chaque livre ne correspond qu’un seul auteur
Exemple 2
Un Fournisseur peut fournir un ou plusieurs produits.
Chaque produit est fourni qu’avec un seul fournisseur.
45
Un enregistrement de la table 1 est en relation avec un ou plusieurs enregistrements de la table 2, et un enregistrement de la table 2 est en relation avec un ou plusieurs enregistrements de la table 2 .
Relation Plusieurs à Plusieurs (n - m)
Exemple
Un client achète un ou plusieurs produits
Un produit peut être vendu à un ou plusieurs clients, Autrement dit, un produit peut être présent sur plusieurs ventes
46
Solution
Il est impossible de lier directement 2 tables par une relation de Plusieurs à Plusieurs. Il faut systématiquement passer par une troisième table.
On suppose que nous avons déjà 2 tables construites correctement (notamment avec une clé primaire chacune). Dans ce cas :
1. Créez une troisième table, qu'on appellera "table de jonction".
2. Dans cette table, reprenez la clé primaire des tables 1 et 2.
3. La clef primaire de la table 3 sera au minimum la combinaison des 2 autres clés.
4. Dans la fenêtre Relations, tracez maintenant une relation classique "1 à Plusieurs" entre les tables 1 et 3, et faites de même
Comment définir une relation Plusieurs à Plusieurs dans
Access ?
Dans cet exemple, la table Ventes est la table de jonction.
On peut désigner la clé primaire : le champ Num_Vente et pas le couple composé de (Num_produit, Code_Client).
Pour établir ces relations sur Access:
1. Fermez tous les objets, ne gardez que la fenêtre « Base de données » et cliquez sur Relations
dans l’onglet Outils de base de données.
2. Activez la commande « Afficher la table » dans le menu
« Relations », sélectionnez ensuite la table et cliquez sur
«Ajouter».
3. Faites glisser le champ comportant la clé primaire sur le champ homologue de l’autre table
49
Exemple
Table Auteur
Table Livre
Outils de base de données Relations
Cliquer sur relations
51
Afficher la table Ajouter Auteur + Ajouter Livre Fermer
Glisser N°auteur (table auteur) vers N°auteur (table Livre)
Cette relation signifie qu’un auteur peut être associé à plusieurs livres et un livre est associé à un seul auteur.
L’intégrité référentielle
Un ensemble de règles suivies par Access pour gérer les relations entre tables et éviter des incohérences dans une base de données.
Elle empêche de supprimer accidentellement des enregistrements dans une table mère quand il existe des enregistrements correspondants dans la table Fille.
55
Prenons l'exemple de gestion Fournisseurs/Produits : un fournisseur fournit plusieurs produits.
Lorsque vous définissez la relation entre la table Fournisseurs et la table Produits, vous devez activer l'intégrité référentielle. De cette façon, Access interdira la création d'un produit si le fournisseur n'existe pas au préalable.
D'une manière générale, l'intégrité référentielle implique de renseigner la table du côté "1" avant la table du côté "Plusieurs".
Les deux tables doivent appartenir à la même base de données.
Mises à jour et suppressions en cascade
Mettre à jour en cascade
Si cette option est cochée et que vous changez le code du fournisseur (dans la table Fournisseurs), tous les produits correspondants verront aussi leur Code modifié. Inversement, si la case n'est pas cochée, il sera impossible de modifier un Code_Fournisseur si des produits lui sont attribuées.
Effacer en cascade
Si cette option est cochée et que vous supprimez un fournisseur, tous ses produits seront automatiquement détruites.
Inversement, si la case n'est pas cochée, il sera impossible de supprimer un fournisseur tant que tous ses produits n'ont pas été
Un service financier réalise un audit de données bancaires. Le schéma relationnel de ces données est le suivant :
– Client (IdClient, Nom, Prénom, Ville, Tél)
– Compte (IdCompte, IdClient, DateCréation, Solde) – Action (IdAction, IdCompte, DateAction, Montant)
1. Quelles sont les clés primaires et les clés secondaires de chaque table? Justifiez votre réponse.
2. Créer la BD sous Access. Ajouter les relations entre les tables en activant l’intégrité référentielle.
57
Application 1
3. Parmi les enregistrements suivants lesquels seront rejetés par le SGBD et pourquoi ?
Table : Client
IdClient Nom Prenom Ville Tél
1 Amine Casablanca 0663562773
Salim Rajae Tanger 0662152435
3 Amine Jamal Agadir 0661661610
4 Nasri Reda Tanger 0670263560
Table : Compte
IdCompte IdClient DateCréation Solde
123 1 1/3/2012 350200
124 3 2/1/2013 16K890
125 2 10/4/2013 680000
124 4 2/1/2014 25000
59
Le responsable du complexe cinématographique a mis en place cette base de données afin de gérer les projections des films dans les différentes salles de cinéma :
Acteur (Num_acteur, Nom, Prénom) Jouer (Num_acteur, Num_Film, Rôle) Film (Num_Film, Titre, Genre, Année) Projection (Num_Ciné, Num_Film, Date) Cinéma (Num_Ciné, Nom, Adresse)
1. Quelles sont les clés primaires et les clés secondaires de chaque table ? Justifiez votre réponse.
2. Tracez les relations entre les tables de cette base de donnée.
Application 2
Application 3: Base de données
« Gestion de Commandes »
La BD « Gestion de commandes », qui sera utilisée pour le reste du cours, contient les quatre tables suivantes : Clients, Commandes, Produits et Détails_Commande, dont le schéma relationnel est :
61
Les requêtes
La requête est une action qui porte sur plusieurs enregistrements. Elle sert à exploiter les données contenues dans les tables.
Elle permet de:
Trier des données
Extraire des données par critères
Produire des calculs
Créer, Modifier des tables
Le SGBD Access permet de créer des requêtes en utilisant soit une interface graphique QBE, soit le langage SQL
La requête sélection : Elle permet de sélectionner des enregistrements qui répondent aux critères demandés, de faire des calculs et des regroupements. Elles ressemblent beaucoup aux filtres, mais permettent, en plus, de travailler sur plusieurs tables simultanément.
La requête d'Analyse croisée : Cette requête présente ses résultats sous forme de tableau (de type Excel). On l'utilisera pour comparer des valeurs, dégager des tendances.
La requête de Création de table : Cette requête crée une table à partir des données qu'elle a extraites dans une ou plusieurs autres tables.
La requête Mise à Jour : Elle modifie le contenu d'un ou plusieurs champs d'une ou plusieurs tables. C'est le moyen le plus efficace pour mettre à jour un grand nombre d'enregistrements en une seule opération.
La requête Ajout : Cette requête ajoute les données qu'elle a extraites à la fin d'une table déjà existante.
La requête Suppression : Cette requête supprime un ou plusieurs enregistrements dans une ou plusieurs tables.
Types de requêtes
63
Requête sélection
Création et exécution d’une requête de sélection en mode QBE
Dans la suite on utilisera la Base de données « Gestion de commandes »
Pour créer une requête de sélection :
Fermer toutes les tables ouvertes de la BD ;
Dans de l’onglet « Créer » aller dans le groupe « Requêtes » et cliquer sur l’élément « Création de requête ».
La fenêtre « Afficher la table » s’ouvre.
Ajouter, à partir de la fenêtre « Afficher la table », la ou les tables concernées par la requête. Ajouter par exemple la table Clients et refermer la fenêtre.
65
On obtient ensuite l’interface suivante:
Pour basculer entre le mode création et mode
exécution
Pour exécuter une requête
Les types de requêtes action
Pour afficher la ou les tables concernées par la
requête
Remarque
:Une requête qui exploite une seule table est dite requête monotable ou simple
Structure et paramétrage d’une requête de sélection
Requête1 est le nom par défaut de la requête. On peut le changer
Nom de la requête
paramètres Les de la requête
Liste des champs
67
La ligne "Champ" indique les champs à ajouter. Pour ajouter un champ, soit double-cliquer sur le champ, soit le sélectionner dans la table et l'amener avec la souris, soit on clique sur la ligne "Champ", la liste de tous les champs s'affiche alors et on en sélectionne un. Un des champs proposés s’appelle '*', ce champ signifie "tous les champs de la table".
Pour le paramétrage d’une requête, on sélectionne les
champs : soit que l’on souhaite afficher dans notre résultat
de requête soit dont on a besoin en critères pour exécuter
la requête.
La ligne "Table" sert à sélectionner la table contenant le champ sélectionné.
La colonne "Tri" indique de quel ordre vont être triés les champs dans le résultat de la requête.
La colonne "Afficher" indique si le champ doit être affiché ou non.
La ligne "Critères" indiquera le ou les critères de
sélection pour la requête.
69
Manipulation des critères
Si vous avez deux conditions regroupées par ou, la deuxième condition est spécifiée dans la ligne OU.
Si les conditions sont regroupées par l’opérateur ET alors elles sont spécifiées dans la même ligne CRITERES.
Une donnée de type texte doit être écrite entre guillemets ("...").
Les nombres sont écrits tels quels.
La date et / ou l'heure doivent être placées entre dièses (#), avec séparation de jours, mois et année par la barre oblique (/) ou un trait d'union (-), heure avec séparation de minute et seconde par deux points (:).
Access met à notre disposition en plus des opérateurs (=, <>, <, >, <=,
>=), les opérateurs suivants:
Opérateur Signification Exemple
Entre Pas Entre
Sélectionne les enregistrements pour lesquels la valeur d'un champ est
comprise dans un intervalle de valeurs
Entre "A" et « D"
Pas Entre 20 et 30 Entre #01/01/18# et
#31/12/18#
In Pas In
Sélectionne les enregistrements pour lesquels la valeur d'un champ est
comprise dans une liste.
In ("Rabat "; "Fès") Pas In (1;3;5)
Est NULL Est pas
NULL
Sélectionne les enregistrements pour
lesquels un champ est vide ou non Est NULL Est pas NULL
Comme Sélectionne les enregistrements
contenant une donnée approximative. Comme « ma*"
Pas Sélectionne les enregistrements ne
correspondant pas au critère Pas Entre "A" et "D"
Exemple de requête de sélection avec des critères
Dans notre BD « Gestions de Commandes », on souhaite afficher, le code, le nom, le prénom et la ville des clients habitants Casablanca ou Rabat. Le résultat doit être trié par Nom en ordre croissant.
Pour ce faire, nous allons double-cliquer sur tous les champs nécessaires à savoir : CodeClient, Nom, Prenom, Ville.
On se place sur la ligne de critères du champ Ville et on saisit soit :
"Casablanca" Ou "Rabat" soit : In("Casablanca";"Rabat").
Autre possibilité : La requête peut aussi être formulée de la façon suivante :
Avec cette méthode, on peut saisir autant de critères pour un même champ qu’on le souhaite en les saisissant les uns en dessous
73
Cliquer ensuite sur le bouton Exécuter. Vous aurez bien les enregistrements comportant les clients habitants Casablanca et Rabat.
Afficher le code, le nom et le prénom des clients dont le nom ne commence ni par « A » ni par « S » et qui sont de Casablanca ou Mohammedia.
Cette requête sert à voir les caractères spéciaux tel que " * " et "?".
Le caractère "?" est utile pour remplacer un caractère dans la requête. Par exemple, une recherche sur b?lle pourrait donner les résultats suivants: balle, belle, bille, bulle.
Le caractère "*" sert à remplacer une série indéterminée de caractères. On connaît le début mais pas la fin. Par exemple, une recherche en utilisant bal* pourrait donner le résultat suivant:
balade, balai, balance, balcon, baleine, balise, balle, ballerine, ...
Exemple 2
75
Pour le critère du champ "Nom", écrire seulement Pas A* et Pas S*. Access se chargera d’ajouter Comme et les guillemets pour indiquer que les enregistrements recherchés ne commencent ni par « A » ni par « S ».
Création d’une requête simple de sélection en mode SQL
1. La construction d'une requête commence par l'identification des informations à afficher (Clause SELECT)
2. On détermine ensuite les restrictions nécessaires à l'obtention du résultat (clause WHERE)
3. On repère ensuite dans le modèle relationnel la ou les tables concernées par l'ensemble des champs mis en ouvre dans les points 1 et 2 : on en déduit les tables nécessaires à la clause FROM
4. On triera enfin grâce à la clause ORDER BY éventuelle.
77
Une requête sélection SQL commence toujours par la clause SELECT et se termine par un point virgule.
Syntaxe exemple :
Select champ1, champ2, … From tableSource
WHERE « Conditions sur les champs » Order by [champ i] ASC/DESC ;
Champ1, champ2 sont les champs à afficher en résultat.
tableSource : indique la table d’où viennent les champs utilisés dans la requête.
Les critères sont ajoutés après la clause Where (On utilise les opérateurs de critères en anglais).
La dernière ligne indique que le résultat sera trié par le [champ i] en ordre croissant (ASC) ou décroissant (DESC).
CLAUSE Explication
SELECT Liste les champs ou calculs à afficher ou
restituer
FROM Liste les tables nécessaires à
l'interrogation
WHERE Liste des conditions limitant la
recherche d'information. N'apparaît qu'une fois
AND Précise que les conditions se cumulent
OR Précise des conditions alternatives
NOT Exprime le contraire d'une condition
ORDER BY Effectue un tri croissant (ASC) ou
décroissant (DESC) sur certains champs
GROUP BY Effectue un tri puis réalise des calculs
par sous catégories.
Inclut donc la notion d'ORDER BY.
HAVING Précise des conditions sur les résultats
des calculs
79
Pour créer une requête de sélection SQL on procède de la même manière que la création en mode QBE :
Fermer toutes les tables ouvertes de la BD.
Aller à l’onglet « Créer » puis dans le groupe « Requêtes » cliquer sur l’élément « Création de requête ».
Fermer la fenêtre « Afficher la table », On obtient l’affichage suivant:
Cliquer ici pour basculer en mode SQL
Exemples
On reprend les exemples précédents en mode SQL
Exemple 1 : Dans la BD « Gestions de Commandes », on souhaite afficher, le code, le nom, le prénom et la ville des clients habitants Casablanca ou Rabat. Le résultat doit être trié par Nom en ordre croissant.
SELECT CodeClient, Nom, Prenom, Ville FROM Clients
WHERE Ville In ("Casablanca","Mohammedia") ORDER BY Nom;
81
SELECT CodeClient, Nom, Prenom, Ville FROM Clients
WHERE Ville = "Casablanca" Or Ville = "Mohammedia"
ORDER BY Nom;
Ou bien :
Exemple 2 : Afficher le code, le nom et le prénom des clients dont le nom ne commence ni par « A » ni par « S » et qui sont de Casablanca ou Mohammedia.
SELECT CodeClient, Nom, Prenom, Ville FROM Clients
WHERE Nom Not Like "A*" And Nom Not Like "S*" AND Ville In ("Casablanca","Mohammedia")
ORDER BY Nom;
Requête de sélection avec des champs calculés
Il est possible de créer dans une requête des champs calculés qui donnent le résultat d'une formule utilisant le contenu des champs de l'enregistrement.
Pour ce faire, aller dans la ligne des champs et ajouter le nom du nouveau champ calculé (ALIAS) suivi des deux points « : » suivi de la formule ou l’expression utilisée pour le calcul.
83
Exemple
: Dans la BD « Gestion des commandes », on souhaite afficher le numéro des commandes contenant le produit de référence « Pdt01 », la quantité commandée et le prix total hors taxesAlias
Requête de sélection avec les fonctions de traitement des dates
Quelques fonctions de traitement des dates:
Fonction Signification
Jour(Date) Affiche le jour de la date en paramètre Mois(Date) Affiche le mois de la date en
paramètre
Année(Date) Affiche l’année de la date en paramètre
Date() Affiche la date d’aujourd’hui (du
système) Diffdate("format"; date1;
date2)
Affiche la différence en nombre d’années, de jours, de mois, de
trimestres,… entre la date « date1 » et la date « date2 ».
Format(Date; "format") Affiche le mois/jour de la date en
85
Remarque :
Le premier paramètre de la fonction « Diffdate» peut avoir les valeurs suivantes : "t" (différence en nombre de trimestres); "m"
(de mois); "e" (de semaines); "j" (de jours); "h" (d’heures); "n" (de minutes); "s" (de secondes).
Les formats utilisés dans la fonction « Format » pour les types de données date/heure sont : « aaaa », « mmmm », « jjjj », « t », ….
Format(Date ;"mmmmm") affiche les mois en lettres ("jjjj" pour les jours). « mmm » affiche les mois abrégés, « mm » affiche les mois par deux chiffres, « m » affiche les mois en chiffre.
Format(Date ;"t") affiche le trimestre en chiffres.
Exemple :
Dans la BD « Gestion des Commandes », on souhaite afficher le numéro et la date des commandes passées entre le 30 novembre 2018 et le 31 janvier 2019.
87
Exemple :
Dans la BD « Gestion des commandes », on souhaite afficher le code du client, le numéro et la date de leurs commandes faites au cours du premier trimestre de l’année 2019 :
Ou
Alias
Requête de sélection avec les fonctions de traitement des dates en SQL
Fonctions de traitement des dates :
Fonction Signification
Day(Date) Affiche le jour de la date en paramètre Month(Date) Affiche le mois de la date en
paramètre
Year(Date) Affiche l’année de la date en paramètre
Date() Affiche la date d’aujourd’hui (du
système) Datediff("format", date1,
date2)
Affiche la différence en nombre d’années, de jours, de mois, de
trimestres,… entre la date « date1 » et la date « date2 ».
Format(Date, "format") Affiche le mois/jour de la date en
89
Remarque :
Le premier paramètre de la fonction « Datediff» peut avoir les valeurs suivantes : "q" (différence en nombre de trimestres); "m"
(de mois); "w" (de semaines); "d" (de jours); "h" (d’heures); "n" (de minutes); "s" (de secondes).
Les formats utilisés dans la fonction « Format » pour les types de données date/heure sont : « yyyy », « mmmm », « dddd », « q », ….
Format(Date ;"mmmmm") affiche les mois en lettres ("dddd" pour les jours). « mmm » affiche les mois abrégés, « mm » affiche les mois par deux chiffres, « m » affiche les mois en chiffre.
Format(Date ;"q") affiche le trimestre en chiffres.
Exemple 1: Dans la BD « Gestion des Commandes », on souhaite afficher le numéro et la date des commandes passées entre le 30 novembre 2018 et le 31 janvier 2019.
SELECT NumCmd, DateCmd FROM Commandes
WHERE DateCmd Between #11/30/2018# And #1/31/2019#;
SELECT NumCmd, DateCmd FROM Commandes
WHERE DateCmd >=#11/30/2018# And DateCmd <=#1/31/2019#;
Ou bien :
Exemples de requêtes en SQL :
91
Exemple 2: Dans la BD « Gestion des commandes », on souhaite afficher le code du client, le numéro, l’année et la date de leurs commandes faites au cours du premier trimestre de l’année 2019
Remarque
: AnnéeCmd est un champ calculé. Pour ajouter un champ calculé en SQL on commence par la formule ou l’expression (comme Year(DateCmd) en exemple) suivi de AS suivi de nom du nouveau champ (Alias).SELECT NumCmd, DateCmd, Year(DateCmd) AS AnnéeCmd FROM Commandes
WHERE Year(DateCmd)=2019 AND Mois(datecmd) Between 1 And 3;
SELECT NumCmd, DateCmd, Year(DateCmd) AS AnnéeCmd FROM Commandes
WHERE Year(DateCmd)=2019 AND Format(datecmd,"mmmm") Between "Janvier" And "Mars";
Ou
Alias
Remarque : En SQL il n’y a qu’un seul point virgule. Toutes les
expressions en QBE qui contiennent des points virgules se changent en virgules en passant à SQL