Vous êtes sur la page 1sur 78

Serveur de bases de donnes MYSQL

Plan

Prsentation et historique Les moteurs inclus Installation et configuration Les commandes sous linvite de commande Cration de la base de donnes Cration des tables Ajout des contraintes Insertions des donnes Cration des vues Cration des trigger Limport /export
2

Qu'est ce que c'est?


MySQL est un serveur de bases de donnes relationnelles SQL Robuste et multi-utilisateurs C'est un logiciel libre dvelopp sous double licence en fonction de
l'utilisation

MySQL est l'uvre d'une socit sudoise Fonde par David Axmark,
Allan Larsson et Michael Widenius.

Le prfixer My est origine du surnom de La fille de Michael Widenius


qui tait surnomme My .

Historique

La premire version de MySQL est apparue le 23 mai 1995. Version 4.0 : premire version en octobre 2001, stable depuis mars 2003 Version 4.1 : premire version en avril 2003, stable depuis octobre 2004 Version 5.0 : premire version en dcembre 2003, stable depuis octobre 2005 Version 5.1 : premire version en novembre 2005, Release Candidate distribue depuis septembre 2007 Version 5.2 : distribue en avant-premire en fvrier 2007, cette ligne a ensuite t renomme 6.0 Version 6.0 : premire version en avril 2007 (alpha)

Systmes supports
MySQL est supports par plusieurs plates-formes Linux Mac OS X Solaris Windows 95, 98, NT, 2000 et XP. ..

Langages de programmation
Les bases de donnes sont accessibles en utilisant des langages de
programmation C, C++, C# Delphi Java PHP VB 6.0, VB.NET (Myodbc)

Moteurs de base de donnes inclus


MyISAM : Utilise plusieurs fichiers qui grandissent au fur et mesure que
la base grossit. Il ne supporte pas les transactions, ni les clefs trangres.

InnoDB : moteur cr et maintenu par InnoBase (Filiale d'Oracle). Il gre


les transactions et les clefs trangres. En contrepartie, les bases qui l'utilisent occupent bien plus d'espace sur le disque.

CSV : Comma Separated Value , moteur utilisant des fichiers textes


pour le stockage.

Les nouvelles versions de MySQL et leurs fonctionnalits


Actuellement, la dernire version stable de MySQL est la 5.1 MySQL 5.1 a l'avantage de supporter les vues, procdures stockes,
des triggers ainsi qu'un dictionnaire de donnes INFORMATION_SCHEMA.

Les dveloppeurs de MySQL AB travaillent activement sur la


version 6.0, encore en version beta (ajout du nouveau moteur de stockage Falcon).

Outils d'administration du serveur MySQL


MYSQL ADMINISTRATOR, logiciel d'administration de bases de
donnes.

MySQL Query Browser; interface graphique pour maintenir la base et y


faire des requtes.

MySQL Workbench, logiciel de conception et de modlisation de base de


donnes.

MySQL Migration Toolkit, logiciel permettant de migrer votre base de


donnes vers votre base de donnes MySQL.

Installation du serveur MySQL sous Windows

Lancement de l'assistant d'installation du serveur MySQL

10

Installation du serveur MySQL sous Windows

Choix du type d'installation

Lancement de l'installation

11

Configuration du serveur MySQL


Il existe 2 mthodes pour la configuration du serveur MySQL Mthode 1:
Lancement de la configuration la fin de l'installation Mthode 2: Lancement de la configuration partir du menu dmarrer Cliquez sur le menu "dmarrer" Pointez "tous les programmes" Pointez MySQL server 5.0 MySQL Server Instance Config Wizard

12

Configuration du serveur MySQL


Choix du type de configuration
Configuration Standard configuration dtaill

13

Configuration du serveur MySQL


Choix du serveur
Machine conue pour le dveloppement Serveur MySQL cohabit avec d'autre serveur Serveur ddi pour MySQL

14

Configuration du serveur MySQL


Il s'agit ici de paramtrer le support des transactions
Le moteur InnoDB est active mais il n'est pas le moteur par dfaut Rendre le moteur InnoDB le moteur par dfaut Le troisime choix dsactive InnoDB, pour conomiser quelques ressources

15

Choix de l'emplacement

Dans le cas o vous avez l'un des deux premiers choix dans l'cran
prcdent, vous devez configurer l'emplacement o sont stocks les fichiers de donnes (tablespaces) InnoDB.

16

Nombre de connexion
20 connexions 500 connexions Personnalis, il pourra support jusqu' 1400 connexions, dans le cas d'un serveur ddi.

17

Configuration du serveur MySQL


Nombre de connexion
Autorisation des connexions TCP/IP extrieures Choix du numro de port Choix du mode SQL.

18

Configuration du jeu de caractres

19

Configuration du serveur MySQL


Configuration MySQL en tant que service de Windows et son path pour
l'invite de commande Ms-DOS

20

Scurit
Protg le compte root par mot de passe
Cration d'un autre compte Anonime

21

Fin de la configuration

22

Installation des Outils D'administration MySQL


Lancement de l'installation Double cliquez sur l'icone de l'installe des outils de MySQL

23

Les outils installs


Liste des lments installs

24

diteur de commandes MySQL sous Ms-Dos


1re Mthode cliquez sur le menu dmarrer pointez MySQL, un menu s'affiche pointez MySQL Server 5.0, un autre menu s'affiche cliquez sur la commande "MySQL Command Line Client" la fentre de l'diteur s'affiche entrez le mot de passe "Root"

25

diteur de commandes MySQL sous Ms-Dos


2me Mthode (si le path nest pas inclus) cliquez sur le menu dmarrer pointez accessoires cliquez "Invite de commandes" la fentre de l'Invite de commandes s'affiche tapez le chemin complet de l'emplacement du serveur MySQL Exemple :

26

diteur de commandes MySQL sous Ms-Dos


Paramtres de lancement de l'diteur
-h : hoste, nom ou adresse IP du serveur MySQL -u : user, utilisateur -p : mot de passe remarques : dans le cas d'une machine local utilisez, localhost ou l'adresse 127.0.0.1 Exemple :

27

Les bases de donnes installes par dfaut


Liste des bases install par dfaut
lancez l'diteur de MySQL sous DOS entrez les paramtres de connexion tapez la commande suivante: show databases;

28

Choisir une base


pour indiquer au serveur la base sur laquelle vous voulez travailler:
Taper la commande use nom de la base le systme indiquera le changement de la base par le message suivant "Database changed" exemple

29

Afficher les tables d'une base


pour afficher l'ensemble des tables d'une base de donnes slectionne, utilisez la commande suivante: show tables exemple:

30

Structure d'une table


pour afficher la structure d'une table, utilisez la commande suivante: describe [nom_table] ou desc [nom_table] exemple:

31

Structure d'une table


Schema d'information
pour afficher la structure d'une table (ex: user de la base mysql), en utilisant le schma d'information : select COLUMN_NAME, DATA_TYPE, COLUMN_KEY, COLUMN_DEFAULT from columns where table_name='user'; exemple:

32

Informations sur le serveur


STATUS
Affiche les informations sur la version du serveur et ses caractristiques: Exemple

33

Perte de connexion
en cas de perte de connexion vous pouvez se reconnecter une autre fois sans
spcifier les paramtres de connexion, tapez la commande connect exemple:

34

Base de donnes
Pour crer une base de donnes utilisez la requte suivante :
create database [nom_base] exemple :

35

Base de donnes
Pour supprimer une base de donnes utilisez la requte suivante : drop database
[nom_base] exemple:

36

Les objets d'une base de donnes


Tables :
Types des attributs lors de la cration d'une table, les colonnes peuvent tre de type diffrents : - Nombre entier sign ou non - Nombre virgule - Chane de caractres - Date et heure - Enumrateur

37

Les attributs
Entiers :

38

Les attributs
Flottants :

39

Les attributs
Chanes de caractres :

40

Crer une Table

Requte : CREATE TABLE [nom_table] ( champ1 type paramtre champ2 type paramtre, champ3 type paramtre, ... )

41

Crer une Table


Exemple 1 :
CREATE TABLE Etudiants ( id INT UNSIGNED not null PRIMARY KEY, nom VARCHAR(40) not null, prenom VARCHAR(40) not null, date_nais DATE, adresse VARCHAR(80), telephone VARCHAR(15), ville VARCHAR(30) )

42

Crer une Table


Exemple 2 :
CREATE TABLE Etudiants ( id INT UNSIGNED not null, nom VARCHAR(40) not null, prenom VARCHAR(40) not null, date_nais DATE, adresse VARCHAR(80), telephone VARCHAR(15), ville VARCHAR(30), PRIMARY KEY (id) )
43

Crer une Table


Table avec une cl trangre :
CREATE TABLE [nom_table]( champ1 type paramtre, champ2 type paramtre, champ3 type paramtre, ... cl_trangre references [nom_table2](cl_primaire) );

44

Crer une Table


exemple 1 :
CREATE TABLE Inscription ( id_ins INT UNSIGNED not null PRIMARY KEY, ann_uni VARCHAR(4) not null, etape VARCHAR(1) not null, cod_etu INT UNSIGNED references etudiants(id) );

45

Crer une Table


Ajout de la cl trangere aprs la cration du champ
create table inscriptions (id_ins int auto_increment, cod_anu char(4) not null, cod_etp varchar(6) not null, id_etu int unsigned not null, primary key(id_ins), FOREIGN KEY (id_etu) REFERENCES etudiants(id));

46

Crer une Table


Crer un champ ENUM :
Permet de dfinir la liste des valeurs qui seront accepts par ce champ pour chaque insertion ou modification de ce dernier: CREATE TABLE Etudiant ( id INT UNSIGNED not null PRIMARY KEY , nom VARCHAR(40) not null, prenom VARCHAR(40) not null, date_nais DATE, adresse VARCHAR(80), telephone VARCHAR(15), ville VARCHAR(30), boursier enum('OUI','NON'));
47

Crer une Table


Valeur par dfaut :
Pour donner une valeur par dfaut un attribut, on utilise DEFAULT. Lors de lajout dun enregistrement cette valeur sera affecte lattribut si aucune valeur nest donne. Exemple : boursier char(3) DEFAULT OUI Remarque : Les attributs de type chane de caractres de la famille TEXT et BLOB ne peuvent pas avoir de valeur par dfaut.

48

Crer une Table


Index
lorsqu'un utilisateur lance une recherche sur une information, Mysql parcours la table correspondante dans n'importe quel ordre, et dans le cas ou une table contient un grand nombre de lignes, la recherche deviennent trs longue. la cration d'un index associ une colonne ou plusieurs colonne pourra minimiser les temps de recherche.

49

Crer une Table


Syntaxe :
INDEX index (liste des colonnes) Remarque : Un index pourra supporter 15 colonnes maximum. Une table peut avoir 16 index maximum . Un index ne support pas les colonnes NULL.

50

Supprimer une Table

Syntaxe :
La commande DROP TABLE prend en paramtre le nom de la table supprimer. Toutes les donnes quelle contient sont supprimes et sa dfinition aussi.

Exemple :
DROP TABLE Etudiants;

51

Modifier la structure d'une Table


La cration dune Table par la commande CREATE TABLE ne rend pas la
dfinition des types des colonnes comme une valeur dfinitive mais on peux la modifier Par la commande ALTER TABLE ALTER TABLE : - ajouter/supprimer un attribut - crer/supprimer une cl primaire - ajouter une contrainte dunicit (interdire les doublons) - changer la valeur par dfaut dun attribut - changer totalement la dfinition dun attribut - changer le nom de la table - ajouter/supprimer un index
52

Modifier la structure d'une Table


Ajouter une colonne
ALTER TABLE nom_table ADD (definition) [ FIRST | AFTER attribut]

Exemple:
alter table inscription add nbr_ins_etp char(1) after etape;

53

Modifier la structure d'une Table


Supprimer une colonne
La suppression d'une colonne impliquera la suppression de toutes les valeurs de cette dernire

Syntaxe :
ALTER TABLE nom_table DROP nom_colonne

Exemple :
alter table inscription drop nbr_ins_etp;

54

Modifier la structure d'une Table


Supprimer une colonne (suite) supprimer une colonne pourra gnrer des erreurs en relation avec
PRIMARY KEY et UNIQUE.

55

Modifier la structure d'une Table


ajouter une cl primaire
il n'est possible de crer une cl primaire que si la table ne contiennent aucune cl primaire. Syntaxe : ALTER TABLE nom_table ADD PRIMARY KEY (attribut) Exemple : ALTER TABLE etudiants ADD PRIMARY KEY (ID)

56

Modifier la structure d'une Table


supprimer une cl primaire
la suppression d'une cl primaire ne prsente aucun risque tant que elle est unique Syntaxe : ALTER TABLE nom_table drop PRIMARY KEY (attribut) Exemple : alter table etudiants drop primary key;

57

Modifier la structure d'une Table UNIQUE

La contrainte Unique pourra tre ajouts pour vrifier la prsence de la nouvelle donne dans la table. la contrainte s'applique un ou plusieurs champ en mme temps, dans le cas ou on insert une donne qui existe dj dans la table, alors elle ne sera pas applique et une erreur sera gnre. Syntaxe : ALTER TABLE relation ADD UNIQUE [contrainte] (attributs) remarque: le nom de la contrainte est facultatif.

58

Modifier la structure d'une Table


Exemple:
dans la table tudiants on veux s'assurer que le code de l'tudiants est unique et que le mme code ne sera pas attribu 2 tudiants en mme temps. ALTER TABLE etudiants ADD UNIQUE UNI_COD_ETU (cod_etu)

59

Modifier la structure d'une Table Changer le nom d'une table


syntaxe :
ALTER TABLE nom_ancien_table RENAME nom_nouveau_table

Exemple :
ALTER TABLE etudiants RENAME individu

60

Insertion des donnes


l'insertion des donnes se fais par plusieurs mthodes: - Ligne par ligne en mentionnant les noms des colonnes - Ligne par ligne sans mentionner les noms des colonnes - Plusieurs ligne la fois - A partir d'un fichier plat

61

Insertion des donnes


La syntaxe standard pour l'insertion des donnes :
INSERT INTO nom_table VALUES(liste des valeurs)

62

Insertion des donnes


A partir d'un fichier plat: insertion dans la table individu, il faut que le fichier plat respecte la structure de la table et l'ordre des champs. les champs sont separs par des tabulations
champ1 champ1 champ1 ... champ2 champ2 champ2 champ3 champ3 champ3 ... ... ...

63

Insertion des donnes A partir d'un fichier plat:

Syntaxe :
load data local infile [emplacement du fichier plat] into table [nom de la table].

Exemple
load data local infile 'c:/liste.txt' into table Etudiants; ou load data local infile 'c:/liste.txt' replace into table Etudiants;
64

Insertion des donnes A partir d'un fichier plat: (suite)


Local:
le mot local est utilis dans le cas ou votre fichier est enregistrer localement, sur la machine cliente, dans ce cas le contenu du fichier sera lu par la machine cliente et envoyer ensuite vers le serveur dans le cas contraire, le fichier sera enregistrer sur le serveur et son traitement se passe sur ce dernier. Replace: on peut utiliser le mot replace pour craser les donnes qui existent dja dans la table cible.

65

Insertion des donnes A partir d'un fichier plat: (suite)


Mthode 2:
LOAD DATA LOCAL INFILE 'D:\\MySQL\\liste.txt' REPLACE INTO TABLE `Etudiants` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '.'
66

Insertion des donnes A partir d'un fichier plat: (suite)


structure du fichier plat
"1";"nom1";"prenom1"."2";"nom2";"prenom2"."3";"nom3";"prenom3".

67

Exporter des donnes vers des fichiers


Tee:
la commande tee permet d'ouvrir un fichier d'criture qui permet d'enregistrer ts ce qui s'affiche sur l'cran: Exemple: mysql> tee c:\liste_ind.txt > select * from individu; > ... > notee Notee pour fermer le fichier

68

Exercice
1. 2. 3. 4. 5.
Crer la base de donnes gestion_stages Afficher tt les information sur ltudiant qui porte le nom amrani Afficher tt les information sur les tudiants dont les noms commence par el Afficher le nombre des tudiants et des enseignants Afficher les informations sur les tudiants par ordre alphabtique des noms et des prnoms 6. Afficher les tudiants nes en 1988 7. Afficher la date de naissance sous la forme(Tuesday October 1980) 8. Afficher les tudiants ne entre 01/01/1988 et 31/12/1989 9. Afficher les stages qui ont dur plus de 2 mois 10. Afficher pour chaque stage le nom le prnom de ltudiant ainsi que la dure du stage 11. Afficher pour chaque stage le nom le prnom de ltudiant ainsi que le nom et le prnom de lenseignant qui encadre le stage 12. Afficher le nombre de stage encadr par chaque enseignant en indiquant son id, nom et prnom 13. Afficher lenseignant qui encadre le plus grand nombre de stage
69

Exporter des donnes vers des fichiers Outfile:

la commande OUTFILE permet d'avoir le rsultat d'une requte SQL sur


un fichier externe et non pas sur l'cran.

Syntaxe :
[requete SQL] into outfile [nom et emplacement du fichier];

Exemple:
select * from Etudiants where id>1 into outfile 'c:/liste_ind.txt';

70

Les fonctions

Les oprateurs: les parenthses ( ), les oprateurs arithmtiques (+, -, *, /, %), les oprateurs binaires (<, >, |, &), les oprateurs logiques qui retournent 0 (faux) ou 1 (vrai) (AND, OR, NOT,

71

Fonctions Mathmatiques
Les oprateurs de comparaison:
Le mot cl LIKE permet de comparer deux chanes. Le caractre % est spcial et signifie : 0 ou plusieurs caractres. Le caractre _ est spcial et signifie : 1 seul caractre, nimporte lequel. Lexemple suivant permet de rechercher tous les tudiants dont le nom commence par el, cela peut tre elamrani, elbachir,etc : SELECT * FROM etudiants WHERE nom LIKE el%

72

Cration des views

Une vue est considr comme une table virtuelle


Le contenu de cette vue est le rsultat d'une requete L'utilit des vues rside au niveau de l'criture des requtes complxes, au lieu de les r -crire chaque fois ou on a besoin d'avoir un certain nombre de donnes, on stock la requte dans une vues et on fais son appelle par une requte. syntaxe: CREATE [OR REPLACE] [ALGORITHM = {MERGE | TEMPTABLE}] VIEW view_name AS select_statement

73

Cration des views


Exemple :
create or replace V_Individu as select * from individu where id_etu >=2005 l'interrogation de la vue se fais comme l'interrogation d'une table select * from v_individu;

Modifier une view


Alter view nom_view as [la nouvelle requte];

exemple :
alter view v_individu as select * from individu;

Supprimer une view


drop view nom_vue
74

Cration des Trigger


les triggers (ou dclencheurs) sont des procdures qui s'activent automatiquement
lorsqu'un vnement donn se produit sur une table. En d'autres termes, quand une requte INSERT, UPDATE ou DELETE survient, on se rserve la posibilit d'agir avant ou aprs son excution.

Exemple :
delimiter // CREATE TRIGGER T_Individu BEFORE INSERT ON individu FOR EACH ROW BEGIN SET new.nom = UPPER(new.nom); SET new.prenom = UPPER(new.prenom); END; // delimiter ;

75

Export/Import
le code du trigger est plac dans un bloc BEGIN ... END. Le mot-cl BEFORE indique que l'on souhaite agir avant que l'action de
l'insertion la modification ou la suppression soit ne effectuer Le mot-cl AFTER indique que l'on souhaite agir aprs que l'action de l'insertion la modification ou la suppression ne soit effectuer Le mot cl new est utilis uniquement avec BEFORE Le mot cl old est utilis uniquement avec AFTER

76

Export/Import
Sauvegarde de la base
L'export sert faire une copie de la base en structure et en donner pour la sauvegarder en cas de perte de la premire base avec l'import on peut la rcuprer grce a la base sauvegarder. Syntaxe: mysqldump -u [utilisateur] -p[mot de passe] [base de donner] -h [serveur] > emplacement et nom du fichier.

mysql -u [utilisateur] -p[mot de passe] [base de donner] -h [serveur] -D


[base de donnes] < backup-production.sql

77

Fishier SQL
Les fichiers SQL sert en gnral pour excuter des instructions de grandes
tailles, par exemple on crer un script complet pour la cration d'une base avec ces tables views et triggers. Syntaxe : source nom_fichier.sql

78