22
Application à MySQL 1

Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Embed Size (px)

Citation preview

Page 1: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Application à MySQL

1

Page 2: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

IntroductionCe cours doit vous permettre de :

Découvrir ce qu’est une base de donnéeDécouvrir comment créer une base de données

sans trop de redondanceDécouvrir comment interroger une base de

donnée MySQLCe cours ne vous permettra pas :

De bien comprendre les mécanismes sous-jacentSavoir faire une base de donnée optimiséeD’avoir le BTS sans approfondir le sujet (tester,

poser des questions…), tout comme pour les sockets 2

Page 3: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Qu’est ce que c’est que ça?Un peu de vocabulaire…Une base de donnée peut être vue comme un

ensemble de tableaux Excel :Chaque fichier Excel est une tabletableUne ligne d’une tabletable est un enregistrementenregistrement (ou tupletuple)

Une colonne d’une table est un attributattribut

3

Page 4: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Donc c’est quoi ?Une base de donnée, c’est un ensemble de tablestables, et chaque table contient de l’information stocké sous forme de tupletuple.

Exemple : base de donnée de l’ORT :Une table eleveUne table classeUne table matiereUne table note

4

Page 5: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Comment organiser les tablesPrenons l’exemple précédent, et imaginons

qu’on veuille stocker les notes de tous les élèves :On utilise la table note, et on met les attribut

suivants : Nom Prenom NomMatière Note

5

Page 6: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Exemple 1Nom Prenom NomMatiere Note

Lelore Thibault Informatique 19

Lelore Thibault Informatique 17

Lelore Thibault Français 8

Lelore Thibault Mathématique 15

Différents problèmes :•Perte de place : on répète 4 fois le nom et le prénom, ainsi que le nom de la matière…•Modification : Si on veux modifier le nom, il faut le faire partout !•Suppression : Si on supprime une note, on peut aussi supprimer un nom !

6

Page 7: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Note

eleve

Matiere

Comment organiser les tablesMieux : on utilise eleve, matiere et note :

7

Page 8: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Note

eleve

Matiere

ProblèmesPas parfait :

Que se passe t’il si on a deux élèves avec le même nom ?

Que se passe t’il si on modifie le nom d’un élève ?

8

Page 9: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

SolutionLorsque l’on fait une table, il faut décider

d’une cléclé

Une cléclé est un attribut qui est unique dans toute la table.Il ne peut pas y avoir 2 tupletuple avec la même

valeurGénéralement, c’est un numéro, mais ça peut

être n’importe quoi.

9

Page 10: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Règles et conseilsPour bien faire :

Utiliser une clé numérique (un identifiant)Ne pas hésiter à découper une table en deux :

Dans l’exemple suivant, le modèle détermine la marque et la puissance. On peut alors créer deux tables :

Voiture

Voiture

Modele

10

Page 11: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Règle pour découper1. Transformer chaque attribut en attribut

atomique :Quand un attributattribut contient plusieurs informations

(nom et prénom, ou adresse et code postal…)Créer deux (ou plus) attributsattributs.

2. Déterminer quelles dépendances existent entre les attributs pour chaque table

Quand un attribut détermine d’autres attributsattributs (une note et un nom de matière, ou un modèle de voiture et une marque)

Créer deux (ou plus) tablestables.

11

Page 12: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Schéma relationnelUne fois qu’on a décidé de quelles tables

faire, il est possible de faire un schéma relationnel :Comme UML, mais avec :

À la place des classes, c’est les tables À la place des méthodes, c’est les attributs Il n’existe que des liens simples entre les tables Penser aussi aux cardinalités

12

Page 13: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

MySQLUne fois les tables décidées, il faut les créer

Plusieurs logiciels (MySQL, PostGres, Access, Oracle…)

Tous utilisent le même langage de requête : le SQL

Tout d’abord une présentation de SQL

13

Page 14: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Créer une base de donnée :/* Table des quartiers */CREATE TABLE quartiers (id int NOT NULL auto_increment,nom_quartier text,PRIMARY KEY (id));

/* Tables des lieux */CREATE TABLE lieux (id int NOT NULL auto_increment,nom text, ref_quartier int,description text,PRIMARY KEY (id));

14

Page 15: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Créer une base de donnée :/* Table des quartiers */CREATE TABLE quartiers (id int NOT NULL auto_increment,nom_quartier text,PRIMARY KEY (id));

/* Tables des lieux */CREATE TABLE lieux (id int NOT NULL auto_increment,nom text, ref_quartier int,description text,PRIMARY KEY (id));

15

Défini la clé principale

Nouveaux types…

Page 16: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Insérer des valeursINSERT INTO quartiers VALUES (1,'Wazemmes');

INSERT INTO quartiers(nom_quartier) VALUES ('Vieux Lille');

INSERT INTO lieux VALUES ('Biplan',1,'Salle de spectacle');

16

Page 17: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Insérer des valeursINSERT INTO quartiers VALUES (1,'Wazemmes');

INSERT INTO quartiers(nom_quartier) VALUES ('Vieux Lille');

INSERT INTO lieux VALUES ('Biplan',1,'Salle de spectacle');

17

Permet d’ajouter qu’une partie d’un

tupletuple

Le numéro de la clé est sous entendu

Page 18: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Interrogation de la baseTout le contenu de la table quartiers :

SELECT * FROM quartiers;Tous les noms de lieux:

SELECT nom FROM lieux;Même chose mais classé par ordre

alphabétique :SELECT nom FROM lieux ORDER BY nom;

Compter le nombre de lieux différents :SELECT COUNT(DISTINCT nom) FROM lieux;

18

Page 19: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

Interrogation suiteTous les noms de lieux qui se trouvent dans

le quartier "Q1":SELECT lieux.nom FROM lieux,quartiers

WHERE lieux. ref_quartier=quartiers.id and quartiers.nom="Q1";

Cette opération s’appelle une jointureElle se fait grâce à la clé de la table quartiers :

ref_quartier=quartiers.id

19

Page 20: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

ModificationUPDATE quartiers SET

nom_quartier='Waazzeeeemmes !' WHERE ref_quartier=1;

20

Page 21: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

SuppressionDROP TABLE quartiers;

Supprime toute la table mais il faut qu’elle soit vide

DELETE FROM lieux;Vide toute la table

DELETE FROM lieux WHERE ref_quartier=1;Supprime toutes les lignes où ref_quartier=1

21

Page 22: Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base de donnée Découvrir comment créer une base de données

MySQLMySQL :

Utiliser PHP (pour faire un site)Utiliser la ligne de commandeUtiliser C++ (et autre langage de

programmation)

A vous de découvrir et d’apprendre…Hors programme

22