SGBDR - MySQL
Transcript of SGBDR - MySQL
S Q L
Structured Query
Language
Structured Query
LanguageSQL est un langage structuré de requêtes destiné à interroger ou à manipuler une base de données relationnelle.
SQL est un langage structuré de requêtes destiné à interroger ou à manipuler une base de données relationnelle.
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.
SQL est un langage de définition de donnéesSQL 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éesSQL 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éesIl est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
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
Hifeo
Contexte
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.
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# )
Hifeo
Contexte
Implantation de la base de données sous MySQL
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.
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
Implantation de la base de données sous MySQL avec EasyPHPImplantation de la base de données sous MySQL avec EasyPHP
EasyPHP propose phpMyAdmin qui est une interface pour gérer une base de données MySQL sur un serveur PHP.
EasyPHP propose phpMyAdmin qui est une interface pour gérer une base de données MySQL sur un serveur PHP.
Création de la base de données hifeo
Création de la base de données hifeo
SQL est un langage de définition de donnéesSQL permet de créer des tables dans une base de données relationnelle, ainsi que d'en modifier ou en supprimer.
CREATEALTERDROPAUDITNOAUDITANALYZERENAMETRUNCATE
SQL est un langage de définition de données
CREATE DROP
Langage de définition de données
CREATE DATABASE `hifeo` ;Cette commande permet de créer une base de donnée hifeo.
Bouton SQL
Bouton SQL
Cadre de saisie de la requête SQL à exécuter
Requête SQL de création des tables de la base de données hifeo
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
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
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
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
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
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
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
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
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
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é.
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).
SQL est un langage de manipulation de donnéesSQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle.
SELECTINSERTUPDATEDELETEEXPLAINPLANLOCK TABLE
SQL est un langage de manipulation de données
INSERT
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
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.
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,
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 .
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:
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
Langage de définition de donnéesLangage 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
Langage de définition de données
Les tables correspondant au modèle relationnel de gestion des réclamations ont été crées
Langage de définition de données
Les tables correspondant au modèle relationnel de gestion des réclamations ont été crées
SQL est un langage de manipulation de donnéesSQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle.
SELECTINSERTUPDATEDELETEEXPLAINPLANLOCK TABLE
SQL est un langage de manipulation de donnéesSQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle.
SELECT
SQL est un langage de manipulation de donnéesSQL est un langage d'interrogation de données
SELECT
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La liste des agents
Langage d'interrogation de données
Afficher la table agent
Langage d'interrogation de données
Afficher la table agent
Langage d'interrogation de données
La commande SELECT sert à effectuer une PROJECTION, à sélectionner un ensemble de champs dans une table.
Langage d'interrogation de données
On peut utiliser le caractère '*'
Langage d'interrogation de données
On peut utiliser le caractère '*' pour sélectionner tous les champs de la table
Langage d'interrogation de données
On peut utiliser le caractère '*' pour sélectionner tous les champs de la table agent
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La liste des produits classés por odre de prix croissant
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.
Langage d'interrogation de données
La clause ORDER BY classe la table produit par ordre croissant de prix.
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La liste des marques des produits
Langage d'interrogation de données
Pour ne pas avoir de redondance (de doubles) dans la sélection on utilise l'expression 'distinct'
Langage d'interrogation de données
La liste des marques des produits
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La liste des références des produits de marque Moulinex
Langage d'interrogation de données
La clause WHERE permet d'inclure une condition à la sélection, elle permet d'effectuer une RESTRICTION.
Langage d'interrogation de données
La liste des références des produits de marque Moulinex
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La liste des références des congelateurs de marque Moulinex
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)
Langage d'interrogation de données
La liste des références des congelateurs de marque Moulinex
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La liste des réclamations faites après le 25/10/2006
Langage d'interrogation de données
WHERE date_r>'2006-10-25'
Langage d'interrogation de données
Il existe différents comparateurs arithmétiques :=!= ou <> (différent)<><= (inférieur ou égale)>= (supérieur ou égale)
Langage d'interrogation de données
Liste des réclamations faites après le 25/10/2006
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La liste des références et des prix des produits dont le prix est compris entre 500 et 1000
Langage d'interrogation de données
Comparateurs de chaînes de caractères :Between And
Langage d'interrogation de données
Il peut être remplacer par la combinaison de 2 opérateurs: <, >
Langage d'interrogation de données
L'opérateur Not between andpermet de sélectionner les valeurs qui ne font pas partie de l'intervalle.
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La liste des clients habitant le 16ème
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
Langage d'interrogation de données
Liste des clients habitant le 16ème
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
Les références des produits ayant un retard de livraison
Langage d'interrogation de données
Les requêtes concernant plusieurs tables représentent des JOINTURES.
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
Langage d'interrogation de données INNER (facultatif) indique une jointure interne.
Langage d'interrogation de données Le mot clef ON précise le critère de jointure.
Langage d'interrogation de données Références des produits ayant un retard de livraison
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
Le prix moyen des produits
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
Langage d'interrogation de données AVG permet de calculer la moyenne des valeurs d'un ensemble.
Langage d'interrogation de données AVG permet de calculer la moyenne des valeurs d'un ensemble.
Langage d'interrogation de données L’opérateur AS sert à donner un nom à de nouvelles colonnes créées par la requête.
Langage d'interrogation de données L’opérateur AS sert à donner un nom à de nouvelles colonnes créées par la requête.
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.
Langage d'interrogation de données Prix moyen des produits
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
La moyenne des prix par catégorie
Langage d'interrogation de données La clause "GROUP BY" sert à grouper les résultats d'une requête.
Langage d'interrogation de données La moyenne des prix par catégorie
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait avoir des renseignements:
Les catégories ayant un prix moyen supérieur à 1000
Langage d'interrogation de données Pour appliquer des restrictions sur les groupes créés par la clause "GROUP BY”, on utilise la commande HAVING qui est l'équivalent d'un WHERE pour les groupes.
Langage d'interrogation de données
Les catégories ayant un prix moyen supérieur à 1000
SQL est un langage de manipulation de donnéesSQL permet de sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données relationnelle.
SELECTINSERTUPDATEDELETEEXPLAINPLANLOCK TABLE
SQL est un langage de manipulation de données
INSERTUPDATEDELETE
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait:
Enregistrer un nouvel agent Achyl TORTU n°402
Langage de manipulation de données
Pour insérer des données dans une table on utilise la commande INSERT avec la clause VALUES.
Langage de manipulation de données
Pour insérer des données dans une table on utilise la commande INSERT avec la clause VALUES.
Langage de manipulation de données
Enregistrer un nouvel agent Achyl TORTU n°402
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait:
Aumenter les prix des congélateurs de 10%
Langage de manipulation de données
Pour la mise à jour, la modification des données, on utilise la commande UPDATE
Langage de manipulation de données
On peut ajouter une clause de filtrage WHERE dans une requête de mise à jour.
Hifeo
Contexte
Le responsable de la clientèle et des réclamations souhaiterait:
Supprimer l'agent n°402
Langage de manipulation de données
Pour supprimer un enregistrement dans une table on utilise la commande DELETE.
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
S Q L
CREATE TABLE
S Q L
L D D
INSERT INTO VALUES
S Q L
L M D
DELETE
S Q L
L M D
S Q L
L M DL I D
SELECT
S Q L
L M DL I DPROJECTION
WHERE
S Q L
L M DL I DRESTRICTION
JOIN
S Q L
L M DL I DJOINTURE
Structured Query
Language