CH4 Mysql
CH4 Mysql
CH4 Mysql
Bases de données
Chapitre 4 :MYSQL/phpMyadmin
[email protected]
INTRODUCTION
Connexion au serveur
Ligne de commande
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 :
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’)
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 :
10
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 .
11
ALTER TABLE
CREATE TABLE
CREATE INDEX
DROP TABLE
12
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
14
Création de table
15
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 : ́
• 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
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 :
17
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
19
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
21
Modification de la table
22
Syntaxe :
23
Recherche
SELECT P.prix FROM produit P WHERE P.IdPro = 'p1‘
Ajout
INSERT INTO client (IdCli, nom, ville) VALUES ('c100', 'Duduche', 'Nice')
Mise à jour
Syntaxe
25
26
27
28
29
30
31
32
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
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
35
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
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
38
39
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
Préparation :
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
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.
42
43
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
45
46
Il existe trois types de paramètres pouvant être utilisés avec les PS : IN, OUT et
INOUT.
47
48
Structures conditionnelles
49
50
51
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
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
54
55
57
58
59
60
61
62
63
Cette action conduit à afficher le premier enregistrement de la table contacts avec les 5 champs en attente
64
Insertion d’enregistrements
65
66
67
68
69
70
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");
71