Title: Bases%20de%20donn
1Bases de données
- Access, Mysql et autresSystèmes de Gestion de
Base de Données Relationnelle (SGBDR) (DBMS)
2Sommaire
- Base de données définition et utilisation
- Pourquoi pas Excel ?
- BdD éviter la redondance
- Langage SQL et requêtes
3Définition
- Base de données
- Un ensemble de données
- Une structuration forte
- Une gestion de plusieurs utilisateurs simultanés
- Un ensemble doutils permettant dextraire
rapidement des informations de lensemble des
données
Ensemble structuré de données enregistrées avec
le minimum de redondances pour satisfaire
simultanément plusieurs utilisateurs de façon
sélective et en un temps opportun.
4Utilisation
- Voir article Quel SGBD choisir
- Access
- Paradox
- Sybase
- SQL Server
- Oracle
- MySQL (libre avec PHP)
- InterBase
- PostGreSQL
- SQLite
5Bases de données omniprésentes
- Les bases de données sont omniprésentes
- Hautes Écoles, Universités
- Données sur les étudiants
- Id, nom, prénom, classe, section, cycle, année
- Données sur les formations
- matière, intervenant (enseignant), public, salle
- Données sur les résultats
- matière, intervenant (enseignant), pondération,
résultat - Entreprises
- fichiers clients, fournisseurs, commandes
- facturation,
- gestion de stock, inventaire.
6Bases de données omniprésentes
- Les bases de données sont omniprésentes
- Bibliothèques
- Données sur les lecteurs
- Id, nom, prénom, statistiques, montant dû
- Données sur les livres
- Titre, ISBN, auteur, genre, code, emplacement,
emprunts, collection, éditeurs - Données sur les auteurs
- Livres, adresse, nom, prénom,
- Privé
- Collection de CD ou DVD
- Contenu de congélateur
7Pourquoi pas Excel ? (1)
- Et cest parti jattends ma première commande
8Pourquoi pas Excel ? (2)
- Premier client, première commande
9Pourquoi pas Excel ? (3)
- Dans sa commande, mon client désire plusieurs
produits
10Pourquoi pas Excel ? (4)
- Chiffre daffaires pour les tomates ?
11Pourquoi pas Excel ? (5)
- Les défauts
- Redondance
- Données répétées (info client si plusieurs
commandes, info produit si plusieurs fois
commandé) - Réécriture
- Orthographe, perte de temps, mise à jour
difficile - Nombre de lignes
- 65535 216 1
- Mélange de divers types de données
- Client, produit, commande, prix,
- gestion de stock, inventaire.
12Base de données (1)
- Exemple un carnet dadresses organise les
informations sur vos interlocuteurs en plusieurs
catégories nom, numéro de téléphone fixe, gsm,
fax, adresse, e-mail, etc.
Une base de données est un ensemble organisé
dinformations structurées
13Base de données (2)
Nom Prénom Adresse Tél Fax E-mail
Nom1Nom2
Une table contient des enregistrements en
lignes, correspondant aux individus (animés ou
inanimés)
et des champs en colonnes, décrivant chaque
individu
14Éviter la redondance (1)
Nom Prénom Classe Matières
Durand Pierre 1NSSE Compta1
Durand Pierre 2NSSE Compta2
Dupond Paul 1NSSE Compta1
Dupond Paul 1NSSE Droit1
Durand Pierre 1NSSE Droit1
Dupond Paul 1NSSE Stat
Durand Pierre 1NSSE Stat
Nom Prénom Classe
Durand Pierre 1NSSE
Durand Pierre 2NSSE
Dupond Paul 1NSSE
Dupond Paul 1NSSE
Durand Pierre 1NSSE
Dupond Paul 1NSSE
Durand Pierre 1NSSE
Classe Matières
1NSSE Compta1
2NSSE Compta2
1NSSE Compta1
1NSSE Droit1
1NSSE Droit1
1NSSE Stat
1NSSE Stat
15Éviter la redondance (2)
Nom Prénom Classe Matières
Durand Pierre 1NSSE Compta1
Durand Pierre 2NSSE Compta2
Dupond Paul 1NSSE Compta1
Dupond Paul 1NSSE Droit1
Durand Pierre 1NSSE Droit1
Dupond Paul 1NSSE Stat
Durand Pierre 1NSSE Stat
Nom Prénom Classe
Durand Pierre 1NSSE
Durand Pierre 2NSSE
Dupond Paul 1NSSE
Classe Matières
1NSSE Compta1
2NSSE Compta2
1NSSE Droit1
1NSSE Stat
n
n
Attention Un élève peut suivre plusieurs cours
À éviter
un même cours peut être suivi par plusieurs élèves
16Éviter la redondance (3)
Client
Produit
NoClient RaisonSociale Adresse1
C987 Dupont Co 12 rue Par..
C986 Durand Cie 71 cbru
.
Ref prod Descript Puht
P1234567 Tomate 10
B9873685 Banane 4
C9875986 Poire 180
n
n
Attention Un client peut acheter plusieurs
produits
À éviter
un même produit peut être acheté par plusieurs
clients
17Redondance (4), relation fonctionnelle
Client
Produit
Ref prod
Descript
Puht
TxTVA
NoClient
RaisonSociale
Adresse1
1
Acceptable
Commande
.
Commande
Comprendre
n
NoComm
DateCommande
NoClient
NoComm
Ref Prod
Quantité
Attention Un client peut passer plusieurs
commandes
Mais Une commande ne peut être passée que par
un seul client
18Redondance (4), relation fonctionnelle
Client
Produit
Ref prod
Descript
Puht
TxTVA
NoClient
RaisonSociale
Adresse1
1
Commande
.
Commande
Comprendre
(ou Ligne de commande)
Acceptable
n
n
1
NoComm
DateCommande
NoClient
NoComm
Ref Prod
Quantité
Attention Une commande peut comprendre
plusieurs couples commande-produit (lignes de
commandes) pour des quantités différentes
Mais Un couple commande-produit ou une ligne
de commande ne peut être compris(e) quune fois
que dans une seule commande
19Redondance (4), relation fonctionnelle
Client
Produit
Ref prod
Descript
Puht
TxTVA
NoClient
RaisonSociale
Adresse1
1
1
Acceptable
Commande
.
Commande
Comprendre
1
n
n
1
NoComm
DateCommande
NoClient
NoComm
Ref Prod
Quantité
Attention Un produit ne peut être compris que
dans un seul couple commande-produit pour une
quantité précise
Et Un couple commande-produit ne peut
comprendre quun seul produit
20Données saisies ou calculées
saisies
calculées
21Données tables
Lanalyse de la liste des données saisies permet
de mettre en évidence des ensembles homogènes.
Exemples - données concernant les clients
- données concernant les produits
Chacun de ces ensembles est représenté par une
table.
Exemples - la table client
- la table produit
7
22Table sa structure
Une table se compose - de colonnes où sont
indiqués les différents attributs
- de lignes où sont rangées les valeurs des
différents attributs.
Lensemble des valeurs dune ligne est appelé un
enregistrement.
DÉPENDANCE FONCTIONNELLE La connaissance dune
valeur de lattribut clé primaire détermine de
façon unique la connaissance des valeurs des
autres attributs, on dit quil existe entre eux
une dépendance fonctionnelle. Exemple la
connaissance du numéro de client nous permet de
retrouver son nom et son adresse.
Un attribut principal appelé clé primaire doit
permettre didentifier chaque enregistrement sans
ambiguïté.
Les valeurs de lattribut clé primaire doivent
donc obligatoirement être uniques. Pour la table
client, Numcli répond le mieux à ce
critère. La clé primaire est généralement située
en première colonne.
8
23Table modèle relationnel (1.1)
- Entités
- attributs (caractéristiques) description
- ex. clients, produits, élèves, citoyens belges,
motos belges ... - Clé primaire unique
- Relations
- relation entre entités
- ex. commandes (clients, produits),proprio
(moto, citoyen)conjoint (citoyen1, citoyen2)
24Table modèle relationnel (1.2)
Nom de la relation/entité (en majuscules) suivi
de parenthèses
CLIENT
CLIENT ( NumCli, Nomcli, Adresseruecli,
AdresseCPcli, Adressevillecli)
Attributs séparés par des virgules
Clé primaire en premier lieu et soulignée
unique.
8
25Base modèle relationnel entre deux tables (2.1)
La connaissance dun numéro de commande nous
permet de retrouver de façon unique un numéro de
client.
Dépendance fonctionnelle
Il existe donc une dépendance fonctionnelle entre
deux tables (commande et client).
Pour matérialiser ce lien, une colonne (numcli)
sera ajoutée à la table source de la dépendance
fonctionnelle. Celle-ci sera appelée clé
étrangère.
1
n
Attribut commun aux deux tables matérialisant la
dépendance fonctionnelle.
8
10
26Base modèle relationnel entre deux tables (2.2)
1
n
Attribut commun aux deux tables matérialisant la
dépendance fonctionnelle.
CLIENT ( NumCli, Nomcli, Adresseruecli,
AdresseCPcli, Adressevillecli)
COMMANDE ( NumCom, datecom, NumCli )
Si la relation comprend un attribut clé
étrangère, celui-ci sera placé à la fin et
précédé du signe .
8
10
27Table modèle relationnel entre deux tables
(2.3)
- Ce qui est nécessaire
- 2 tables (ou requêtes ou une combinaison des
deux) - 1 champ en commun dans chacune des tables
- même type de champ (texte avec texte, numérique
avec numérique ...) - même longueur (pas un champ long de 15 caractères
avec un autre long de 50 caractères !) - même genre d'information (Ex. Code d'inventaire
avec des codes d'inventaires, NAS avec NAS ...) - Et vive les clés primaires et étrangères !!!
28Table modèle relationnel entre deux tables
(2.4)
- La table Fournisseurs contient toutes les
informations de contact au sujet de ces
entreprises
- Quant à la table Produits, elle fait référence à
la table Fournisseurs, mais elle ne doit pas
forcément inclure toutes les informations de
contact de tous les fournisseurs.
29Base modèle relationnel entre plusieurs tables
(1)
La connaissance du numéro de commande et de la
référence du produit nous permet de retrouver de
façon unique la quantité commandée.
Dépendance fonctionnelle composée
Il existe donc une dépendance fonctionnelle
multiple ou composée à partir des tables
PRODUIT et COMMANDE .
Pour matérialiser ce double lien, une table
supplémentaire COMPRENDRE sera créée.
Celle-ci sera composée dune clé primaire
concaténée NumcomRefprod et de lattribut
quantite
8
10
12
30Base modèle relationnel entre plusieurs tables
(2)
CLIENT ( NumCli, Nomcli, Adresseruecli,
AdresseCPcli, Adressevillecli)
PRODUIT ( Refprod, Designprod, PUprod)
COMMANDE ( NumCom, datecom, NumCli )
COMPRENDRE ( NumCom, Refprod, Quantité )
Dans le cas dune clé primaire concaténée,
lensemble des attributs formant la clé est
souligné.
8
10
12
31Duferco
- Duferco produit des brames quelle vend.
- Brame La brame est un demi-produit
sidérurgique. C'est la matière première utilisée
pour la fabrication des tôles ou des plaques sur
les trains de laminoirs. - La brame ou slab est une masse d'acier de forme
parallélépipédique de fortes dimensions (plus de
1000 mm de largeur pour plus de 10 mètres de long
et un poids de plusieurs dizaines de tonnes),
obtenue soit directement de coulée continue soit
après réduction d'un lingot dans un slabbing
lequel est un train de laminoirs dégrossisseur.
32Duferco (2)
Fourniss Codefourniss
Brames Codebrame
Clients Codeclient
Codecoulée
Coulées Codecoulée
Commandes Codecommande
Codechim
Codebrame Codeclient
Codeequip
Codefourniss
Equipes Codeequip
Compchim Codechim
33Duferco (3)
34Bases tables exemples
- Duferco tables, relations_0,
- Enseignement supérieurx
- Police dIxellesx
- Centre de documentationx
- Réservations théâtrex
- 9e artx
35Créer une base de données (0)
Lors de la création dune table, la clé primaire
et lappartenance des données à un type doivent
être obligatoirement définies. Dautres éléments
peuvent être posés pour assurer le confort et la
sécurité de la saisie.
Contrainte de clé primaire Une fois que la clé
primaire sera désignée et le champ déclaré sans
doublons, les saisies de valeurs identiques
seront impossibles.
Choix du type Il sagit de préciser quel type
de valeurs sera stocké dans le champ. Il existe
trois grands types (numérique, date, texte). Pour
les champs de type texte, il est possible
dintervenir sur la taille du champ, de manière à
optimiser la place occupée sur le support de
stockage.
Contrôle de la saisie Pour faciliter la saisie,
un masque, une valeur par défaut, peuvent être
mis en place.
Contrainte de domaine Il est possible, pour un
champ donné, de limiter les valeurs autorisées à
la saisie. Celles-ci sont indiquées dans la case
Valide si , un message derreur peut y être
associé.
9
36Créer une base de données (1)
- Possibilité de créer avec SQL, mais pas
indispensable - Base de données ensemble de tables
37Créer une base de données (2)
-
- Donner un nom à la Base de données ? extension
.mdb
38Créer une base de données (3)
- La Base de données est créée,
- Elle ne contient aucune Table au départ
39Objets dune base de données (1)
- Tables, Requêtes
- Formulaires, États
- Formulaires,visualisation de tous les attributs
- États,documents à publier
40Objets dune base de données (2)
- Tables, Requêtes
- Formulaires, États
- Formulaires,visualisation de tous les attributs
- États,documents à publier
41Objets dune base de données (3)
- Requêtes,interroger les données
- États,publier et mettre en forme les résultats
- Macros,automatiser des actions à exécuter
- Modules,programmer en VisualBasic
- Tables,entités/relationssaisir les données
- Formulaires,visualiser et faciliter la saisie
des attributs
42Créer une table (0)
3
2
1
43Créer une table données (1)
44Créer une table assistant (2.1)
45Créer une table assistant (2.2)
46Créer une table création (3.1)
47Créer une table création (3.2)
48Créer une table SQL (4)
- CREATE TABLE
- exemple Créer la nouvelle table "table_test"
contenant quatre champs un champ avec un
entier qui doit toujours être saisi et un champ
contenant une chaîne de 5 caractères
- CREATE TABLE table_test ( champ1 int
unsigned champ2 integer CONSTRAINT champ2 NOT
NULL, champ3 char(5), champ4 date)
49Les types dattributs (1)
50Les types dattributs (2)
- Texte max 255 caractères
- Mémo max 65 535 caractères
- Numérique entier, simple précision, nbre
décimales, etc. - Date/Heure année 100?9999, 12 ou 24 h
- Monétaire nombres réels de 1 à 4 décimales
- NuméroAuto incrémentation automatique
- Oui/Non Vrai/Faux , Actif/inactif
- Objet OLE (Object Linking and Embedding) feuilles
de calcul, sons, vidéos, graphiques - Lien Hypertexte chemin complet (local ou
internet)
51Les masques de saisie (1)
52Les masques de saisie (2)
53Les masques de saisie (3)
54Les masques de saisie (4)
Symbole Signification
0 Chiffre de 0 à 9 obligatoire
9 Chiffre ou espace facultatif
Chiffre ou espace ou ou -
L Lettre de A à Z obligatoire
? Lettre de A à Z non obligatoire
A Lettre ou chiffre obligatoire
a Lettre ou chiffre non obligatoire
Caractère quelconque obligatoire
C Caractère quelconque non obligatoire
lt Passe tout en minuscules (bas de casse)
gt Passe tout en majuscules (haut de casse)
! Saisie à partir de la droite
55Les masques de saisie (5)
masque sens exemples
00 00 00 00 00 Numéro de téléphone français nouvelle numérotation 04 12 34 56 78
00 999 Code postal français (département obligatoire) 75 123 ou 59
gtCCCCCCCCCCCCCCCCCCCC Nom de maximum 20 caractères, converti en capitales VAN DELDER ou BOND
gtCltCCCCCCCCCCCCCCCCCCC Prénom de maximum 20 caractères, 1re lettre capitale, lettres suivantes bas de casse Guy ou James 007
0 00 00 00 0000 Matricule denseignant sur précisément 11 chiffres 1 53 06 07 0557
00/00/0099 Date avec année possible sur 2 ou 4 chiffres 07/06/1953 ou 22/02/53
(000) 000-0000 Téléphone avec indice régional obligatoire (207)555-0199 ou (165)345-2025
56Les masques de saisie (6)
masque sens exemples
(999) 000-0000! Téléphone avec indice régional facultatif remplissage par la droite (207)555-0199 ou ()345-2025
(000) AAA-AAAA Téléphone américain (derniers chiffres peuvent être des lettres) (206) 555-TELE
999 Nombre positif ou négatif, composé de quatre caractères ou moins, sans séparateur de milliers ni séparateur décimal. 2345 ou -20
gtL????L?000L0 Combinaison de lettres obligatoires (L), lettres facultatives (?) et nombres obligatoires (0). Le signe gt oblige les utilisateurs à entrer toutes les lettres en capitales. GREENGR339M3 ou MAY R462B7
0 00 00 00 0000 Matricule denseignant sur précisément 11 chiffres 1 53 06 07 0557
00/00/0099 Date avec année possible sur 2 ou 4 chiffres 07/06/1953 ou 22/02/53
(000) 000-0000 Téléphone avec indice régional obligatoire (207)555-0199 ou (165)345-2025
57Les masques de saisie (5)
58La saisie (1)
59Les listes déroulantes (1)
Monsieur, M., Mr, Dr, Me, Madame, Mme, Mlle,
60Les listes déroulantes (2)solution simple, par
valeurs souhaitées
Dans la table, créer le champ Titre
Cliquer sur Assistant Liste de choix
Sélectionner "Je taperai les valeurs souhaitées"
Dresser la liste dans Contenu
61Les listes déroulantes (3)
62Les listes déroulantes (4)
63Les listes déroulantes (5)
64Les clefs (1)
65Lier des tables (1)
66Lier des tables (2)
67Lier des tables (3)
68Les filtres (1)
Les filtres permettent de limiter simplement, de
façon temporaire, les enregistrements affichés
dans une table.
- On peut filtrer selon deux méthodes
- le filtre sur un seul critère
- ex les étudiants qui habitent Braine-le-Comte
- le filtre sur plusieurs critères
- ex les étudiants qui habitent Braine-le-Comte
ou ceux qui sappellent Durand .
69Les filtres (2) à un seul critère
- on se positionne sur l'enregistrement d'un client
habitant Paris,
- on sélectionne le mot Paris dans le champ
Ville
- on clique sur licône de filtre
et voilà
- pour revenir à un affichage non filtré, on clique
sur licône
et nous voilà comme avant
70Les filtres (3a) à plusieurs critères( filtre
par formulaire)
- on clique sur licône de filtre
- un enregistrement vide apparaît
- on sélectionne Machin dans le champ Nom
- Puis on sélectionne ou dans le coin inférieur
gauche, on obtient un nouvel enregistrement vide
71Les filtres (3b) à plusieurs critères( filtre
par formulaire)
- on sélectionne Saint-Quentin dans le champ
Ville
- pour terminer (et pas pour revenir à un affichage
non filtré), on clique sur licône
72Les requêtes ( interroger une base de données)
- Requête de consultation, (sélection,
interrogation)
- Requêtes dans une table ou plusieurs tables
- Tri, filtres (critères), calculs, regroupement
- Projection, sélection / restriction, jointure
- Requête daction (attention)
- Mise à jour
- Suppression
- Ajout
- Création de table
- Requête danalyse croisée
- Requête SQL
- Langage spécifique, permet une exécution fine
des requêtes ci-dessus
73Créer une requête de consultation (1)
Interroger une base de données (plusieurs tables
éventuellement) Créer une requête de
consultation
74Créer une requête de gestion (1)
Gérer une base de données (plusieurs tables
éventuellement) Créer une nouvelle table
Modifier la structure dune table Supprimer
une table Créer ou supprimer un index.
75Créer une requête de manipulation (1)
Manipuler une base de données (plusieurs tables
éventuellement) Ajouter des données dans une
table Modifier les données dune table
Supprimer des données dune table.
76Créer une requête de consultation (1)
Interroger une base de données (plusieurs tables
éventuellement) Créer une requête de
consultation
les noms des clients et ceux des villes où ils
sont domiciliés ?
Projection (dune table) -gt tous les
enregistrements, quelques champs
les noms des clients domiciliés à Paris ?
projection et restriction/sélection (dune table)
-gt quelques champs de quelques enregistrements
spécifiques
les dates des commandes passées par les clients
domiciliés à Paris ?
projection, restriction/sélection et jointure
(de plusieurs tables)
77Créer une requête consultation (2)
Requêteur graphique langage visuel propre à
chaque logiciel, possibilités sont limitées lors
de cas complexes.
SELECT liste des champs à afficher FROM liste
des tables utilisées WHERE champ et critère de
condition AND champ commun aux tables
utilisées ORDER BY champ à trier ASC ou DESC
Les logiciels SGBDR intègrent également un
langage textuel de programmation de requêtes le
SQL (Structured Query language), universel,
normalisé et capable de traiter toutes les
difficultés.
22
78Créer une requête consultation (3)
Les requêtes de consultation en SQL ont
généralement la structure suivante
Linstruction SELECT permet de lister les champs
que lon souhaite obtenir, il correspond à
l opérateur de PROJECTION.
SELECT liste des champs à afficher FROM liste
des tables utilisées WHERE champ et critère de
condition AND champ commun aux tables
utilisées ORDER BY champ à trier ASC ou DESC
Linstruction FROM permet de lister les tables
utiles à la requête.
Les instructions WHERE et AND sont liées. Elles
permettent dintroduire - les critères de
conditions correspondant à lopérateur de
RESTRICTION. - les champs communs aux tables
utilisées correspondant à lopérateur de JOINTURE.
Linstruction ORDER BY permet de demander un tri
sur un champ (ASC pour croissant et DESC pour
décroissant).
22
79Langage des requêtes projection(présentation
théorique)
Une requête de consultation est une interrogation
de la base de données portant sur le contenu
dune ou plusieurs relations. Elle met en jeu des
opérateurs (projection, restriction, jointure).
La projection consiste en un découpage vertical.
Requête1 On souhaite obtenir les noms des
clients (tous) et ceux des villes où ils sont
domiciliés. Pour cela, nous allons utiliser
lopérateur de projection.
15
80Requêtes projection(requêteur graphique)
Les logiciels de gestion de bases de données
(SGBDR) mettent à disposition des utilisateurs un
requêteur graphique (Query by example dans le
logiciel Access) permettant de réaliser des
requêtes de consultation facilement et
intuitivement.
Requête avec projection VILLES DES CLIENTS
Table utilisée dans la requête.
Projection des champs retenus dans la requête. Un
attribut est appelé un champ par le logiciel.
18
81Requêtes projection(langage SQL1)
Projection Exemple Une projection est une
instruction de consultation permettant de
sélectionner un ensemble de colonnes (champs,
arguments) dans une table. Soit la table Clients
qui contient les champs NumCli, NomCli,
Adresseruecli, AdresseCPcli, Adressevillecli
Linstruction Select FROM Clients aura
comme résultat un tableau contenant lensemble de
la table (tous les champs)
Linstruction Select NomCli, Adressevillecli
FROM Clients aura comme résultat un tableau
contenant uniquement les informations (les
champs) correspondant(e)s.
82Requêtes projection(langage SQL2)
Projection Suite Une projection est une
instruction de consultation permettant de
sélectionner un ensemble de colonnes dans une
table. Soit la table Clients qui contient les
champs NumCli, NomCli, Adresseruecli,
AdresseCPcli, Adressevillecli
Linstruction Select DISTINCT Adressevillecli
FROM Clients aura comme résultat lensemble des
villes où lon a des clients (sans doublons)
Linstruction Select NomCli, Adressevillecli
FROM Clients ORDER BY Adressevillecli aura
comme résultat la liste des clients, classés
alphabétiquement par commune.
83Requêtes projection
84Requêtes restriction/sélection(présentation
théorique)
La restriction ou sélection consiste en un
découpage horizontal.
La projection consiste en un découpage vertical.
Requête2 On souhaite obtenir les noms des
clients domiciliés à Paris. Nous conserverons le
nom de la ville dans laffichage. Pour cela, nous
allons utiliser les opérateurs de projection et
de restriction/sélection.
16
85Requêtes restriction sélection(requêteur
graphique)
Table utilisée dans la requête.
Projection des champs retenus dans la requête.
Restriction sur le champ adressevillecli en
posant comme critère paris .
Requête avec projection et restriction CLIENTS
PARISIENS
19
86Requêtes restriction sélection (langage SQL1)
Restriction - sélection Exemple Une
restriction est une instruction de consultation
permettant de sélectionner un ensemble de lignes
dans une table, selon un critère fixé. Soit la
table Clients qui contient les champs NumCli,
NomCli, Adresseruecli, AdresseCPcli,
Adressevillecli
Linstruction Select Nomcli FROM Clients WHERE
Adressevillecli"paris" aura comme résultat la
liste des clients parisiens
Linstruction Select NomCli, Adressevillecli
FROM Clients WHERE Adressevillecli"paris" OR
Adressevillecli"lille" aura comme résultat la
liste des clients parisiens ou lillois.
87Requêtes restriction sélection (langage SQL2)
Soit la table ETUDIANT (NEtudiant, Nom, Age,
CodePostal, Ville) SELECT FROM ETUDIANTWHERE
Age IN (19, 20, 21, 22, 23) SELECT FROM
ETUDIANTWHERE Age BETWEEN 19 AND 23 SELECT
FROM ETUDIANTWHERE CodePostal LIKE 70
SELECT FROM ETUDIANTWHERE CodePostal LIKE
70?0 SELECT FROM ETUDIANTWHERE Ville
IS NULL // Étudiants pour lesquels la ville
n'est pas renseignée SELECT FROM
ETUDIANTWHERE Ville IS NOT NULL //
Étudiants pour lesquels la ville est renseignée
88Requêtes restriction sélection (exemple 1)
Soit une base contenant plusieurs tables, soit la
table Clients On clique sur requêtesnouveau/e
llemode création // Étudiants pour lesquels
la ville est renseignée
89Requêtes combinaison de critères 1
Linstruction Select titre FROM Tableaux WHERE
(expo NOT LIKE paris) AND ((année BETWEEN
1600 And 1699) OR (année BETWEEN 1900 And
1999)) aura comme résultat la liste des titres
des tableaux ? non exposés à Paris, ? et datant
des XVIIe ou XXe siècles
90Requêtes combinaison de critères 2
Et
Ou
91Requêtes combinaison de critères 3
Et/ou 1
Et/Ou 2
Plusieurs Ou in(xyzw)
92Langage des requêtes restriction sélection
93Requêtes consultation jointure(présentation
théorique)
La jointure permet de lier deux tables ayant un
attribut commun.
La restriction consiste en un découpage
horizontal.
La projection consiste en un découpage vertical.
Requête3 On souhaite obtenir les dates des
commandes passées par les clients domiciliés à
Paris Pour cela, nous allons utiliser les
opérateurs de projection,de restriction et de
jointure.
17
94Requêtes jointure(requêteur graphique)
Requête avec projection, restriction et jointure
DATES DE COMMANDES DES CLIENTS PARISIENS
Tables utilisées dans la requête.
Jointure liant les deux tables ayant un champ
commun numcli .
Projection des champs retenus dans la requête.
Restriction sur le champ adressevillecli avec
le critère paris .
20
95Requêtes jointure(langage SQL1)
Jointure Exemple Une jointure est une
instruction permettant de sélectionner un
ensemble de lignes dans plusieurs tables (liées),
selon un critère fixé. Soit les tables Client,
Commande qui contient les champs NumCli,
NomCli, Adresseruecli, AdresseCPcli,
Adressevillecli NumCom, datecom,
NumCli
Linstruction Select Nomcli, Adressevillecli,
datecom FROM Clients, Commande WHERE
Adressevillecli"paris AND Clients.NumCli
Commande.NumCli aura comme résultat la liste des
dates de commandes des clients parisiens
96Langage des requêtes jointure
97Langage des requêtes jointure
98Les requêtes paramétrées
Dans la ligne Critères du (ou des) champs
concerné(s) par le paramétrage, entrer entre
crochets linvite qui apparaîtra dans la
boîte de dialogue.
La requête est alors exécutée en fonction de la
réponse de l'opérateur.
99Requêtes analyse croisée
Il s'agit d'un tableau interactif qui contient
des données de synthèse constituées à partir
d'une BDD interne (Access) ou externe (SQL
Server, etc.) que l'on peut manipuler à l'aide de
fonctions statistiques pour les analyser sous
divers angles.
Le vocable dynamique découle du fait que l'on
peut faire pivoter les titres des colonnes et
des lignes pour obtenir différentes
présentations analytiques des données.
- Exemples,
- récapituler les ventes par service, par mois ou
par vendeur - subdiviser ces catégories par produit
- comparer les ventes réalisées et les dépenses
avec les montants budgétés par mois, par
trimestre ou par année.
Par rapport à une requête Sélection, les
informations obtenues sont plus compactes et se
prêtent donc mieux à une analyse.
100Requêtes analyse croisée
Par rapport à une requête Sélection, les
informations obtenues sont plus compactes et se
prêtent donc mieux à une analyse.
101Requêtes fonctions de calcul
- Les fonctions suivantes peuvent être utilisées
dans une clause SELECT pour effectuer des calculs
sur le résultat de la requête - COUNT nombre d'enregistrements (Pour éviter de
compter les doublons, on peut ajouter le
paramètre DISTINCT) - SUM somme d'une colonne
- AVG moyenne (average)
- MAX maximum d'une colonne
- MIN minimum d'une colonne
102Requêtes fonctions de calcul
- Select AVG(tableagrégation.nombre) as
Moyennedenombre from tableagrégation
103Requêtes fonctions de calcul
- Select COUNT() from PERSONNEL? nombre de
salariés
104Requêtes fonctions de calcul
- Select SUM(salaire) from PERSONNELwhere
fonction maitre-assistant ? Somme des
salaires des maître-assistant
105Requêtes regroupement sans fonction de calcul
1
- Select tableagrégation.ville from
tableagrégationGROUP BY tableagrégation.ville
106Requêtes regroupement sans fonction de calcul
2
107Requêtes fonctions de calcul et groupement
- Select AVG(tableagrégation.nombre) as
Moyennedenombre from tableagrégationGROUP BY
tableagrégation.ville
108Requêtes groupement, sélection et fonction de
calcul
On affiche les villes pour lesquelles la moyenne
du champ "nombre" est supérieure à 400. On
affiche aussi les moyennes du champ "nombre" pour
les villes retenues.
Select tableagrégation.ville, avg(nombre) from
tableagrégationGROUP BY tableagrégation.villeHAV
ING avg(nombre)gt400
109Requêtes groupement, sélection et fonction de
calcul 2
On affiche les numéros de client et le nombre de
commandes passées.
Select numclient, count() from commandeGROUP
BY numclient
110Requêtes groupement, sélection et fonction de
calcul 3
On affiche pour chaque client ayant passé plus de
2 commandes, quel est le montant minimum, et
maximum des commandes quil a passées.
Select numclient, min(montant), max(montant)
from commandeGROUP BY numclient HAVING
count()gt2
111Requêtes groupement, sélection et fonction de
calcul 4
On affiche pour chaque client ayant passé plus de
2 commandes, son numéro, nom, prénom, nombre de
commandes passées, moyenne et cumul total des
montants, le tout trié par nombre décroissant de
commandes passées, puis par noms, prénoms
croissants
Select cl.numclient, nom, prenom, count(),
avg(montant), sum(montant) from client cl,
commande co WHERE cl.numclient
co.numclientGROUP BY numclient HAVING
count()gt2 ORDER BY 4 desc, nom, prenom
112Requêtes groupement, sélection et fonction de
calcul 5
On affiche pour chaque élément commandé, ceux
dont 90 de la quantité commandée dépasse les 500
unités
Select from details WHERE quantite
quantite 0,1 gt 500
113Requêtes groupement, sélection et fonction de
calcul 6
On affiche pour chaque élément commandé, ceux
dont 90 de la quantité commandée dépasse les 500
unités
Select sum(prixunitaire quantite) from
details WHERE numcommande PO467-2009
114Requêtes requêtes imbriquées (intersection) 1
On affiche les étudiants qui se sont inscrits
après être passés par la journée portes ouvertes
Select numetud, nom, prenom from students
WHERE numetud in (select numetud
from JPO)
Select numetud, nom, prenom from
students Intersect select numetud
from JPO)
115Requêtes requêtes imbriquées (intersection) 2
On affiche les étudiants qui se sont inscrits
sans être passés par la journée portes ouvertes
Select numetud, nom, prenom from students
WHERE numetud NOT in (select numetud
from JPO)
Select numetud, nom, prenom from students Minus
select numetud from JPO)
Select numetud, nom, prenom from
students Except select numetud from
JPO)
116Requêtes exemples et exercices
- Travail (présentation Powerpoint) relatif aux
requêtes (les fautes dorthographe sont de leurs
auteurs) - Fait par Hyacinthe Laini (59 dias)
- Fait par Didric Sluis (21 dias)
- Fait par Céline Stevens (21 dias)
- Fait par Giusy Talluto (27 dias)
- Fait par Jonathan Visage (23 dias)
117Requêtes exemples et exercices
- Travail (présentation Powerpoint) relatif aux
requêtes, une cinquantaine dexemples (les fautes
dorthographe sont de leurs auteurs) - NET_PROVENCE,fait par Richit Nathalie, Pouplier
Thierry, Patrice Viaud, Patrick Laupies (42 dias)
118Formulaires assistant (1)
119Formulaires assistant (2.1)
120Formulaires assistant (2.2)
121Formulaires assistant (3)
122Formulaires assistant (4)
123Formulaires assistant (5)
124Formulaires assistant (6)
125Formulaires instantané (6)
126Formulaires assist. Graph. (7)
127Formulaires assist. Graph. (8)
128Formulaires assist. tabl. dyn. (9)
129États création (1)
130États création (2)
131États création (3)
132États création (4)
133États création (5)
134États création (6)
135États création (7)
136États assistant étiquettes (8)
137États assistant étiquettes (9)
138États calculs (10)
139États tris regroupements (11)
140Cas Baronnia (énoncé 1)
- Dans la haute société, Madame la Baronne Damien
Fèz de V'nir (Ukraine) est une figure
incontournable. Elle organise avec un brio
inégalé des réceptions qui vont du souper simple
entre amis (24 couverts, 5 services), à la soirée
de mariage princier. - Inutile de dire que ses invitations sont
extrêmement prisées. Et pour cause... - Madame la Baronne, avec beaucoup de tact, veille
à inviter au moins une fois l'an chacune de ses
relations. En bonne hôtesse, elle sait présenter
ses invités les uns aux autres en rappelant les
professions respectives et, le cas échéant, à
quelle réception ils ont déjà eu l'occasion de se
rencontrer. - Le nombre d'amis et relations ne faisant que
croître, Madame la Baronne envisage - non sans
une certaine répugnance - de recourir à
l'ordinateur ("Vous savez très chère, cette chose
pleine de puces et de souris..."). Sur
recommandation de son ami intime, le Comte René
de Saissandre, qui vous connaît très bien (si, si
...), elle décide de vous confier la résolution
de cet angoissant problème.
141Cas Baronnia (énoncé 2)
- Madame la Baronne désire
- établir un carnet d'adresse de ses amis,
relations et connaissances (en distinguant
chacune de ces catégories) - savoir si telle personne était présente à la
dernière réception, si elle était malade ou
excusée - savoir depuis combien de temps telle personne n'a
plus été invitée et adresser des invitations à
celles qui n'ont plus été invitées depuis 8 mois
- connaître l'âge (en toute discrétion bien sûr),
la profession et le revenu annuel (en toute
discrétion aussi ça va de soi) de ses relations - faire la liste des personnes qui appartiennent à
une tranche d'âge donnée - vérifier le budget, c'est-à-dire connaître le
coût des réceptions. On compte un coût fixe
(location du château) et un coût proportionnel
par invité (menu) - savoir si une invitation a été confirmée
- savoir si le temps était beau, maussade ou
pluvieux à chacune de ses réceptions - etc.
142Cas Baronnia (énoncé 3)
- Quelques informations supplémentaires
- On ne considère que les personnes individuelles
et non les couples - Les invités apportent souvent un petit cadeau.
Pour éviter tout impair, il faut savoir qui a
apporté quoi et à quelle réception - De même, certains invités reçoivent un petit
cadeau (anniversaire, promotion...) il faut
savoir qui a reçu quoi et à quelle réception...
et pour quelle valeur (budget) - Plusieurs amis possèdent un titre de noblesse
143Cas Baronnia (énoncé 4)
- Quelques exigences particulières, il faudrait
pouvoir obtenir - la liste des personnes invitées à la réception du
jj/mm/aaaa, titre, nom, prénom, profession de
l'invité tri par nom - la liste des personnes présentes à la réception
du jj/mm/aaaa (critère) tous les champs tri
par nom - la liste de toutes les réceptions Date, lieu,
nombre d'invités présents tri par date
décroissante - le coût d'une réception donné par la formule
suivante nombre d'invités (sauf excusés) x coût
par personne coût fixe coût des cadeaux
offerts
144Cas Baronnia (énoncé 5)
- Quelques réceptions remarquables
Lieu Date Coût fixe (Eur) Coût / pers (Eur)
Château de Lamalle 21 juillet 1999 1 250 100
Château d'Outre Meuse 15 août 1999 1 350 125
Domaine des Prés Fleuris 14 février 1998 950 62,5
Ferme du Marquisat 21 mars 1999 450 45
145Cas Baronnia (énoncé 6)
- Quelques amis et relations (remarquables ?)
Identité Adresse Ville
Omer dAlors Rue neuve 5 Juprelle
Dominique Nique (marquise) Rue Dewonck 67 Fexhe
Roland Nôset-Abond Rue du sale 118 Mellery
Elvire Sacutti Rue provinciale Villers
Aubin Sahalore (comte) Rue Maréchal 114 Lantin
146Diviser pour régner
Carnet dadresse
Covert Harry, rue Minant 3, 6681 Lavacherie, 0475 98 76 54
Dalors Homère, rue Tilant 9, 1348 Louvain-la-Neuve, 010 11 12 13
John Deuf, rue Barbe 10, 7090 Dour, 065 43 21 00
Qui Où Tel
Covert Harry rue Minant 3, 6681 Lavacherie, 0475 98 76 54
Dalors Homère rue Tilant 9, 1348 Louvain-la-Neuve 010 11 12 13
John Deuf rue Barbe 10, 7090 Dour 065 43 21 00
cPrenom cNom cAdresse cCP cCommune cTel
Harry Covert rue Minant 3 6681 Lavacherie 0475 98 76 54
Homère Dalors rue Tilant 9 1348 Louvain-la-Neuve 010 11 12 13
John Deuf rue Barbe 10 7090 Dour 065 43 21 00
147Structure des bases de données
148Utile dans les requêtes (1)
Like "S" Fournit tous les enregistrements pour lesquels le champ commence par S.
Like "Imports" Fournit tous les enregistrements pour lesquels le champ termine par le mot "Imports".
Like "A-D" Fournit tous les enregistrements pour lesquels le champ commence par une lettre entre A et D.
Like "ar" Fournit tous les enregistrements pour lesquels le champ contient la séquence "ar".
Like "Acc?" Fournit tous les enregistrements pour lesquels le champ commence par "Acc" et pour lesquels la quatrième et dernière lettre est inconnue.
Like forms!NomForm!NomChamp Fournit tous les enregistrements pour lesquels le champ est identique au champ "NomChamp" du formulaire "NomForm".
149Utile dans les requêtes (2)
lt 100 Fournit tous les enregistrements pour lesquels le champ contient une valeur numérique inférieure à 100.
lt 1/1/2000 Fournit tous les enregistrements pour lesquels le champ contient une date antérieure au 1/1/2000.
A And B Fournit tous les enregistrements pour lesquels le champs satisfait le critère A et le critère B.
A Or B Fournit tous les enregistrements pour lesquels le champs satisfait le critère A ou le critère B.
A Xor B Fournit tous les enregistrements pour lesquels le champs satisfait le critère A ou le critère B de manière exclusive.
Null Fournit tous les enregistrements pour lesquels le champs est vide.
Is not null Fournit tous les enregistrements pour lesquels le champs n'est pas vide.
150Les cardinalités (1)
A
B
A
B
A
B
a1
b1
a1
b1
a1
b1
a2
b2
a2
b2
a2
b2
a3
b3
a3
b3
a3
b3
a4
b4
a4
b4
a4
b4
a5
b5
a5
b5
a5
b5
a6
b6
a6
b6
lt1,1gt (0,1)-(1,1) One to one
lt1,ngt (0,n)-(1,1) One to many
ltm,ngt (1,n)-(0,n) Many to many