CH4 Mysql

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 73

Royaume du Maroc

Université Hassan Premier


Faculté des Sciences et Techniques De Settat

Bases de données
Chapitre 4 :MYSQL/phpMyadmin

Kaoutar ERRAKHA Année Universitaire : 2022_2023

[email protected]
INTRODUCTION

MySQL derive directement de SQL (Structured Query Language)


• L’outil phpMyAdmin est developpé en PHP et offre une interface pour l’administration
des base de données cet outil permet de :
• Créer de nouvelles bases
• Créer/modifier/supprimer des tables
• Afficher/ajouter/modifier/supprimer des tuples dans des tables
• Effectuer des sauvegardes de la structure et/ou des données
• Effectuer des requêtes
• Gérer les privilèges des utilisateurs

Cours Base de donnèes 2


 MYSQL

 Connexion au serveur
 Ligne de commande

Cours Base de donnèes 3


 MYSQL

 Avec l’interface graphique de phpMyAdmin

Cours Base de donnèes 4


 MYSQL

 Création et Sélection de base de données

AVEC MySQL ,les bases de données sont implémentées comme des répertoires contenant
des fichiers qui correspondent aux tables dans les bases de données .
 Une base de données se crée avec :

 La création d'une base de données ne la sélectionne pas pour l 'utilisation , il faut le


faire explicitement avec:

Une base de données est détruite par


5

Cours Base de donnèes 5


 TYPES D’ATTRIBUT(INT)

Cours Base de donnèes 6


 TYPES D’ATTRIBUT (CHAINES)

Cours Base de donnèes 7


 TYPES D’ATTRIBUT(DATES ET HEURES)

Cours Base de donnèes 8


 TYPES D’ATTRIBIUT (ENUMERATION)

 Un attribut de type ENUM (NON ANSI) peut prendre des valeurs parmi celle définis
lors de la création de la table ,Ces valeurs sont exclusivement des chaines de caractères
(insensibles à la casse).

 Nom_Attribut ENUM(‘val1’,’val2’)

Cours Base de donnèes 9


 TYPES D’ATTRIBIUT (SET)

 Un attribut de type SET peut prendre pour valeur une chaine vide ,NULL ou une chaine
contenant une liste de valeurs qui doivent être déclarées au moment de la définition de l
'attribut.
Par exemple: Un attribut déclaré comme ci :

SET("voiture","avion","train") NOT NULL


""
"voiture,avion"
"train"

10

Cours Base de donnèes 10


 VALEUR PAR DÉFAUT

 Pour donner une valeur par défaut à un attribut ,on utilise l 'option DEFAULT Lors de
l'ajout d'un enregistrement cette valeur sera affectée à l 'attribut si aucune valeur n'est
donnée .

'téléphone DECIMAL(10,0) DEFAULT '0674589000‘

Les attributs de type chaine de caractères de la famille TEXT et BLOB ne peuvent


pas avoir de valeur par défaut.

11

Cours Base de donnèes 11


 COMMANDES SQL

 La définition des données –LDD

La première étape sert à la création et à la maintenance de la base de données : création


des tables des index et des contraintes d’intégrité, modification de la structure d'une table
ou suppression d'une table. SQL dispose pour cela des instructions suivantes :

 ALTER TABLE
 CREATE TABLE

 CREATE INDEX

 DROP TABLE

12

Cours Base de donnèes 12


 COMMANDES SQL

 La commande CREATE TABLE

La commande CREATE TABLE permet de créer une table dans la base de données
courante. Sa syntaxe est la suivante : CREATE TABLE NomTable (Nomchamp1 type
propriété, Nomchamp2 type propriété,.. );

13

Cours Base de donnèes 13


 EXEMPLE

14

Cours Base de donnèes 14


 CRÉATION TABLE

 Création de table

15

Cours Base de donnèes 15


 INTEGRITE REFERENTIELLE

ON UPDATE et ON DELETE

Si l’utilisateur tente de supprimer une ligne d’une table parente, alors qu’une ou plusieurs lignes
existent dans une table enfant correspondent a la première, il y a plusieurs possibilités : ́

• CASCADE efface la ligne de la table parente et supprime automatiquement les lignes


correspondent dans la table enfante

• SET NULL supprime la ligne de la table parente et met la (ou les) valeur(s) de la clé estrangère
à NULL `

• SET DEFAULT supprime la ligne de la table parente et met tous les composants de la clé ́
étrangère ` a leur valeur par ` default dans la table enfante

• NO ACTION rejette l’opération de suppression dans la table parente


16

Cours Base de donnèes 16


 TRUNCATE TABLE

 Cette commande est très utile pour supprimer toutes les données d'une table ,La
commande DROP TABLE ,permet aussi d‘exécuter cette opération ,Mais comment
devons -nous procéder pour supprimer les données tout en conservant la table ? Pour ce
faire , il convient d'utiliser la commande TRUNCATE TABLE :

 La syntaxe pour TRUNCATE TABLE est :

 TRUNCATE TABLE "nom_table";

17

Cours Base de donnèes 17


 CONTRAINTES

 Contrainte d’unicité

 Une déclaration à la fin permet de mettre une contrainte sur un ensemble de colonne;
Dans l’exemple suivant, la colonne Id doit être unique ainsi que le duo Nom et Prénom;
Pris individuellement, Nom et Prénom peuvent être répété mais pas pour la même
ligne.

18

Cours Base de donnèes 18


 CONTRAINTES

 Contrainte de clé étrangère

19

Cours Base de donnèes 19


 CONTRAINTES

Contrainte de clé primaire

une insertion à la fin permet aussi de préciser une clé primaire sur plusieurs attributs;

implicitement, une clé primaire inclue les contraintes UNIQUE et NOT NULL.

20

Cours Base de donnèes 20


 EXEMPLE

 Soit le modèle relationnel


Medecin (Matricul , nom)
Patient(Noss,nom)
Medicament(code , libelle)
Consultation (No, date , #Noss , #Matricule)
Prescrit (Noprise, #code , #No)

1. Créer une base de données db_cabinet


2. Création des tables médecin , patient , médicament, consultation , prescrit
3. Création des attributs de chaque table

21

Cours Base de donnèes 21


 COMMANDES SQL

 Modification de la table

Une fois créée, on peut la modifier en utilisant ALTER TABLE et ADD

– On peut la modifier en utilisant ALTER TABLE et DROP

22

Cours Base de donnèes 22


 AJOUTER CLÉ PRIMAIRE

 ALTER TABLE relation ADD PRIMARY KEY(attribut)

Syntaxe :

ALTER TABLE relation ADD PRIMARY KEY(attribut)

 On peut la supprimer via la commande :

ALTER TABLE Personne DROP PRIMARY KEY

23

Cours Base de donnèes 23


 MANIPULATION DES DONNÉES

 SELECT, INSERT, UPDATE et DELETE sont les 4 commandes de manipulation des


données en SQL:

Recherche
SELECT P.prix FROM produit P WHERE P.IdPro = 'p1‘
Ajout
INSERT INTO client (IdCli, nom, ville) VALUES ('c100', 'Duduche', 'Nice')
Mise à jour

UPDATE produit P SET P.prix = P.prix * 1.20 WHERE P.IdPro = 'p2'


Suppression

DELETE FROM produit P WHERE P.IdPro = 'p4' 24

Cours Base de donnèes 24


 COMMANDES SQL

 Insertion d’enregistrements : de manière générale

Syntaxe

• INSERT INTO votre_table (nomattribut1,...,nomattributN) values


('valeur1',...,'valeurN');
– Les attributs qui ne sont pas mentionnés prendront leur valeur par défaut

25

Cours Base de donnèes 25


 SELECTION SQL

 Autres formes de sélection

26

Cours Base de donnèes 26


 UTILISATION AVEC GROUP BY

 L’utilisation de ces fonctions avec la commande GROUP BY permet de diminuer


le degré d’agrégation en construisant des sous-ensembles de tuples sur lesquels on
applique la synthèse :

27

Cours Base de donnèes 27


 UTILISATION DE HAVING

L’utilisation de HAVING s’utilise de la manière suivante :

Cela permet donc de SÉLECTIONNER les colonnes DE la table “nom_table” en


GROUPANT les lignes qui ont des valeurs identiques sur la colonne “colonne1” et
que la condition de HAVING soit respectée.

28

Cours Base de donnèes 28


 SELECT DISCTINCT

 Clause SELECT DISCTINCT :

SQL n’élimine pas les doublons des lignes retournées;


la clause DISTINCT permet de retirer les doublons (un doublon est une ligne
entièrement identique);

29

Cours Base de donnèes 29


 COMMANDES SQL LIMIT ET OFFSET

 En SQL, la commande LIMIT permet de spécifier le nombre maximum de résultats que


l’on souhaite obtenir, tandis que la commande OFFSET permet d'effectuer un décalage
sur l'ensemble des résultats. Un cas d'utilisation courant consiste à utiliser ces
commandes dans le cadre du développement d'une pagination.

30

Cours Base de donnèes 30


 JOINTURE DE TABLES

 Soient les deux tables

31

Cours Base de donnèes 31


 JOINTURE DE TABLES

 SELECT Titre, Livres.CodeGenre, LibelleGenre, Prix FROM Livres, Genres


WHERE Livres.CodeGenre = Genres.CodeGenre;

32

Cours Base de donnèes 32


 JOINTURE SQL(1)

Les jointures en SQL permettent d’associer plusieurs tables dans une même requête.
Cela permet d'exploiter la puissance des bases de données relationnelles pour obtenir des
résultats qui combinent les données de plusieurs tables en même temps de manière
efficace.

 INNER JOINT

Dans le langage SQL la commande INNER JOIN, est un type de jointure très commune
pour lier plusieurs tables entre-elles dans une même requête. Cette commande retourne les
enregistrements lorsqu'il y a au moins une ligne dans chaque colonne listé dans la
condition.

33

Cours Base de donnèes 33


 JOINTURE SQL(2)

 Dans le langage SQL la commande LEFT JOIN

Dans le langage SQL la commande LEFT JOIN, est un type de jointure commune
pour lier plusieurs tables entre-elles dans une même requête.
Cette commande retourne tous les enregistrements de la table première table, celle
de gauche (left), avec la correspondance dans la deuxième table si la condition est
respectée. En d'autres termes, ce type de jointure permet de retourner tous les
enregistrements d'une table avec les données liées d'une autre table si elles existent.

34

Cours Base de donnèes 34


 FONCTIONS D’AGRÉGATION

 COUNT() pour compter le nombre d’enregistrements d'une table ou d'une colonne


distincte ;
 AVG() pour calculer la moyenne sur un ensemble d’enregistrements ;

 SUM() pour calculer la somme sur un ensemble d’enregistrements ;

 MAX() pour récupérer la valeur maximum d’une colonne sur un ensemble


d’enregistrements ;
 MIN() pour récupérer la valeur minimum de la même manière que la fonction MAX().

35

Cours Base de donnèes 35


 COMMANDE SQL ORDER BY

En SQL, la commande ORDER BY permet de trier les résultats d'une requête. Il est possible de
trier les données sur une ou plusieurs colonnes, par ordre ascendant ou descendant

36

Cours Base de donnèes 36


 SQL LANGAGE DML

 Les fonctions de manipulation

 Fonctions de manipulation de chaîne de caractères :

 CHAR, LENGTH, LOWER, UPPER


 CONCAT, TRIM, LEFT, RIGHT,
 SUBSTR, REPLACE, LOCATE,
 FORMAT,

Fonctions de manipulation de la date et de l’heure :

 NOW, SYSDATE, DATEDIFF, TIMEDIFF


 YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MICROSECOND
 STR_TO_DATE, DATE_FORMAT
37

Cours Base de donnèes 37


 SQL VIEW

 Les vues sont des tables virtuelles dérivées à partir d’autres tables (appelées tables de
base). Elles ne sont jamais stockées sur disque mais plutôt maintenue en mémoire vive.
 Une vue permet d’éviter l’exécution de requêtes couteuses à répétition.

 Lorsqu’une vue est créée, sont contenu est constamment maintenu à jour lors des

opérations du DML sur les tables de bases concernées.


 Une vue peut servir de base à une autre vue.

38

Cours Base de donnèes 38


 SQL VIEW

39

Cours Base de donnèes 39


 SQL :LES REQUÊTES PRÉPARÉES

 Les requêtes préparées (RP) (ou requêtes para métrisées ou « prepared statement » en
anglais) sont des requêtes stockées et précompilées par le SGBD. Ces requêtes ne sont
pas exécutées lors de leur déclaration.
Via un mécanisme de liaison (« binding »), elles offrent un outil puissant permettant de
définir les valeurs des paramètres de la requête lors de la demande de leur exécution.
En effet, il est fréquent de faire la même requête en ne faisant varier que certains
paramètres:

40

Cours Base de donnèes 40


 LES REQUÊTES PRÉPARÉES

L’usage de requête préparée se fait en trois étapes :

 Préparation :

Consiste à définir la requête préparée dans le SGBD; ce dernier analyse la requête et


initialise les ressources internes nécessaires à son exécution.
 Liaison et exécution :

Le client envoi les paramètres de la requête; le SGBD lie les paramètres et exécute la
requête avec les ressources préalablement allouées.
 Libération des ressources :

Lorsque la requête préparée n’est plus nécessaire, il est important de libérer les
ressources.
41

Cours Base de donnèes 41


 LES REQUÊTES PRÉPARÉES

 Les requêtes préparées ne font pas partie de la norme SQL mais plutôt des outils
supplémentaires offerts par les SGBD.

 Voici les éléments syntaxiques pour MySQL.

42

Cours Base de donnèes 42


 LES REQUÊTES PRÉPARÉES

43

Cours Base de donnèes 43


 LES PROCÉDURES STOCKÉES

 Une procédure stockée (PS) est un ensemble d’instructions précompilées.


Comme pour les requêtes préparées, les PS sont interprétées, analysées, planifiées
et optimisées lors de leur déclaration et rendues disponibles pour une exécution
rapide et flexible via des paramètres définies en entrée et en sortie.

Les PS ne font pas partie de la norme SQL mais ils sont plutôt des outils
supplémentaires offerts par les SGBD. D’ailleurs, tous les SGBD offrant les PS offrent un
langage procédurale complémentaire permettant une plus vaste possibilité que le simple
SQL.

44

Cours Base de donnèes 44


 LES PROCÉDURES STOCKÉES

Les requêtes préparées et procédures stockées partagent beaucoup de points en commun


au niveau des avantages. Néanmoins, les mécanismes sous jacents sont très différents.

 Parmi les avantages qu’elles offrent :

 Simplification pour les développeurs;


 Rapidité par la réduction de la bande passante;
 Gain de performance puisque déjà préparées lors de leur déclaration,
 Gain de performance puisqu’exécutées du côté serveur;
 Accroissement de la sécurité en limitant l’accès aux objets définies uniquement dans les PS.

45

Cours Base de donnèes 45


 LES PROCÉDURES STOCKÉES

 Présentation des principaux éléments syntaxiques utilisés par MySQL.

Attention à l’instruction DELIMITER.


Déclaration, appel et suppression d’une procédure stockée.

46

Cours Base de donnèes 46


 LES PROCÉDURES STOCKÉES

 Il existe trois types de paramètres pouvant être utilisés avec les PS : IN, OUT et
INOUT.

IN : ce paramètre sert à passer une valeur à la procédure (paramètres par défaut). La


modification de ce paramètres à l’intérieur de la procédure n’a aucun effet sur la
valeur externe.
OUT : ce paramètre permet à la procédure de retourner une valeur au programme
appelant. La valeur initiale de ce paramètre est inaccessible.

INOUT : combinaison des deux types précédents.

47

Cours Base de donnèes 47


 LES PROCÉDURES STOCKÉES

48

Cours Base de donnèes 48


 LES PROCÉDURES STOCKÉES

 Structures conditionnelles

49

Cours Base de donnèes 49


 EXEMPLE

50

Cours Base de donnèes 50


 LES DÉCLENCHEURS

 Les déclencheurs (TRIGGERS en anglais) sont des objets de la base de données


permettant d’exécuter des tâches spécifiques à des moments spécifiques.

Les évènements pouvant être associés à un TRIGGER sont principalement


liés aux opérations de manipulation des données : INSERT, UPDATE, DELETE.

51

Cours Base de donnèes 51


 LES DÉCLENCHEURS

Avantages et inconvénients :
Une solution avancée d’assurer l’intégrité référentielle;
Permet d’identifier des erreurs logiques lors des transactions liées au DML;
Les évènements permettent d’exécuter des tâches planifiées (maintenance, gestion, …);
Outils très puissants pour gérer les historiques de transaction liées au DML;
Les déclencheurs exigent des ressources significatives;
Les déclencheurs complexifient le schéma et les interrelations de la BD. Son
développement et
 sa maintenance peuvent être très couteuses

52

Cours Base de donnèes 52


 LES DÉCLENCHEURS

 Pour le langage SQL, voici les éléments syntaxiques importants :

BEFORE et AFTER indique que l’évènement est appelé avant ou après l’instruction qui peut être ces
éléments du DML INSERT, UPDATE et DELETE.
À l’intérieur du TRIGGER, les instructions OLD et NEW font référence à la ligne antérieurement
inscrite dans la table et à la nouvelle données. Un seul type de référence est possible à la fois.

53

Cours Base de donnèes 53


 EXEMPLE

54

Cours Base de donnèes 54


 EXEMPLE

55

Cours Base de donnèes 55


 LANGAGE SQL TCL

Pour MySQL, on retrouve principalement 5 instructions liées au TCL :

 SAVEPOINT : crée un point de sauvegarde intermédiaire dans la transaction;


COMMIT : valide la transaction en cours et sauvegarde les modifications faites;
 ROLLBACK ou ROLLBACK TO savepoint: annule la transaction en cours et annule
les modifications faites;
SET autocommit = { 0 | 1 };
 active ou désactive la validation automatique (par défaut, autocommit = 1);

START TRANSACTION : permet la déclaration du début d’une transaction et


certaines options .
Dès qu’une instruction COMMIT ou ROLLBACK a été exécuté, une nouvelle transaction
débute et terminera au prochain appel du COMMIT ou ROLLBACK.
56

Cours Base de donnèes 56


 EXEMPLE(1)

57

Cours Base de donnèes 57


 EXEMPLE 2

58

Cours Base de donnèes 58


 PHPMYADMIN

59

Cours Base de donnèes 59


 PHPMYADMIN

 En cliquant sur Databases : on obtient les bases enregistrées – On peut cocher et


supprimer une base par Drop – On peut créer une nouvelle base

60

Cours Base de donnèes 60


 PHPMYADMIN

 En cliquant sur la base mySql, on obtient ses tables


 On peut supprimer une table en cochant et supprimant
 On peut créer une nouvelle table

61

Cours Base de donnèes 61


 PHPMYADMIN

 Retour sur la création d’une base : 2 méthodes

62

Cours Base de donnèes 62


 PHPMYADMIN

 Création d’une base personnelle

 Laissez le type en Interclassement par défaut


 ma-base(0) indique que la base contient 0 table
 Regardez le code SQL qui s’affiche

63

Cours Base de donnèes 63


 PHPMYADMIN

 Création d’une table


Créer dans ma-base, la table « contacts » suivante avec ses 5 champs

Cette action conduit à afficher le premier enregistrement de la table contacts avec les 5 champs en attente

64

Cours Base de donnèes 64


 COMMANDES SQL

 Insertion d’enregistrements

INSERT INTO clients_tbl(id,prenom,nom,ne_le,ville,enfants)


VALUES('','Patrick','Martin','1965-10-08','Bordeaux','2')

65

Cours Base de donnèes 65


 TABLE MYSQL

Pour modifier, supprimer un ou tous les champs

Pour ajouter un champ

66

Cours Base de donnèes 66


 TABLE MYSQL

 Ajout d’enregistrement : insert

67

Cours Base de donnèes 67


 TABLE MYSQL

 Appuyer sur Browse pour voir les enregistrements

68

Cours Base de donnèes 68


 PHPMYADMIN
Export des données

69

Cours Base de donnèes 69


 PHPMADMIN

70

Cours Base de donnèes 70


 INTERFACE AVEC PHP

Pour se connecter à une base depuis un script PHP ,il faut spécifier un nom de serveur ,un nom
d'utilisateur , un mot de passe et un nom de base .
Aucune connexion n 'est possible sans authentification auprès du serveur de base de données .
Les actions possibles de l 'utilisateur sur la base à laquelle il se connecte dépendent des droits qui
lui auront été fournis par l’administrateur de la base de données .
 mysql_connect("localhost", " root", "cFrrI954");

1er paramètre : L’adresse IP du serveur MySQL


2ème paramètre : nom d’utilisateur
3ème paramètre : mot de passe
Ensuite sélectionner la base de donnée
 mysql_select_db("maBase");

71

Cours Base de donnèes 71


 INTERFACE AVEC PHP

 mysql_close([$i]):permet de fermer la connexion à un serveur de bases de données , l


'argument optionnel $id est l 'identifiant de session retourné à l'ouverture de la
connexion.
Pour envoyer une requête à une base de donnée , il existe la fonction :
 mysql_query($str): qui prend pour paramètre une chaine de caractères qui contient la
requête écrite en SQL et retourne un identificateur de résultat ou FALSE si échec .

$result=mysql_query("SELECT téléphone FROM Personnes WHERE


nom="\$name\" );

 mysql_fetch_row($result):retourne une ligne de résultat (un tuple) sous la forme d'un


tableau,Les éléments du tableau étant les valeurs des attributs de la ligne ,Retourne
FALSE s'il n 'y a plus aucune ligne 72

Cours Base de donnèes 72


 APPLICATION

 Soit le modèle relationnel


Client(num_client,prenom,email)
excursion(num_excurssion,libelle,point_depart,prix,lieu,date)
reserve(trajet,#num_client,#num_excurssion)
bus(matricule,libelle,nom)
personnel(num_personel,qualification,fonction,poste)
affecter(#num_excurssion,#num_personel)

1)Crèer une base de données


2)Crèer les tables
3)Ajouter des insertions
4) Affichez le contenu de la table réservation
5) Modifier les informations d’un client
73

Cours Base de donnèes 73

Vous aimerez peut-être aussi