SGBDR - MySQL

Preview:

Citation preview

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

Recommended