Cours complet Base de donne Bac

664 vues

Publié le

Bac info Cours BD Complet

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
664
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
30
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cours complet Base de donne Bac

  1. 1. 1er Partie: Introduction aux bases de données: Chapitre1 : NOTION DE BASE DE DONNEES Synthèse du cours: • Notion de données et d'information: Donnée: Renseignement que l’on obtient sur quel qu’un ou sur quelque chose. Information: L’information est représentée par des données, qui doivent être interprétées et corrélées pour fournir de l’information. Par exemple : - "12/02/2000" et "Radès" - si ces données sont utilisées comme réponse à la question “quand et où se passe le match, alors ces données sont utilisées pour produire de l’information Eléments Constituant une information : a. Persistance mémorisation et disponibilité b. Organisation : - Papier - Fichier (file) : Les données sont stockées sous forme de fichier. Chaque application de traitement de données utilise un format de fichier de données qui lui est spécifique. Afin de remédier a l'insuffisance et à la limite d'utilisation des deux méthodes d'organisation, des recherches ont abouti au concept de base de données. • Notion de base de données: Une base de données (BD) est un ensemble de données structuré exhaustive, persistante et non redondante. Cet ensemble structuré peut modéliser un univers réel composé d'objets inter-liés qui peut être utilisé simultanément par plusieurs utilisateurs (centralisation) et programmes (indépendance) grâce aux fonctions offertes par un composant logiciel appelé système de gestion de bases de données (SGBD).
  2. 2. Chapitre 2 Notion de Système de Gestion de Bases de Données • Système de Gestion de Bases de données (SGBD) Un logiciel qui permet d'interagir avec une base de données s'appelle un système de gestion de base de données (S.G.B.D.). Les premiers SGBD (hiérarchique et réseau) étaient étroitement liés à la représentation physique des données. Il y a eu ensuite le modèle relationnel qui a permis de créer une indépendance entre la description des données et les structures permettant de les stocker en mémoire secondaire. • SGBD et système Fichier Les SGBDs disposent d’outils qui permettent de gérer un accès simultané ou partagé aux données par plusieurs Utilisateurs - Pas de redondance - Facilité de mise à jour Système simple de fichiers permettent un accès exclusif Nécessité de dupliquer les données, ce qui entraînant des problèmes de redondance et d’inconsistance
  3. 3. 4MTINFBDRC001  Page 3  • Fonctions d'un SGBD Un SGBD doit permettre de : √ Décrire les données qui seront stockées, √ Manipuler ces données (ajouter, modifier, supprimer des informations), √ Obtenir des renseignements à partir de ces données (sélectionner, trier, calculer, etc.), √ Définir des contraintes d'intégrités sur les données (contraintes de domaines, d'existence, etc.), √ Définir des protections d'accès (mots de passe, autorisations, etc.), √ Résoudre les problèmes d'accès multiples aux données (blocages, inter édures de reprise en cas d'incident (sauvegardes, journaux, etc.). d'écrire des applications (codage, ordre dans lequel les données sont pport 'enregistrement, etc.). blocages), √ Prévoir des proc √ De plus, un SGBD doit permettre indépendantes de l'implantation √ Exemple de SGBD relationnel: √ physique des données enregistrées, su D
  4. 4. 4MTINFBDRC001  Page 4  2ème Partie: Création de Base de Données: Chapitre 3 Structure d'une Bases de Données Relationnelle • Notion de base de données relationnelle: Une base de données relationnelle est composée d'un ensemble de table. Chaque table décrit alors une partie de l'univers concerné. • Notion de Table: Une table est une structure regroupant un ensemble de données relatives à un même sujet. Elle se présente sous forme de tableau où chaque colonne correspond à une propriété relative au sujet, et chaque ligne correspond à une occurrence du sujet. Exemple la table élève est décrit par : ELEVE N° Prénom Nom Date de Naissance classe COLONNES LIGNES 1 Maha Ben Ahmed 12/11/1984 4 SI 2 Ramzi Ben Amor 17/03/1985 4 EG 3 Dora Mokhtar 22/06/1985 4 M • Notion de clé primaire Chaque table doit avoir une clé qui permet d’identifier de façon unique chacune de ses lignes. La clé (dite primaire) est définit par un ou plusieurs colonnes. Pour distinguer une colonne qui fait partie de la clé primaire des autres olonnes, on lac souligne. • Liens entre table Pour que la base de données constitue une représentation fidèle du domaine concerné les liens entres sujets du monde réel doivent se retrouver dans la base de données. Un lien entre deux table A et B est représenté par l’ajout dans la table B d’une nouvelle colonne correspondant à la clé primaire de la table A. Cette nouvelle colonne est appelée clé étrangère. Ainsi pour connaître le lycée de chaque élève il faut par exemple ajouter l’attribut code lycée (clé primaire) de la table lycée à la table élève.
  5. 5. 4MTINFBDRC001  Page 5  Pour distinguer une colonne qui fait partie d’une clé étrangère des autres colonnes, on la fait suivre d’une # • Notion de contrainte d’intégrité Les contraintes de domaines : Elles permettent de fixer le caractère obligatoire ou pas d’une colonne et les règles de validité des valeurs qui peuvent être prises par cette colonne. Les contraintes d’intégrité de tables : Elles permettent s’assurer que chaque table à une clé primaire. Les contraintes d’intégrité référentielles : Elles permettent de s’assurer que les valeurs introduites dans une colonne figurent dans une autre colonne en tant que clé primaire. • Représentation de la structure d’une base de données Représentation textuelle: Nom_table (clé_primaire, colone1, colonne2, …, clé_etrangère#) Représentation graphique: Nom Table clé_primaire colone1 nne2colo … Clé_étrangère#
  6. 6. 4MTINF Cha D S Nous p d'une b 1. D I 2. D I c q Les Pour é colonn FBDRC001 apitr Déma truct proposons base de do Délimiter Identifier Détermin Il s’agit constituer qui se rapp s règles su • Une élém • Une ou d • Des une élaborer l nes suivan 1  re 4 arche ture d s les étape onnées: r le ou le(s le ou les d ner les col de dédui ront la bas porte à un uivantes d e colonne mentaire ( e colonne dérivée à p s colonnes e seule col la liste de nt: e de D d'une s d'une dé s) domain domaines lonnes ou ire à par se de don n sujet du m doivent êt doit repré (non décom ne doit pa partir d’au s similaire lonne. colonnes Déter e Bas émarche p ne(s) conc qui consti les cham rtir de l'é nnées. Cha monde rée tre respec ésenter un mposable) as corresp utres colon es ne doive , on peut rmina se de ermettant cerné(s) : ituent l’ob mps: énoncé la aque colon el. ctées : e informa ). ondre à un nnes. ent pas êtr utiliser le ation e Do de déterm bjet de la b a liste de nne est un ation sous ne inform re présente e tableau n de l nnée miner la st base de do es colonn n fait (pro sa forme ation calcu es. Il faut liste des la es tructure onnées. nes qui opriété) ulée garder Page 6 
  7. 7. 4MTINF 3. D I d C 4. A P c 5. D O d d D c p 6. D L f FBDRC001 Détermin Il s’agit d données. Cette liste Affecter l Pour s’ass compte de • Une exc étra • Si l tabl mêm dan tabl Détermin On doit d d’identifie dont la va Dans la p colonne, plusieurs c Détermin La déterm façons : • • 1  ner les tab de déterm Chaque e peut être les colonn surer qu’u es règles s e colonne eption éc angères. la présenc le entraîne me valeur ns la mauv le dans laq ner les clé éterminer er les autr aleur est un plupart d mais dan colonnes. ner les lien mination de • Il exist colonn dans ce étrangè les tabl • D’aprè représe existe u les deu bles: miner la lis table co représent nes aux ta une colonn uivantes : doit être chappe à e d’une c e que plus r pour cett vaise table quelle cett s primair parmi les res colonn nique dans es cas, u s certains On parle ns entre t es liens en te dans un ne a dans u ette table. ère dans la les A et B ès la descr entés par d un lien en ux tables, n ste des tab rrespond tée aussi s ables : ne est affe affectée à cette règ olonne, qu sieurs lign te colonne e. Il conv te anomali res: s colonnes nes de faç s chaque l une clé pr s cas, elle alors de c ables : ntre les tab ne table B u une autre t Ceci veut a table B. U pour relie iption don deux table tre les deu nous devo bles qui v à un su ous forme ectée à la à une et u gle, c’est ui n’est p es de cette e, c’est qu vient donc ie ne se re s d'une tab on unique ligne. rimaire e e peut êtr lé compos bles peut ê une colonn table A et t dire que Un lien do er les colon nt nous dis es, nous av ux sujets. P ons d’abor vont const ujet de d e du tablea bonne tab une seule t celle re as clé étra e dernière ue cette co c de l’affe eproduira p ble celle(s e, c'est-à-d st compo re compo sée. être effectu ne b qui c qui est un la colonne oit être do nnes a et b sposons su vons pu dé Pour établ rd identifie tituer la b domaine au suivant base de étudié. t: ble, on dooit tenir table. Un elative au ne seule ux clés angère, da e vont con olonne se ecter à un pas. ans une ntenir la trouve ne autre s) qui perm dire les co osée d’une osée de de mettent olonnes e seule eux ou uée de deuux correspond ne clé prim e b est une onc établi e b. d à une maire e clé entre ur les suje éduire qu’ lir ce lien er la table ts il entre Page 7 
  8. 8. 4MTINFBDRC001  Page 8  « mère » et la table « fille ». Nous utilisons le tableau suivant pour décrire ces liens : Table mère Table fille Clé primaire Clé étrangère 7. Analyser et affiner la structure de la base de données : Lorsqu’on a identifié la structure de toutes les tables et établi les liens entre ces tables, il convient de faire une représentation graphique de la base de données afin de l’analyser et de détecter les anomalies éventuelles. Il pourrait s’agir d’un oubli de colonnes ou de liens entre tables. Lorsque les corrections éventuelles auront été apportées à la structure de la base, nous devons utiliser le SGBD pour créer les différentes tables.
  9. 9. 4MTINFBDRC001  Page 1  Création et Modification de la Structure d'une Base de Données SGBD : Système de gestion de bases de données Outil pour Créer, saisir, stocker, consulter, modifier ou supprimer des données. Exemple : MS Access, Mysql, Oracle, Sybase, … • MS Access peu coûteux (licence éducation), l'interface simple facile à maîtriser rencontré partout, On va l'utiliser pour les manipulations en mode Assisté. • MySQL très adapté à des interfaces Web, beaucoup utilisé – gratuit on va l'utiliser pour les manipulations en Mode Commande. • Oracle et Sybase = gros système, très performant, beaucoup plus professionnel. I. Création & Modification Mode Assisté Les Composants d'une base de données ACCESS La fenêtre Base de Données contient tous les « objets » qui peuvent composer une base Access, classés par catégorie : - Tables, - Requêtes, - Formulaires, - États, - Macros, - Modules - Pages. Pour accéder à un objet, il faut cliquer sur le bouton correspondant à sa catégorie. 1. Création de la table Dans la fenêtre Base de données choisir l'onglet table puis le bouton Nouveau... Vous avez le choix entre poursuivre avec l'aide de l'assistant ou créer manuellement la table. Plaçons-nous dans ce dernier cas:
  10. 10. 4MTINFBDRC001  Page 2  Chaque ligne de ce tableau contient les informations de chaque champ : - Le nom du champ de la table (de 1 à 64 caractères) - Le type de données (voir plus bas) à choisir parmi 9 types proposés par Access - La description du champ (255 caractères maximum) Les champs Pour définir un champ il faut préciser son nom, son type, sa description et ses propriétés. • Nom de champ Les noms des champs doivent être suffisamment clairs pour identifier les données, il est cependant conseillé de définir des noms brefs, faciles à mémoriser et à taper (éviter, si possible, le caractère espace). • Type de champ Texte Caractère (255) Numérique Nombres entiers ou décimaux Date / heure Dates / heures Monétaire Valeurs monétaires Compteur Incrément automatique à chaque nouvel enregistrement Oui/ Non Valeur booléenne NuméroAuto Numéro séquentiel unique (incrémenté de 1en 1) Mémo Caractère (65000) Liaison OLE Objets OLE, graphiques Assistant Liste de choix Crée un champ qui vous permet de choisir une valeur à partir d'une autre table ou d'une liste de valeurs à l'aide d'une zone de
  11. 11. 4MTINFBDRC001  Page 3  liste ou d'une zone de liste modifiable. Propriétés des champs (variables selon le type de données) : • Taille Limite la taille d'un champ texte ou la valeurs d'un champ numérique. • Format Permet d'afficher l'information selon la présentation choisie (majuscule, dates en chiffres ou en lettres,..) • Masque de saisie Contrôle intervenant au moment de la saisie, il peut être créé avec l'aide du générateur de masque de saisie. • Décimales Nombres de chiffres après la virgule, pour champs numériques et monétaires. • Légende Texte remplaçant le nom du champ dans les formulaires ou les états. • Valeur par défaut Valeur qui apparaît automatiquement dans le champ à chaque nouvel enregistrement, cette valeur peut être modifiée lors de la saisie. • Valide si Condition qui doit être satisfaite pour qu'Access accepte la valeur saisie dans le champ. • Message si erreur Message qui s'affiche si la propriété Valide si, n'est pas satisfaite. • Null interdit Si la propriété est Oui, la saisie de ce champ est obligatoire. • Chaîne vide autorisée « » Si la propriété est Oui, on peut saisir des guillemets doubles et ainsi faire la différence entre information non connue et information absente. • Indexé L’utilisation d’un index accélère les opérations de consultation, mais ralentit celles de mises à jour car il y a création de l’index. Clé primaire Lorsque la liste des champs est terminée ne pas oublier de définir la clé primaire - cliquer sur le premier champ de la clé puis éventuellement sur les autres avec la touche Ctrl enfoncée, - cliquer sur le bouton « clé » ( ) ou choisir les commandes Edition puis Clé primaire. Attention, Si vous n'avez pas créé de clé primaire le système peut en créer une, de type compteur, lors de la sauvegarde de la table. Sauvegarde, nom de table
  12. 12. 4MTINFBDRC001  Page 4  Le nom de la table est donné lors du premier enregistrement à l'aide des commandes Fichier puis Enregistrer ou Fichier puis Enregistrer sous. 2. Modification de la structure d'une Table: Pour modifier la structure d'une table, dans la fenêtre Base de données choisir l'onglet «table» puis le bouton «Modifier». Tous les objets associés à la table doivent être fermés. Attention : avant toute modification de structure de la table, mesurez les conséquences sur les données existantes. 3. Construire une table par importation du fichier EXCEL : - Sélectionnez le menu Fichier, Données externes, importer… - Dans la boîte de dialogue « Importer », sélectionnez dans la liste « Microsoft Excel » comme type de fichier. - Sélectionnez le fichier.XLS a importer qui se trouve dans le répertoire des données. - Cliquez sur le bouton « Importer ». - La 1ère page de l’assistant vous propose de sélectionner la feuille du fichier Excel - Ensuite cliquez sur le bouton « Suivant ». - Indiquez dans la 2ème page si votre feuille contient ou pas un en-tête des colonnes, qui sera utilisé pour établir les noms des champs. - Dans la 3ème page, sélectionnez l’option « Dans une nouvelle table », puis cliquez « Suivant ». - l’assistant vous donne la possibilité de préciser le nom du champs, indexé ou non, cliquez sur le bouton « Suivant ». - Dans cette étape, sélectionnez l’option « Pas de clé primaire ». En effet, vous ne pouvez ici choisir qu’un seul attribut comme clé primaire. Nous la définirons plus tard. Cliquez sur le bouton« Suivant ». - Dans la dernière étape vous devez spécifier le nom de votre nouvelle table. Cliquez sur le bouton « Terminer » pour créer votre table. 4. Etablir les liens entre les tables: - Dans la fenêtre Base Données Cliquer sur la commande relation du Menu outils. - Ajouter les tables objets de la relation - Dans la table fille cliquer sur la clé étrangère. - Maintins la bouton de la souris enfoncé - Glisser, puis déposer vers la table mère
  13. 13. 4MTINFBDRC001  Page 5  - Dans la boite de dialogue Modifier une Relation cocher les cases nécessaires: Cocher les options affichées en fonction du comportement que vous souhaitez appliquer à ce lien. • Appliquer l’intégrité référentielle : Signifie que lorsqu’on insère une ligne dans la table fille, le SGBD vérifie que la valeur saisie dans la colonne clé étrangère existe dans la colonne clé primaire de la table mère. Dans notre exemple, il s’agit de vérifier qu’une commande est relative à un client qui existe dans la table Client. • Mettre à jour en cascade les champs correspondants : Cette option permet de modifier automatiquement la valeur de la clé étrangère dans la table fille lorsqu’on modifie la valeur de la clé primaire dans la table mère. Par exemple, si on modifie le code d’un client dans la table Client, ce code sera modifié dans toutes les lignes de la table Commande correspondant aux commandes de ce client. • Effacer en cascade les enregistrements correspondants : Cette option permet de supprimer automatiquement toutes les lignes dans la table fille correspondant à une ligne supprimée dans la table mère. Par exemple, si on supprime un client dans la table Client, toutes les lignes de la table Commande correspondant aux commandes de ce client seront supprimées. - Cliquer sur le bouton créer. Remarque: Lorsque la colonne à supprimer est une clé primaire référencée dans une autre table comme clé étrangère, sa suppression ne peut se faire qu’après la suppression du lien entre les deux tables. II. Création & Modification Mode Commande: Le mode commande consiste à créer les différentes structures de la base de données à l'aide de commande du langage SQL (Structured Query Language): En particulier, SQL permet de Définir des données (CREATE, ALTER, DROP,…) Interroger / Manipuler (SELECT, INSERT, UPDATE, DELETE,…) Contrôler les accès (GRANT, REVOKE) La plupart des SGBD disposent d'un éditeur SQL qui nous permet d'exécuter les commande (souvent appelé requêtes) SQL. Pour cela nous allons utilisé l'éditeur MYSQL pour tout les manipulations en mode commande.
  14. 14. 4MTINFBDRC001  Page 6  Présentation de MYSQL: MySQL est un serveur de bases de données SQL Open Source. - Avec MySQL vous pouvez créer plusieurs bases de données sur un serveur. - Un outil libre et gratuit : phpMyAdmin permet l’administration aisée des bases de données MySQL avec PHP. 1. La création de table : CREATE TABLE nom_table (colonne1 Type [Contrainte colonne*], colonne2 Type [Contrainte colonne],… colonne Type [Contrainte colonne], [Contrainte de table**], …); Pour une utilisation optimale de la base, il convient de définir des contraintes: Il existe des contraintes : *Sur une colonne : la contrainte porte sur une seule colonne. Elle suit la définition de la colonne dans un ordre CREATE TABLE (pas possible dans un ordre ALTER TABLE). Les contraintes d’intégrité et de domaine NOT NULL l’ensemble vide est interdit pour cette valeur PRIMARY KEY détermine la clé primaire (donc unicité de la valeur) DEFAULT attribue une valeur par défaut CHECK donne une condition que les colonnes de chaque ligne devront vérifier. REFERENCES Définit une contrainte d'intégrité référentielle **Sur une table : la contrainte porte sur une ou plusieurs colonnes. Chaque contrainte doit être nommée : CONSTRAINT nom-contrainte définition-contrainte Le nom d'une contrainte doit être unique parmi toutes les contraintes de toutes les tables de la base de données. Exemple: Contrainte de clé étrangère Pour une contrainte sur une table : FOREIGN KEY (colonne1, colonne2,...) REFERENCES table_mère [(les_colonnes_clé_primaire)] [ON DELETE CASCADE] Pour une contrainte sur une colonne : REFERENCES table_mère [(la_colonne_clé_primaire )] [ON DELETE CASCADE] L'option:
  15. 15. 4MTINFBDRC001  Page 7  ON DELETE CASCADE indique que la suppression d'une ligne de table_mère va entraîner automatiquement la suppression des lignes qui la référencent dans la table fille. ON UPDATE CASCADE modifie la clé étrangère si on modifie la clé primaire Les types: int (taille_max) Entier (sur 4 octets, de -2.147.483.648 à 2.147.483.647). DECIMAL (p, d ) Correspond à des nombres décimaux qui ont p chiffres significatifs et d chiffres après la virgule CHAR (longueur) La déclaration de type chaîne de caractères de longueur constante VARCHAR (longueur) les colonnes qui contiennent des chaînes de longueurs variables. Date réserve 2 chiffres pour le mois et le jour et 4 pour l'année : (YYYY-MM-DD) 2. Modification de la structure d'une table Ajout d’une colonne: ALTER TABLE Nom_Table ADD définition_colonne ; Modification d’une colonne ALTER TABLE Nom_Table MODIFY nouvelledéfinition_colonne ; Ajout de contrainte ALTER TABLE Nom_Table ADD CONSTRAINT Nom_Contrainte Définition_Contrainte; Ajout de contrainte de Domaine ALTER TABLE Nom_Table ADD CONSTRAINT Nom_Contrainte CHECK (condition); Suppression: D’une colonne : ALTER TABLE Nom_Table DROP colonne ; Il faut noter que la suppression n'est possible que dans le cas où : L’attribut n'est pas l'objet d'une contrainte d'intégrité. D'une contrainte : ALTER TABLE Nom_Table DROP CONSTRAINT Nom_Contrainte; 3. Suppression d’une table DROP TABLE Nom_table ;
  16. 16. 4MTINFBDRC001  Page 8  Résumé Vous avez appris dans ce chapitre comment créer et modifier les différentes structures d’une base de données. Pour réaliser cette tâche, deux modes sont possibles : mode assisté et mode commande Le mode assisté est spécifique à chaque SGBD. A travers une interface graphique conviviale, l’utilisateur peut créer et modifier les différentes composantes d’une base de données en remplissant certains champs, en cochant d’autres et en effectuant des choix dans des listes déroulantes Le mode commande a comme principal avantage l’indépendance par rapport au SGBD. La forme générale des trois commandes permettant de créer et de modifier la structure d’une base de données (CREATE, ALTER et DROP) est la même dans tous les SGBD qui utilisent SQL
  17. 17. 4MTINFBDRC001  Page 1  3ème Partie: Manipulation de Base de Données: Manipulation d'une Base de Données Nous allons s'intéresser à quatre types d'opérations: • L'insertion • La modification • La suppression • La recherche de données (Requête) I. Manipulation de données en Mode Assisté: 1/Mise à jour des données: Les attributs d’un enregistrement peuvent être renseignés par saisie au clavier en ouvrant la table en mode Feuille de données (double clique sur la table). Chaque ligne correspond à un enregistrement. En bas de la fenêtre de saisie, une barre indique le numéro de l’enregistrement sur lequel on est positionné. Des boutons de navigation permettent de se déplacer d’une ligne à l’autre ou de créer une nouvelle ligne : Les opérations de Mise à jour
  18. 18. 4MTINFBDRC001  Page 2  Pour supprimer un enregistrement, on sélectionne la ligne correspondance (clique à gauche de la ligne) et on utilise la touche SUP du clavier. Selon les propriétés du champ, des contrôles peuvent être effectués lors de la saisie. En particulier : - deux enregistrements ne peuvent pas avoir la même clé primaire - un élément d’une clé primaire ne peut avoir une valeur nulle D’autres propriétés permettent : - la saisie automatique de l’attribut (champs auto numériques) - la saisie par choix des valeurs dans une liste de valeurs possibles - l’initialisation automatique de la valeur d’un champ lors de l’ajout d’un nouvel enregistrement La saisie d’un champ est validée par déplacement du curseur sur une autre cellule. 2/Recherche des données: • Tri, Filtre et Recherche: MS ACCESS offre des outils simples permettant de retrouver ou de réorganiser des enregistrements selon des critères choisis. Les outils présentés ici sont le tri, la recherche et le filtrage. Ces 3 fonctions sont disponibles lorsque la table est ouverte en mode Feuille de données. Elles sont accessibles depuis la barre d’outils : Pour appliquer un Tri ou un Filtre sur la Table il suffit de sélectionner une donnée de la table puis cliquer sur l'un des boutons de la barre ci-dessus. • Requête: A la différence des filtres, les requêtes (de sélection par défaut) peuvent être enregistrées et exécutées à tout moment : lorsque vous exécutez une requête,
  19. 19. 4MTINFBDRC001  Page 3  Access sélectionne automatiquement les enregistrements de la table source de la requête répondant aux critères posés. - Définir les champs que vous souhaitez afficher lors de l'exécution de la requête - Insérer des champs calculés qui reposent sur des champs issus de la ou les tables sources de la requête. - Poser des critères portant sur des champs issus de plusieurs tables, mises en relation les unes avec les autres. CREATION D’UNE REQUETE 1. Placez-vous dans la fenêtre "Base de Données" 2. Cliquez sur l'onglet "Requêtes" 3. Sélectionner la ou les tables sur lesquelles vous souhaitez poser des critères de sélection. 4. Sélectionner les champs à afficher et Posez vos critères dans la grille de la requête. 5. Exécutez la requête à l'aide de Champ sélectionné dans la requête Cochée si le champ entre dans la Clause SELECT Saisir condition de sélection La ligne "Critères" indique le critère à appliquer sur le champ de la colonne correspondante. Conditions • EXPR opérateur de comparaison EXPR EXPR : constante, nom de colonne ou une combinaison des deux reliés par des Opérateurs arithmétiques : {+, -, *, /} Opérateur de comparaison : { =, <>, >, <, >=, <= } • EXPR [NOT] BETWEEN EXPR AND EXPR
  20. 20. 4MTINFBDRC001  Page 4  Permet de sélectionner les enregistrements dont la valeur d’un champ est comprise entre deux valeurs. • EXPR [NOT] IN (liste de valeurs) Permet de sélectionner les enregistrements dont la valeur d’un champ fait partie (ou non) d’une liste de valeurs. • Nom colonne [NOT] LIKE Chaîne La clause LIKE permet de faire des recherches approximatives sur le contenu d'un champ. Des symboles « joker » peuvent être utilisés pour rendre la recherche plus large. • Nom colonne IS [NOT] NULL Permet d’utiliser comme critère de recherché le fait qu’un champ n’est pas de valeur (IS NULL) ou le contraire (IS NOT NULL) Opérateurs logiques Il est possible de combiner plusieurs conditions avec des opérateurs logiques : AND et OR Fonctions d’agrégat: Ces fonctions réalisent un calcul sur un groupement d'enregistrements satisfaisant la condition de la requête: En mode création, les fonctions d’agrégat doivent être saisies dans la ligne Opération qui apparaît en cliquant sur l’icône située dans la barre d’outils. Nom des opérations Description
  21. 21. 4MTINFBDRC001  Page 5  Les Alias: Regroupement Regrouper sur le champ. Somme SUM () donne la somme des valeurs d'un champ Moyenne AVG () donne la moyenne des valeurs d'un champ Min MIN () donne la valeur la plus petite d'un champ Max MAX () donne la valeur la plus élevée d'un champ pour Compte COUNT (*) Renvoie le nombre d'enregistrements satisfaisant la requête … Expression Entrer ses propres formules ou champs calculs pour un regroupement. Où Entrer des critères sans qu'ils soient pris en considération pour le regroupement. Il est possible de redéfinir les noms des champs surtout s'il s'agit d'un champ qui contient une expression de calcul. Dans l’assistant de requête, l’alias d’un champ (ou d’une expression) est spécifié dans la ligne Champ par le nom de l’alias, suivi de : et du nom du champ. II. Manipulation de données en Mode Commande: Recherche des données syntaxe minimale est : SELECT <liste des colonnes> From <liste des noms des tables>; Nous verrons qu'elle peut être enrichie, de très nombreuses clauses permettant notamment d'exprimer les projections, les restrictions, les jointures, les tris, les groupements, etc Les projections : La projection d'une table en vue de l'obtention d'un ensemble de colonnes de cette table se fait simplement en spécifiant les noms des colonnes désirées. SELECT [ALL] | [DISTINCT] <liste des colonnes> | * FROM <la table> ; *: Toutes les colonnes d'une table. DISTINCT: N'affiche qu'un exemplaire de chaque jeu de lignes identiques. Exemple : Soit la table suivante: Joueur La recherche des données se fait exclusivement par l’ordre SELECT, dont la
  22. 22. 4MTINFBDRC001  Page 6  Num_j Nom_j Prénom_j date_naiss Code_eq 122 BEN ZEKRI mohamed 12/12/1978 2 123 EL MORI AHMED 11/08/1979 2 124 SAMTI ALI 09/05/1977 2 125 SAMTI HAIKEL 18/01/1979 2 126 BEN AMOR ZIEID 04/02/1978 2 127 NEFFETI ALI 17/05/1977 2 128 MOULLEHI JIHED 12/08/1980 2 129 MAOUI RIADH 05/05/1980 2 130 MOHAMED AMOUS 01/03/1982 2 131 MAKHLOUF AYMEN 07/09/1978 3 132 MABROUK MOUNIR 15/03/1978 3 lister la table Joueur ? SELECT * FROM Joueur; lister les numéros et noms des Joueurs ? SELECT Num_j, Nom_J FROM Joueur ; lister les différents numéros des équipes de joueurs ? SQL n'élimine pas les doubles à moins que ça ne soit explicitement précisé par le mot clé DISTINCT SELECT DISTINCT Code_Eq FROM Joueur; Les Restrictions : Une restriction consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs colonnes s'expriment à l'aide de la clause WHERE suivie d'une condition logique exprimée à l'aide: • d'opérateurs logiques (AND, OR, NOT), • d'opérateurs arithmétiques (+, -, *, /, %, &, |, ^, ~), • de comparateurs arithmétiques (=, <>, >, <, >=, <=), • et des predicts (NULL, IN, BETWEEN, LIKE, ALL, SOME, ANY,…). Ces opérateurs s’appliquent aux valeurs numériques, aux chaînes de caractères et aux dates. SELECT [ALL] | [DISTINCT] <liste des colonnes> | * FROM <la table> WHERE <condition> ; Exemples: Lister les données sur Les joueurs de l'équipe 2 SELECT * FROM Joueur WHERE Code_Eq = 2 ; Lister les Joueurs dont le nom ne commence pas par 'M' ? SELECT * FROM Joueur WHERE Nom_J NOT LIKE 'M%' '%' (ou '*')remplace n'importe quelle séquence de n caractères (n pouvant être égal à 0). Tri et présentation des résultats : SQL permet de trier les lignes obtenus par la requête selon différents critères grâce à la clause Order by. Les mots clés Asc et Desc permettent de préciser si le tri est croissant ou décroissant.
  23. 23. 4MTINFBDRC001  Page 7  SELECT [ALL] | [DISTINCT] <liste des colonnes> | * FROM <la table> WHERE <Condition> ORDER BY <liste des colonnes de tri> [ASC|DESC]; Exemple: Lister les nons des Joueurs classés selon la date de naissance SELECT Nom_J, date_Naiss FROM Joueur ORDER BY date_Naiss; Utilisation d’expressions et des Fonctions: Dans la clause SELECT on peut : - insérer des instructions descriptives qui seraient répétées à chaque ligne, - définir une nouvelle colonne (colonne calculée) Les expressions peuvent figurer en tant que : Colonne résultat d’un ordre SELECT. Dans une clause WHERE. Dans une clause ORDER BY. Exemple: Lister pour chaque joueur son âge SELECT Nom_J, Current Date - date_naiss As Age FROM Joueur; Il est néanmoins possible de changer le nom de la colonne à l'affichage en accolant au nom de colonne choisi le prédicat AS suivi du nouveau nom de colonne devant apparaître à l'affichage. Current Date : Fonction renvoie la date du jour. Les Fonction: Des fonctions peuvent être utilisées sur chaque valeur sélectionnée d’un nuplet: Fonctions de Dates: CURRENT DATE, DAY, MONTH, YEAR Fonctions relatives aux caractères: LEFT, RIGHT, SUBSTR, … Des fonctions peuvent manipuler un groupement de nuplets: COUNT, SUM, MIN, MAX, AVG, … Jointure Il s’agit ici de sélectionner les données provenant de plusieurs tables ayant un ou plusieurs colonnes communes. Cette jointure sera assurée grâce aux conditions spécifiées dans : WHERE SELECT <table1.colonne1, table2.colonne2…> FROM < table1, table2… > WHERE Nom_Table1.colonnej = Nom_Table2.colonnej AND … AND <condition> ;
  24. 24. 4MTINFBDRC001  Page 8  Exemple: On suppose que on a une autre table qui mémorise la participation des différents joueurs aux différentes matchs en voici le peuplement des deux tables : Participation Num_j Num_match rôle durée 122 1 DEF 15 123 1 JoueurATT 90 124 1 ATT 90 125 1 DEF 90 126 1 AIL 90 127 1 AIL 45 128 1 DEF 90 129 1 GRA 90 129 2 GAR 45 129 3 GAR 90 130 1 DEF 45 131 1 DEF 45 132 1 DEF 45 132 2 ATT 60 Colonne de jointure Lister les Nom des joueurs du match N°1 SELECT Joueur.Nom_J FROM Joueur, Participation WHERE Joueur.Num_j = Participation.Num_j /* condition de jointure*/ AND Participation.Num_match = 1; /* condition de restriction*/ Dès que deux tables sont utilisées, des ambiguïtés peuvent apparaître. Dans ce cas il faut préfixer le nom de colonne par le nom de la table concernée suivi d'un point. Si les noms de tables qui servent de préfixes deviennent pénibles à taper, SQL offre de plus une possibilité de synonymes dans la clause FROM. Il suffit pour cela de préciser le synonyme juste après le nom de la table à l'aide du mot clé AS (facultatif) comme pour les synonymes de noms de colonne. La requête précédente devient alors : SELECT J.Nom_J FROM Joueur As J, Participation As P WHERE J.Num_j = P.Num_J AND P.Num_match = 1; Auto jointure: On peut joindre une table avec une copie de celle-ci on utilisant les alias: Exemple: donner les noms des joueurs qui sont plus âgés que le joueur n° 127 SELECT J1.Nom_j Num_j Nom_j Prénom_j date_naiss Code_eq 122 BEN ZEKRI mohamed 12/12/1978 2 123 EL MORI AHMED 11/08/1979 2 124 ALISAMTI 09/05/1977 2 125 HAIKELSAMTI 18/01/1979 2 126 BEN AMOR ZIEID 04/02/1978 2 127 NEFFETI ALI 17/05/1977 2 128 MOULLEHI JIHED 12/08/1980 2 129 RIADHMAOUI 05/05/1980 2 130 MOHAMED AMOUS 01/03/1982 2 131 MAKHLOUF AYMEN 07/09/1978 3 132 MABROUK MOUNIR 15/03/1978 3
  25. 25. 4MTINFBDRC001  Page 9  FROM joueur J1, joueur J2 WHERE ((J1.date_naiss) < J2.date_naiss) AND (J2.Num_J=127)); Groupement Il est possible de grouper des lignes de données ayant une valeur commune à l’aide de la clause GROUP BY et des fonctions de groupe (SUM, COUNT,…). SELECT colonne1, colonne2,…, FROM Nom_Table1, Nom_Table2,… WHERE Liste_Condition GROUP BY Liste_Groupe Exemples: Si on veut chercher le nombre des joueurs par équipe : on travail sur la table Joueur Donc le Regroupement s'effectue sur la colonne Code_Eq puis on va compter les lignes regrouper pour chaque Valeur de la colonne Code_Eq et on affiche le nombre des lignes qui correspond au nombre des Num_J. On obtient alors: SELECT Code_Eq , COUNT(Num_J) FROM Joueur GROUP BY Code_Eq;
  26. 26. 4MTINFBDRC001  Page 10  Mise A Jour des données La mise à jours des tables en mode commande se fait à l'aide des commandes SQL suivantes: INSERT, UPDATE, DELETE Insertion d'une ligne: INSERT INTO Nom_Table [(liste colonne)] VALUES (Val1, Val2,…, Valn); INSERT permet d’insérer une nouvelle ligne dans une table. Exemple: Insérer un nouveau joueur dans la table Joueurs: INSERT INTO Joueur ( Num_J, Nom_j, Prenom_J , Date_naiss , Code_Eq ) VALUES ( 133, 'Salhi', 'Hichem', 1999-02-08, 3); Ou bien INSERT INTO Joueur VALUES ( 133, 'Salhi', 'Hichem', 1999-02-08, 3); NB: i. un champ qui n'est pas renseigné et qui n'est pas obligatoire le SGBD lui attribut la valeur NULL. ii. C'est possible d'ajouter plusieurs lignes en même temps INSERT INTO Joueur VALUES ( 'Ben Brahim', 'Adel', 1998-04-08, 3); Remarque: Cette commande ne peut pas être exécutée à cause de la contrainte d’intégrité PRIMARY KEY qui est violée. Les attributs constituant la clé primaire doivent obligatoirement être présents. INSERT INTO Joueur VALUES ( 133,'Ben Brahim', 'Adel', 1998-04-08, 3); Remarque: Cette commande ne peut pas être exécutée à cause de la contrainte d’intégrité d’unicité de la clé primaire qui n’a pas été respectée. Le code client 133 a été déjà attribué. INSERT INTO Participation VALUES (150, 1, 'DEF', 15); Remarque: Cette commande ne peut pas être exécutée à cause de la contrainte d’intégrité FOREIGN KEY (contrainte d'intégrité référentielle) qui est violée. En effet, le joueur ayant le code égal à 150 n’existe pas dans la table Joueur.
  27. 27. 4MTINFBDRC001  Page 11  Modification des données d'une table: UPDATE Nom_Table SET Colonne1 = Expr1, Colonne2 = Expr2, … WHERE Condition; UPDATE permet de mettre à jour un ou plusieurs Colonnes dans un ou plusieurs lignes. La clause WHERE est facultative. Si elle est absente, toutes les lignes sont mises à jour. Exemple: Faire passer le joueur 124 dans L'équipe 3 UPDATE Joueur SET Code_Eq = 3 WHERE Num_J = 124 Suppression des données d'une table: DELETE FROM Nom_Table WHERE Condition; L'ordre DELETE permet de supprimer des lignes d'une table. La clause WHERE indique quelles lignes doivent être supprimées. ATTENTION : cette clause est facultative ; si elle n'est pas précisée, TOUTES LES LIGNES DE LA TABLE SONT SUPPRIMEES. Exemple : Supprimer les joueurs de l'équipe n°3 DELETE FROM Joueur WHERE code_Eq = 3; Cette requête ne sera exécuter que si : • les joueurs de cette équipe n'ont pas de participation • ou bien on a définie l'option ON DELETE CASCADE au moment de la création de la contrainte d'intégrité référentielle et dans ce cas, même les lignes de la table participation qui se réfèrent aux joueurs supprimés seront supprimé aussi.
  28. 28. 4MTINFBDRC001  Page 12  Résumé : La manipulation d’une base de données consiste à insérer, supprimer, modifier ou rechercher des lignes. Elle peut se faire en mode assisté ou en mode commande. Le mode assisté se fait en utilisant une interface graphique d’un SGBD alors que le mode commande consiste à écrire explicitement des commandes conformément à la syntaxe du langage SQL. L’insertion d’une ligne, en SQL, se fait par l’intermédiaire de la commande INSERT. La suppression de lignes, en SQL, se fait par l’intermédiaire de la commande DELETE. Elle permet de supprimer plusieurs lignes qui vérifient la condition spécifiée. La modification de lignes, en SQL, se fait par l’intermédiaire de la commande UPDATE. Elle permet de modifier plusieurs lignes qui vérifient la condition spécifiée. La recherche de lignes, en SQL, se fait par l’intermédiaire de commande SELECT. Elle peut consister à effectuer des opérations de projection, de sélection, de jointure ou toute combinaison de ces dernières. Le résultat peut être trié. On parle de Projection si la recherche est relative à un sous ensemble de colonnes d’une table. On parle de Sélection si la recherche est relative à un sous ensemble de lignes d’une table vérifiant une certaine condition. On parle de Jointure si la recherche est relative à deux tables ayant au moins une colonne en commun. La condition de jointure doit porter sur ces colonnes communes. La clause ORDER BY, utilisée dans la commande SELECT, permet de trier le résultat obtenu. SQL propose certaines fonctions, dites fonctions agrégat : SUM, COUNT, MIN, MAX et AVG

×