Nicolas Zozor
Retour sur les clés Une clé primaire est une clé dune table qui est composée dun ou plusieurs (dit clé composée) attributs (colonnes) de la table et est utilisée pour identifier chaque ligne de manière unique. La clé primaire ne doit pas contenir de colonne valeur NULL. Une clé unique possède les mêmes propriétés quune clé primaire à lexception quune colonne définie comme clé unique peut être NULL. Elle contrôle lunicité de la valeur Une clé étrangère représente une relation entre les tables. Elle est composée dune ou plusieurs attributs (colonnes) dont les valeurs dépendent de clés primaires (ou uniques) dautres tables On parle dintégrité référentielle quand on veut signifier que les relations représentées par les clés sont maintenues. Elle assure la cohérence des données.
Entité et tables Lorsque lon crée la base de donnée, lentité devient une table.
Requête Une requête est une question posée pour interroger une base de donnée Permet dextraire des données dune ou plusieurs tables
Algèbre relationnelle Outils de traitement permettant de formaliser les opérations pouvant être réalisées sur un schéma relationnel. Opérateurs algébriques: (SELECTION,PROJECTION,JOINTURE) Opérateurs ensemblistes: (UNION, INTERSECTION, DIFFERENCE, PRODUIT CARTESIEN)
PROJECTION Consiste à ne retenir que certains attributs(colonnes) dune relation( 1 relation = 1 entité ) Le nombre de colonnes se trouve ainsi limité
PROJECTION Client(codeClient, nom, prénom, adresse, codePostal, ville, telephone, mail) Materiels(codeMateriel, Désignation, Fabricant, dateAchat, #codeClient) Interventions(numInterventions, descriptifPannne, dateIntervention, temps_passé, #codeMateriel, #codeInterventions) TypesInterventions(codeIntervention, designation, prixHoraire) PiècesNeuves(refPièceNeuve, libellé, prix) Utiliser(#numInterventions,#refPièceNeuve, quantité)
PROJECTION codeCli ent nomprénomadressecodePo stal villetelepho ne mail 230VinsDieselRue F1V8769Los 231DeepJohnnyPont Cap 232JudorEricRue Table Client : Mode feuille de données Table dorigine EXEMPLE 1
PROJECTION R1 = SELECT * FROM Client; * sélectionne tous les attributs de la table EXEMPLE 1
PROJECTION codeCli ent nomprénomadressecodePo stal villetelepho ne mail 230VinsDieselRue F1V8769Los 231DeepJohnnyPont Cap 232JudorEricRue Table Client : Mode feuille de données Résultat de la requête:EXEMPLE 1
PROJECTION codeCli ent nomprénomadressecodePo stal villetelepho ne mail 230VinsDieselRue F1V8769Los 231DeepJohnnyPont Cap 232JudorEricRue Table Client : Mode feuille de données Table dorigine EXEMPLE 2
PROJECTION R1 = SELECT nom, prénom FROM Client; Nom » et « prénom » sont 2 attributs de la table client EXEMPLE 2
PROJECTION nomprénom VinsDiesel DeepJohnny JudorEric Table Client : Mode feuille de données Résultat de la requête:EXEMPLE 2
SELECTION Consiste à nafficher que certaines lignes dune table en utilisant: Opérateurs de comparaison:, >= Connecteurs logiques: AND, OR, NOT Opérateurs ensemblistes: IN, BETWEEN, LIKE La clause NULL (champs vide)
SELECTION codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 232JudorEricRue H97200FDF5 Table Client : Mode feuille de données Table dorigine EXEMPLE 1
SELECTION R1 = SELECT * FROM Client WHERE nbFilms = 51; Sélectionner tous les attributs des clients ayant joués 51 films EXEMPLE 1
SELECTION Table Client : Mode feuille de données Résultat de la requête: codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 EXEMPLE 1
SELECTION codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 232JudorEricRue H97200FDF5 Table Client : Mode feuille de données Table dorigine EXEMPLE 2
SELECTION R1 = SELECT * FROM Client WHERE nbFilms = 5; Sélectionner tous les attributs des clients ayant joués dans 5 films EXEMPLE 2
SELECTION Table Client : Mode feuille de données Résultat de la requête: codeCli ent nomprénomadressecodePo stal villenbFilms 232JudorEricRue H97200FDF5 EXEMPLE 2
SELECTION codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 232JudorEricRue H97200FDF5 Table Client : Mode feuille de données Table dorigine EXEMPLE 3
SELECTION R1 = SELECT * FROM Client WHERE nbFilms > 50; Sélectionner tous les attributs des clients ayant joués dans 50 films et plus EXEMPLE 3
SELECTION Table Client : Mode feuille de données Résultat de la requête: codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 EXEMPLE 3
SELECTION codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 232JudorEricRue H97200FDF5 Table Client : Mode feuille de données Table dorigine EXEMPLE 4
SELECTION R1 = SELECT nom, prénom FROM Client WHERE nbFilms > 50; Sélectionner les noms et prénoms des clients ayant joués dans 50 films et plus EXEMPLE 4
SELECTION Table Client : Mode feuille de données Résultat de la requête: nomprénom VinsDiesel DeepJohnny EXEMPLE 4
SELECTION codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 232JudorEricRue H97200FDF5 Table Client : Mode feuille de données Table dorigine EXEMPLE 5
SELECTION R1 = SELECT * FROM Client WHERE nbFilms BETWEEN 2 AND 52; Sélectionner tous les attributs des clients ayant joués entre 2 et 52 films EXEMPLE 5
SELECTION Table Client : Mode feuille de données Résultat de la requête: codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 232JudorEricRue H97200FDF5 EXEMPLE 5
SELECTION codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 232JudorEricRue H97200FDF5 Table Client : Mode feuille de données Table dorigine EXEMPLE 6
SELECTION R1 = SELECT * FROM Client WHERE nom LIKEde* Sélectionner tous les attributs des clients ayant un nom commençant par de EXEMPLE 6
SELECTION Table Client : Mode feuille de données Résultat de la requête: codeCli ent nomprénomadressecodePo stal villenbFilms 231DeepJohnnyPont Cap Est55 EXEMPLE 6
SELECTION codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 232JudorEricRue H97200NULL5 Table Client : Mode feuille de données Table dorigine EXEMPLE 7
SELECTION R1 = SELECT * FROM Client WHERE ville IS NULL Sélectionner tous les attributs des clients ayant lattribut ville vide (null) EXEMPLE 7
SELECTION Table Client : Mode feuille de données Résultat de la requête: codeCli ent nomprénomadressecodePo stal villenbFilms 232JudorEricRue H97200NULL5 EXEMPLE 7
SELECTION codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 232JudorEricRue H97200NULL5 Table Client : Mode feuille de données Table dorigine EXEMPLE 8
SELECTION R1 = SELECT * FROM Client WHERE ville IS NOT NULL Sélectionner tous les attributs des clients nayant pas lattribut ville vide (null) EXEMPLE 8
SELECTION Table Client : Mode feuille de données Résultat de la requête: codeCli ent nomprénomadressecodePo stal villenbFilms 230VinsDieselRue F1V8769Los Ang51 231DeepJohnnyPont Cap Est55 EXEMPLE 8
DISTINCT Il est possible supprimer les doublons en ajoutant la close DISTINCT SELECT DISTINCT NomColonne FROM TABLE
JOINTURE Une jointure Permet dobtenir des données provenant de plusieurs tables
JOINTURE Schéma relationnel AUTEURS(NumAuteur, NomAuteur, Auteur,) ARTICLES(NumArti, TitreArti, TexteArti, DateArti, #NumAuteur) C.I.F EXEMPLE 1
JOINTURE EXEMPLE 1 NumAuteurNomAuteurPrenomAuteur Auteur 1DuboisMarcel 2DupontJacques 3LeroyNicole Auteurs
JOINTURE EXEMPLE 1 Num Arti TitreArtiTextArtiDateArti#NumAuteur 1Wall Streetxxxxxxxxxx 12/12/ La Fedblablabla 05/05/ La loi Hadopyyyyyyyyyy 03/03/20092 Articles
JOINTURE Afficher tous les titres darticles écrit part Dupont Jacques. Afficher également l de lauteur correspondant: R1 = SELECT TitreArti, Auteur FROM ARTICLE,AUTEUR WHERE ARTICLE.NumAuteur = Auteur.NumAuteur AND AUTEUR.NumAuteur = 2 EXEMPLE 1
JOINTURE EXEMPLE 1 TitreArti Auteur Wall Street La loi Hadop Résultat de la requête
JOINTURE Schéma relationnel FOURNISSEUR(NumFrs, NomFrs, AdrFrs, VilleFrs) ARTICLE(NumArt, LibArt, Stock, PrixUnitHT) ACHAT(#NumFrs,#NumArt, PrixAchat, Délai, EnCde) C.I.M EXEMPLE 2
JOINTURE NumFrsNomFrsAdrFrsVilleFrs 230GcomRue F1FDF 231ExnetPont 9Lamentin 232WebplusRue HFDF Table Client : Mode feuille de données Table Fournisseur EXEMPLE 2
JOINTURE NumArtLibArtStockPrixUnit HT 100PCportable TelPortabl clavierUsb HautParleu r Table ARTICLE: Mode feuille de données Table Article EXEMPLE 2
JOINTURE #NumFrs,#NumAr t PrixAchatDélaiEnCde 230, validé 232,102209validé 231,101502validé Table ACHAT: Mode feuille de données Table Achat EXEMPLE 2
JOINTURE Déterminer le Numéro et délai de livraison des articles pour lesquels le prix unitaire est compris entre 50 et 500 R1 = SELECT NumArt, Délai FROM ACHAT,ARTICLE WHERE ACHAT.NumArt = ARTICLE.NumArt AND PrixUnitHt BETWEEN 50 AND 500 EXEMPLE 2
JOINTURE NumFrsNumArtDélai EXEMPLE 2
FONTIONS DAGREGATION Permettent deffectuer des calculs statistiques COUNT() SUM() AVG() MAX() MIN() STDEV() VAR()
COUNT Dénombre le nombre déléments de la colonne sélectionnée
COUNT NumArtLibArtStockPrixUnit HT 100PCportable TelPortabl clavierUsb HautParleu r Table ARTICLE: Mode feuille de données Table Article EXEMPLE 1
COUNT Compter le nombre darticles de la table ARTICLES R1 = SELECT COUNT(NumArt) AS [Nombre darticles] FROM ARTICLES EXEMPLE 1
COUNT Nombre darticles 4 Résultat de la requête EXEMPLE 1
COUNT Compter le nombre de ligne dela table ARTICLES R1 = SELECT COUNT(*) AS [Nombre darticles] FROM ARTICLES EXEMPLE 2
COUNT Nombre darticles 4 Résultat de la requête EXEMPLE 1
SUM Additionne les valeurs dun champ numérique Calcule la somme dune colonne Ignore les valeurs NULL (champs vides)
SUM NumArtLibArtStockPrixUnit HT 100PCportable TelPortabl clavierUsb HautParleu r Table ARTICLE: Mode feuille de données Table Article EXEMPLE 1
SUM Calculer le total darticles en stock R1 = SELECT SUM(numArt) AS [total stock] FROM ARTICLES EXEMPLE 2
SUM total stock 370 Résultat de la requête EXEMPLE 1
FONTIONS DAGREGATION Permettent deffectuer des calculs statistiques COUNT() SUM() AVG() Moyenne MAX() valeur maximum MIN()valeur minimum STDEV() écart type VAR() variance
TRI ET REGROUPEMENT ORDER BY : résultat trié GROUP BY : forme des groupes de lignes ayant une valeur commune
ORDER BY NumArtLibArtStockPrixUnit HT 100PCportable TelPortabl clavierUsb HautParleur Table ARTICLE: Mode feuille de données Table Article EXEMPLE 1
ORDER BY ASC ordre croissant DESC: ordre décroissant R1 = SELECT LibArt FROM ARTICLES ORDER BY LibArt ASC Sélectionne tous les libellés de la table ARTICLE et tri par ordre alphabétique EXEMPLE 1
ORDER BY LibArt clavierUsb HautParleu r PCportable TelPortabl Table ARTICLE: Mode feuille de données Résultat EXEMPLE 1
GROUP BY Forme des groupes de lignes ayant une valeur commune
GROUP BY Table contenant les achats et leurs clients respectifs Table ACHATS EXEMPLE 1
GROUP BY Somme totale des achats par groupe de clients R1 = SELECT Customer, SUM(OrderPrice) FROM ACHATS GROUP BY Customer EXEMPLE 1
GROUP BY Somme par Clients Résultat de la requête EXEMPLE 1
GROUP BY Somme totale des achats par groupe de clients SANS LE GROUP BY R1 = SELECT Customer, SUM(OrderPrice) GROUP BY Customer EXEMPLE 2
GROUP BY Somme totale Clients confondus Résultat de la requête EXEMPLE 2
HAVING RESTRICTIONS (selection) sur les groupes crées avec GROUP BY
HAVING Table contenant les achats et leurs clients respectifs Table ACHATS EXEMPLE 1
HAVING Somme totale des achats par groupe de clients RESTRICTIONS sur cette Somme R1 = SELECT Customer, SUM(OrderPrice) FROM ACHATS GROUP BY Customer HAVING SUM(OrderPrice) < 2000 EXEMPLE 1
HAVING Somme par Clients et Sommes inférieures à 2000 Résultat de la requête EXEMPLE 1