SGBDR - MySQL

6,031 views
5,828 views

Published on

Création, manipulation, interrogation base de données sous MySQL.

Published in: Education
1 Comment
8 Likes
Statistics
Notes
No Downloads
Views
Total views
6,031
On SlideShare
0
From Embeds
0
Number of Embeds
210
Actions
Shares
0
Downloads
614
Comments
1
Likes
8
Embeds 0
No embeds

No notes for slide

SGBDR - MySQL

  1. 1. S Q L
  2. 2. Structured Query Language
  3. 3. Structured Query Language SQL est un langage structuré de requêtes destiné à interroger ou à manipuler une base de données relationnelle.
  4. 4. SQL est un langage structuré de requêtes destiné à interroger ou à manipuler une base de données relationnelle.
  5. 5. SQL est un langage structuré de requêtes destiné à interroger ou à manipuler une base de données relationnelle. SQL permet de créer des tables dans une base de données relationnelle, ainsi que d'en modifier ou en supprimer. SQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle. Il est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
  6. 6. SQL est un langage de définition de données SQL permet de créer des tables dans une base de données relationnelle, ainsi que d'en modifier ou en supprimer. SQL est un langage de manipulation de données SQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle. SQL est un langage de contrôle des données Il est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
  7. 7. SQL est un langage de définition de données LDD SQL est un langage de manipulation de données LMD SQL est un langage de contrôle des données LCD
  8. 8. Hifeo Contexte
  9. 9. Hifeo Contexte Hifeo est une entreprise de la grande distribution spécialisée en télé, hi-fi et vidéo. Le service consommateurs a pour activité principale de s’occuper des réclamations clients.
  10. 10. Hifeo Contexte Modèle relationnel du traitement des réclamations clients: produit ( reference , categorie, marque, prixvente) client ( code_c , nom_c, prenom_c, adresse, cp, ville) agent ( code_a , nom_a , prenom_a ) reclamation ( reference_r , date_ r, garantie, incomplete_liv, panne, reference#, code _c#, code _a# )
  11. 11. Hifeo Contexte Implantation de la base de données sous MySQL
  12. 12. Hifeo Contexte Implantation de la base de données sous MySQL MySQL est un serveur de bases de données relationnelles SQL. Il fait partie du quatuor LAMP : Linux, Apache, MySQL, PHP.
  13. 13. Hifeo Contexte Implantation de la base de données sous MySQL avec EasyPHP EasyPHP est un ensemble de logiciels (Apache, MySQL, PHP, PhpMyAdmin) permettant une mise en oeuvre rapide d'un site web, sous Windows
  14. 14. Implantation de la base de données sous MySQL avec EasyPHP Implantation de la base de données sous MySQL avec EasyPHP
  15. 15. EasyPHP propose phpMyAdmin qui est une interface pour gérer une base de données MySQL sur un serveur PHP.
  16. 16. EasyPHP propose phpMyAdmin qui est une interface pour gérer une base de données MySQL sur un serveur PHP.
  17. 17. Création de la base de données hifeo
  18. 18. Création de la base de données hifeo
  19. 19. SQL est un langage de définition de données SQL permet de créer des tables dans une base de données relationnelle, ainsi que d'en modifier ou en supprimer. CREATE ALTER DROP AUDIT NOAUDIT ANALYZE RENAME TRUNCATE
  20. 20. SQL est un langage de définition de données CREATE DROP
  21. 21. Langage de définition de données CREATE DATABASE `hifeo` ; Cette commande permet de créer une base de donnée hifeo.
  22. 22. Bouton SQL
  23. 23. Bouton SQL
  24. 24. Cadre de saisie de la requête SQL à exécuter
  25. 25. Requête SQL de création des tables de la base de données hifeo
  26. 26. Requête SQL de création des tables de la base de données hifeo CREATE DATABASE IF NOT EXISTS `hifeo`; USE `hifeo`; Langage de définition de données Cette commande permet de créer une base de donnée hifeo
  27. 27. Requête SQL de création des tables de la base de données hifeo CREATE DATABASE IF NOT EXISTS `hifeo`; USE `hifeo`; Langage de définition de données Cette commande permet de créer une base de donnée hifeo si celle-ci n'existe pas
  28. 28. Requête SQL de création des tables de la base de données hifeo CREATE DATABASE IF NOT EXISTS `hifeo`; USE `hifeo`; Langage de définition de données ou de l'utiliser si elle existe
  29. 29. Requête SQL de création des tables de la base de données hifeo # # Table structure for table 'agent' # DROP TABLE IF EXISTS `agent`; CREATE TABLE `agent` ( `code_a` VARCHAR(3) NOT NULL, `nom_a` VARCHAR(30), `prenom_a` VARCHAR(30), INDEX (`code_a`), PRIMARY KEY (`code_a`) ) TYPE=MyISAM DEFAULT CHARSET=utf8; Langage de définition de données création de la structure de la table agent
  30. 30. Requête SQL de création des tables de la base de données hifeo # # Table structure for table 'agent' # DROP TABLE IF EXISTS `agent`; CREATE TABLE `agent` ( `code_a` VARCHAR(3) NOT NULL, `nom_a` VARCHAR(30), `prenom_a` VARCHAR(30), INDEX (`code_a`), PRIMARY KEY (`code_a`) ) TYPE=MyISAM DEFAULT CHARSET=utf8; Langage de définition de données la commande DROP permet de supprimer une table complète
  31. 31. Requête SQL de création des tables de la base de données hifeo # # Table structure for table 'agent' # DROP TABLE IF EXISTS `agent`; CREATE TABLE `agent` ( `code_a` VARCHAR(3) NOT NULL, `nom_a` VARCHAR(30), `prenom_a` VARCHAR(30), INDEX (`code_a`), PRIMARY KEY (`code_a`) ) TYPE=MyISAM DEFAULT CHARSET=utf8; Langage de définition de données la commande DROP permet de supprimer la table agent si elle existe
  32. 32. Requête SQL de création des tables de la base de données hifeo # # Table structure for table 'agent' # DROP TABLE IF EXISTS `agent`; CREATE TABLE `agent` ( `code_a` VARCHAR(3) NOT NULL, `nom_a` VARCHAR(30), `prenom_a` VARCHAR(30), INDEX (`code_a`), PRIMARY KEY (`code_a`) ) TYPE=MyISAM DEFAULT CHARSET=utf8; Langage de définition de données la commande CREATE TABLE permet de créer une table
  33. 33. Requête SQL de création des tables de la base de données hifeo # # Table structure for table 'agent' # DROP TABLE IF EXISTS `agent`; CREATE TABLE `agent` ( `code_a` VARCHAR(3) NOT NULL, `nom_a` VARCHAR(30), `prenom_a` VARCHAR(30), INDEX (`code_a`), PRIMARY KEY (`code_a`) ) TYPE=MyISAM DEFAULT CHARSET=utf8; Langage de définition de données la commande CREATE TABLE permet de créer une table en lui donnant un nom
  34. 34. Requête SQL de création des tables de la base de données hifeo # # Table structure for table 'agent' # DROP TABLE IF EXISTS `agent`; CREATE TABLE `agent` ( `code_a` VARCHAR(3) NOT NULL, `nom_a` VARCHAR(30), `prenom_a` VARCHAR(30), INDEX (`code_a`), PRIMARY KEY (`code_a`) ) TYPE=MyISAM DEFAULT CHARSET=utf8; Langage de définition de données la commande CREATE TABLE permet de créer une table en définissant sa structure avec le type et la taille des champs qui la composent
  35. 35. Requête SQL de création des tables de la base de données hifeo # # Table structure for table 'agent' # DROP TABLE IF EXISTS `agent`; CREATE TABLE `agent` ( `code_a` VARCHAR(3) NOT NULL, `nom_a` VARCHAR(30), `prenom_a` VARCHAR(30), INDEX (`code_a`), PRIMARY KEY (`code_a`) ) TYPE=MyISAM DEFAULT CHARSET=utf8; Langage de définition de données Le mot clé NOT NULL permet de spécifier qu'un champ doit être saisi, c'est-à-dire que le SGBD refusera de saisir des enregistrements dont un champ comportant la clause NOT NULL n'est pas renseigné.
  36. 36. Requête SQL de création des tables de la base de données hifeo # # Table structure for table 'agent' # DROP TABLE IF EXISTS `agent`; CREATE TABLE `agent` ( `code_a` VARCHAR(3) NOT NULL, `nom_a` VARCHAR(30), `prenom_a` VARCHAR(30), INDEX (`code_a`), PRIMARY KEY (`code_a`) ) TYPE=MyISAM DEFAULT CHARSET=utf8; Langage de définition de données la clause PRIMARY KEY permet de définir des clés, c'est-à-dire spécifier le (ou les) champ(s) dont la connaissance permet de désigner précisément un et un seul enregistrement (une ligne de la table).
  37. 37. SQL est un langage de manipulation de données SQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle. SELECT INSERT UPDATE DELETE EXPLAIN PLAN LOCK TABLE
  38. 38. SQL est un langage de manipulation de données INSERT
  39. 39. Requête SQL d'insertion des données # # Dumping data for table 'agent' # INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('003', 'FAISAN', 'Aristide'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('018', 'ATIS', 'Murielle'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('105', 'RUMER', 'Nathalie'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('303', 'CHATOY', 'Etienne'); # 4 records Langage de manipulation de données Insertion de données dans la table agent
  40. 40. Requête SQL d'insertion des données # # Dumping data for table 'agent' # INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('003', 'FAISAN', 'Aristide'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('018', 'ATIS', 'Murielle'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('105', 'RUMER', 'Nathalie'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('303', 'CHATOY', 'Etienne'); # 4 records Langage de manipulation de données L'insertion de nouvelles données dans une table se fait grâce à l'ordre INSERT, qui permet d'insérer de nouvelles lignes dans la table.
  41. 41. Requête SQL d'insertion des données # # Dumping data for table 'agent' # INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('003', 'FAISAN', 'Aristide'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('018', 'ATIS', 'Murielle'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('105', 'RUMER', 'Nathalie'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('303', 'CHATOY', 'Etienne'); # 4 records Langage de manipulation de données L'ordre INSERT attend la clause INTO, suivie du nom de la table,
  42. 42. Requête SQL d'insertion des données # # Dumping data for table 'agent' # INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('003', 'FAISAN', 'Aristide'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('018', 'ATIS', 'Murielle'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('105', 'RUMER', 'Nathalie'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('303', 'CHATOY', 'Etienne'); # 4 records Langage de manipulation de données L'ordre INSERT attend la clause INTO, suivie du nom de la table, ainsi que du nom de chacun des champs entre parenthèses .
  43. 43. Requête SQL d'insertion des données # # Dumping data for table 'agent' # INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('003', 'FAISAN', 'Aristide'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('018', 'ATIS', 'Murielle'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('105', 'RUMER', 'Nathalie'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('303', 'CHATOY', 'Etienne'); # 4 records Langage de manipulation de données Les valeurs à insérer peuvent être précisées avec la clause VALUES:
  44. 44. Requête SQL d'insertion des données # # Dumping data for table 'agent' # INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('003', 'FAISAN', 'Aristide'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('018', 'ATIS', 'Murielle'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('105', 'RUMER', 'Nathalie'); INSERT INTO `agent` (`code_a`, `nom_a`, `prenom_a`) VALUES ('303', 'CHATOY', 'Etienne'); # 4 records Langage de manipulation de données Les données sont affectées aux champs dans l'ordre dans lequel les champs ont été déclarées dans la clause INTO
  45. 45. Langage de définition de données Langage de manipulation de données La requête de création des tables et d'insertion des données est saisie et exécutée
  46. 46. Langage de définition de données Les tables correspondant au modèle relationnel de gestion des réclamations ont été crées
  47. 47. Langage de définition de données Les tables correspondant au modèle relationnel de gestion des réclamations ont été crées
  48. 48. SQL est un langage de manipulation de données SQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle. SELECT INSERT UPDATE DELETE EXPLAIN PLAN LOCK TABLE
  49. 49. SQL est un langage de manipulation de données SQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle. SELECT
  50. 50. SQL est un langage de manipulation de données SQL est un langage d'interrogation de données SELECT
  51. 51. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La liste des agents </li></ul>
  52. 52. Langage d'interrogation de données Afficher la table agent
  53. 53. Langage d'interrogation de données Afficher la table agent
  54. 54. Langage d'interrogation de données La commande SELECT sert à effectuer une PROJECTION, à sélectionner un ensemble de champs dans une table.
  55. 55. Langage d'interrogation de données On peut utiliser le caractère '*'
  56. 56. Langage d'interrogation de données On peut utiliser le caractère '*' pour sélectionner tous les champs de la table
  57. 57. Langage d'interrogation de données On peut utiliser le caractère '*' pour sélectionner tous les champs de la table agent
  58. 58. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La liste des produits classés por odre de prix croissant </li></ul>
  59. 59. Langage d'interrogation de données La clause ORDER BY sert à classer par ordre croissant ou décroissant le résultat d'une requête. Par défaut le tri est croissant. Les extensions ASC et DESC indiquent respectivement si le tri est croissant ou décroissant.
  60. 60. Langage d'interrogation de données La clause ORDER BY classe la table produit par ordre croissant de prix.
  61. 61. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La liste des marques des produits </li></ul>
  62. 62. Langage d'interrogation de données Pour ne pas avoir de redondance (de doubles) dans la sélection on utilise l'expression 'distinct'
  63. 63. Langage d'interrogation de données La liste des marques des produits
  64. 64. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La liste des références des produits de marque Moulinex </li></ul>
  65. 65. Langage d'interrogation de données La clause WHERE permet d'inclure une condition à la sélection, elle permet d'effectuer une RESTRICTION.
  66. 66. Langage d'interrogation de données La liste des références des produits de marque Moulinex
  67. 67. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La liste des références des congelateurs de marque Moulinex </li></ul>
  68. 68. Langage d'interrogation de données Il existe différentes catégories d'opérateurs pour exprimer une expression logique : AND, OR, NOR (négation du OR)
  69. 69. Langage d'interrogation de données La liste des références des congelateurs de marque Moulinex
  70. 70. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La liste des réclamations faites après le 25/10/2006 </li></ul>
  71. 71. Langage d'interrogation de données WHERE date_r>'2006-10-25'
  72. 72. Langage d'interrogation de données Il existe différents comparateurs arithmétiques : = != ou <> (différent) < > <= (inférieur ou égale) >= (supérieur ou égale)
  73. 73. Langage d'interrogation de données Liste des réclamations faites après le 25/10/2006
  74. 74. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La liste des références et des prix des produits dont le prix est compris entre 500 et 1000 </li></ul>
  75. 75. Langage d'interrogation de données Comparateurs de chaînes de caractères : Between And
  76. 76. Langage d'interrogation de données Il peut être remplacer par la combinaison de 2 opérateurs: <, >
  77. 77. Langage d'interrogation de données L'opérateur Not between and permet de sélectionner les valeurs qui ne font pas partie de l'intervalle.
  78. 78. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La liste des clients habitant le 16ème </li></ul>
  79. 79. Langage d'interrogation de données Like permet de comparer du texte. Pour cela on lui ajoute des caractères spéciaux . Le caractère '%' permet de remplacer une suite de caractères
  80. 80. Langage d'interrogation de données Liste des clients habitant le 16ème
  81. 81. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>Les références des produits ayant un retard de livraison </li></ul>
  82. 82. Langage d'interrogation de données Les requêtes concernant plusieurs tables représentent des JOINTURES.
  83. 83. Langage d'interrogation de données Un jointure sert à lier des champs de différentes tables, mettre une relation entre eux. Il faut que les champs que l'on souhaite lier soient du même type Langage d'interrogation de données Un jointure sert à lier des champs de différentes tables, mettre une relation entre eux. Il faut que les champs que l'on souhaite lier soient du même type
  84. 84. Langage d'interrogation de données INNER (facultatif) indique une jointure interne.
  85. 85. Langage d'interrogation de données Le mot clef ON précise le critère de jointure.
  86. 86. Langage d'interrogation de données Références des produits ayant un retard de livraison
  87. 87. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>Le prix moyen des produits </li></ul>
  88. 88. Langage d'interrogation de données Les fonctions agrégats permettent de faire du dénombrement, déterminer un maximum, un minimum, faire des moyennes
  89. 89. Langage d'interrogation de données AVG permet de calculer la moyenne des valeurs d'un ensemble.
  90. 90. Langage d'interrogation de données AVG permet de calculer la moyenne des valeurs d'un ensemble.
  91. 91. Langage d'interrogation de données L’opérateur AS sert à donner un nom à de nouvelles colonnes créées par la requête.
  92. 92. Langage d'interrogation de données L’opérateur AS sert à donner un nom à de nouvelles colonnes créées par la requête.
  93. 93. Langage d'interrogation de données Autres fonctions d'agrégats: COUNT permet de compter le nombres de valeurs d'un ensemble. SUM permet de faire la somme des valeurs d'un ensemble. MAX permet de calculer la valeur maximale d'un ensemble. MIN permet de calculer la valeur minimale d'un ensemble.
  94. 94. Langage d'interrogation de données Prix moyen des produits
  95. 95. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>La moyenne des prix par catégorie </li></ul>
  96. 96. Langage d'interrogation de données La clause &quot;GROUP BY&quot; sert à grouper les résultats d'une requête.
  97. 97. Langage d'interrogation de données La moyenne des prix par catégorie
  98. 98. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements: </li></ul><ul><li>Les catégories ayant un prix moyen supérieur à 1000 </li></ul>
  99. 99. Langage d'interrogation de données Pour appliquer des restrictions sur les groupes créés par la clause &quot;GROUP BY”, on utilise la commande HAVING qui est l'équivalent d'un WHERE pour les groupes.
  100. 100. Langage d'interrogation de données Les catégories ayant un prix moyen supérieur à 1000
  101. 101. SQL est un langage de manipulation de données SQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle. SELECT INSERT UPDATE DELETE EXPLAIN PLAN LOCK TABLE
  102. 102. SQL est un langage de manipulation de données INSERT UPDATE DELETE
  103. 103. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait: </li></ul><ul><li>Enregistrer un nouvel agent Achyl TORTU n°402 </li></ul>
  104. 104. Langage de manipulation de données Pour insérer des données dans une table on utilise la commande INSERT avec la clause VALUES.
  105. 105. Langage de manipulation de données Pour insérer des données dans une table on utilise la commande INSERT avec la clause VALUES.
  106. 106. Langage de manipulation de données Enregistrer un nouvel agent Achyl TORTU n°402
  107. 107. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait: </li></ul><ul><li>Aumenter les prix des congélateurs de 10% </li></ul>
  108. 108. Langage de manipulation de données Pour la mise à jour, la modification des données, on utilise la commande UPDATE
  109. 109. Langage de manipulation de données On peut ajouter une clause de filtrage WHERE dans une requête de mise à jour.
  110. 110. Hifeo <ul><li>Contexte </li></ul><ul><li>Le responsable de la clientèle et des réclamations souhaiterait: </li></ul><ul><li>Supprimer l'agent n°402 </li></ul>
  111. 111. Langage de manipulation de données Pour supprimer un enregistrement dans une table on utilise la commande DELETE.
  112. 112. SQL est un langage de définition de données LDD SQL est un langage de manipulation de données LMD SQL est un langage de contrôle des données LCD
  113. 113. S Q L
  114. 114. CREATE TABLE S Q L L D D
  115. 115. INSERT INTO VALUES S Q L L M D
  116. 116. DELETE S Q L L M D
  117. 117. S Q L L M D L I D
  118. 118. SELECT S Q L L M D L I D PROJECTION
  119. 119. WHERE S Q L L M D L I D RESTRICTION
  120. 120. JOIN S Q L L M D L I D JOINTURE
  121. 121. Structured Query Language

×