Serveur de bases de données
MYSQL
2
Plan
Présentation et historique
Les moteurs inclus
Installation et configuration
Les commandes sous l’invite de commande – Création de la base de données– Création des tables – Ajout des contraintes – Insertions des données – Création des vues
– Création des trigger – L’import /export
3
Qu'est ce que c'est?
MySQL est un serveur de bases de données relationnelles SQL
Robuste et multi-utilisateurs
C'est un logiciel libre développé sous double licence en fonction de l'utilisation
MySQL est l'œuvre d'une société suédoise Fondée par David Axmark, Allan Larsson et Michael Widenius.
Le préfixer « My » est origine du surnom de La fille de Michael Widenius qui était surnommée « My ».4
Historique
La première version de MySQL est apparue le 23 mai 1995.
Version 4.0 : première version en octobre 2001, stable depuis mars 2003
Version 4.1 : première version en avril 2003, stable depuis octobre 2004
Version 5.0 : première version en décembre 2003, stable depuis octobre 2005
Version 5.1 : première version en novembre 2005, Release Candidatedistribuée depuis septembre 2007
Version 5.2 : distribuée en avant-première en février 2007, cette ligne a ensuite été renommée 6.05
Systèmes supportés
MySQL est supportés par plusieurs plates-formes
Linux
Mac OS X
Solaris
Windows 95, 98, NT, 2000 et XP.
6
Langages de programmation
Les bases de données sont accessibles en utilisant des langages de programmation – C, C++, C# – Delphi – Java – PHP – VB 6.0, VB.NET (Myodbc)7
Moteurs de base de données inclus
MyISAM : Utilise plusieurs fichiers qui grandissent au fur et à mesure que la base grossit. Il ne supporte pas les transactions, ni les clefs étrangères.
InnoDB : moteur créé et maintenu par InnoBase (Filiale d'Oracle). Il gère les transactions et les clefs étrangères. En contrepartie, les bases quil'utilisent occupent bien plus d'espace sur le disque.
CSV : « Comma Separated Value », moteur utilisant des fichiers textes pour le stockage.8
Les nouvelles versions de MySQL et leurs
fonctionnalités
Actuellement, la dernière version stable de MySQL est la 5.1
MySQL 5.1 a l'avantage de supporter les vues, procédures stockées,
des triggers ainsi qu'un dictionnaire de données
INFORMATION_SCHEMA.
Les développeurs de MySQL AB travaillent activement sur la
version 6.0, encore en version beta (ajout du nouveau moteur de
stockage Falcon).
9
Outils d'administration du serveur MySQL
MYSQL ADMINISTRATOR, logiciel d'administration de bases de données.
MySQL Query Browser; interface graphique pour maintenir la base et y faire des requêtes.
MySQL Workbench, logiciel de conception et de modélisation de base de données.
MySQL Migration Toolkit, logiciel permettant de migrer votre base de données vers votre base de données MySQL.10
Installation du serveur MySQL sous Windows
11
Installation du serveur MySQL sous Windows
Lancement de l'installation Choix du type d'installation
12
Configuration du serveur MySQL
Il existe 2 méthodes pour la configuration du serveur MySQL
Méthode 1:– Lancement de la configuration à la fin de l'installation
Méthode 2:– Lancement de la configuration à partir du menu démarrer – Cliquez sur le menu "démarrer"
– Pointez "tous les programmes" – Pointez MySQL server 5.0
13
Configuration du serveur MySQL
Choix du type de configuration – Configuration Standard – configuration détaillé14
Configuration du serveur MySQL
Choix du serveur – Machine conçue pour le développement – Serveur MySQL cohabité avec d'autre serveur – Serveur dédié pour15
Configuration du serveur MySQL
Il s'agit ici de paramétrer le support des transactions
– Le moteur InnoDB est active mais il n'est pas le moteur par défaut – Rendre le moteur InnoDB le moteur par défaut
16
Choix de l'emplacement
Dans le cas où vous avez l'un des deux premiers choix dans l'écranprécédent, vous devez configurer l'emplacement où sont stockés les fichiers de données (tablespaces) InnoDB.
17
Nombre de connexion
– 20 connexions – 500 connexions
– Personnalisé, il pourra supporté jusqu'à 1400 connexions, dans le cas d'un serveur dédié.
18
Configuration du serveur MySQL
Nombre de connexion– Autorisation des connexions TCP/IP extérieures – Choix du numéro de port
19
20
Configuration du serveur MySQL
Configuration MySQL en tant que service de Windows et son path pour l'invite de commande Ms-DOS21
Sécurité
Protégé le compte root par mot de passe Création d'un autre compte Anonime22
23
Installation des Outils D'administration MySQL
Lancement de l'installation24
Les outils installés
25
Éditeur de commandes MySQL sous Ms-Dos
1ére Méthode
– cliquez sur le menu démarrer
– 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 fenêtre de l'éditeur s'affiche
26
Éditeur de commandes MySQL sous Ms-Dos
2éme Méthode (si le path n’est pas inclus)
cliquez sur le menu démarrer
pointez accessoires
cliquez "Invite de commandes"
la fenétre de l'Invite de commandes s'affiche
tapez le chemin complet de
l'emplacement du serveur MySQL
27
Éditeur de commandes MySQL sous Ms-Dos
Paramétres 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
28
Les bases de données installées par défaut
Liste des bases installé par défaut
– lancez l'éditeur de MySQL sous DOS – entrez les paramètres de connexion – tapez la commande suivante:
29
Choisir une base
pour indiquer au serveur la base sur laquelle vous voulez travailler: Taper la commande use nom de la base
le système indiquera le changement de la base par le message suivant "Database changed"
30
Afficher les tables d'une base
pour afficher l'ensemble des tables d'une base de données sélectionnée, utilisez la commande suivante: show tables
31
Structure d'une table
pour afficher la structure d'une table, utilisez la commande suivante:
describe [nom_table] ou desc [nom_table]
32
Structure d'une table
Schema d'information
pour afficher la structure d'une table (ex: user de la base mysql), en utilisant le schéma d'information :
select COLUMN_NAME, DATA_TYPE, COLUMN_KEY, COLUMN_DEFAULT from columns where table_name='user';
33
Informations sur le serveur
STATUS
– Affiche les informations sur la version du serveur et ses caractéristiques:
34
Perte de connexion
en cas de perte de connexion vous pouvez se reconnecter une autre fois sans spécifier les paramètres de connexion, tapez la commande connect
35
Base de données
Pour créer une base de données utilisez la requête suivante :
create database [nom_base]
36
Base de données
Pour supprimer une base de données utilisez la requête suivante : drop database [nom_base]
37
Les objets d'une base de données
Tables :– Types des attributs
– lors de la création d'une table, les colonnes peuvent être de type différents :
- Nombre entier signé ou non - Nombre à virgule
- Chaîne de caractères - Date et heure
38
Les attributs
39
Les attributs
40
Les attributs
41
Créer une Table
Requête :CREATE TABLE [nom_table] ( champ1 type paramétre
champ2 type paramétre, champ3 type paramétre, ...
42
Créer 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)
43
Créer 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) )
44
Créer une Table
Table avec une clé étrangére : CREATE TABLE [nom_table]( champ1 type paramétre,
champ2 type paramétre, champ3 type paramétre, ...
clé_étrangère references [nom_table2](clé_primaire) );
45
Créer 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) );
46
Créer une Table
Ajout de la clé étrangere aprés la création 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),
47
Créer une Table
Créer un champ ENUM :Permet de définir la liste des valeurs qui seront acceptés 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),
48
Valeur par défaut :Pour donner une valeur par défaut à un attribut, on utilise DEFAULT. Lors de l’ajout d’un enregistrement cette valeur sera affectée à l’attribut si
aucune valeur n’est donnée.
Exemple :boursier char(3) DEFAULT ‘OUI’
Remarque :Les attributs de type chaîne de caractères de la famille TEXT et BLOB ne peuvent pas avoir de valeur par défaut.
49
Indexlorsqu'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 très longue. la création d'un index associé à une colonne ou plusieurs colonne pourra minimiser les temps de recherche.
50
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.
51
Syntaxe :La commande DROP TABLE prend en paramètre le nom de la table à supprimer. Toutes les données qu’elle contient sont supprimées et sa définition aussi.
Exemple :DROP TABLE Etudiants;
52
Modifier la structure d'une Table
La création d’une Table par la commande CREATE TABLE ne rend pas la définition des types des colonnes comme une valeur définitive mais onpeux la modifier Par la commande ALTER TABLE
ALTER TABLE :- ajouter/supprimer un attribut - créer/supprimer une clé primaire
- ajouter une contrainte d’unicité (interdire les doublons) - changer la valeur par défaut d’un attribut
- changer totalement la définition d’un attribut - changer le nom de la table
53
Modifier la structure d'une Table
Ajouter une colonneALTER TABLE nom_table ADD (definition) [ FIRST | AFTER attribut]
Exemple:alter table inscription
54
Modifier la structure d'une Table
Supprimer une colonneLa suppression d'une colonne impliquera la suppression de toutes les valeurs de cette dernière
Syntaxe :ALTER TABLE nom_table DROP nom_colonne
Exemple :55
Modifier la structure d'une Table
Supprimer une colonne (suite)
supprimer une colonne pourra générer des erreurs en relation avec PRIMARY KEY et UNIQUE.
56
Modifier la structure d'une Table
ajouter une clé primaireil n'est possible de créer une clé primaire que si la table ne contiennent aucune clé primaire.
Syntaxe :ALTER TABLE nom_table ADD PRIMARY KEY (attribut)
Exemple :57
Modifier la structure d'une Table
supprimer une clé primairela suppression d'une clé primaire ne présente aucun risque tant que elle est unique
Syntaxe :ALTER TABLE nom_table drop PRIMARY KEY (attribut)
Exemple :58
Modifier la structure d'une Table
UNIQUE
– La contrainte Unique pourra être ajoutés pour vérifier la présence de la nouvelle donnée dans la table.
– la contrainte s'applique à un ou à plusieurs champ en même temps, dans le cas ou on insert une donnée qui existe déjà dans la table, alors elle ne sera pas appliquée et une erreur sera générée.
Syntaxe :ALTER TABLE relation ADD UNIQUE [contrainte] (attributs)
remarque:59
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 même code ne sera pas attribué à 2 étudiants en même temps.
60
Modifier la structure d'une Table
Changer le nom d'une table
syntaxe :ALTER TABLE nom_ancien_table RENAME nom_nouveau_table
Exemple :61
Insertion des données
l'insertion des données se fais par plusieurs méthodes:
- Ligne par ligne en mentionnant les noms des colonnes - Ligne par ligne sans mentionner les noms des colonnes - Plusieurs ligne à la fois
62
Insertion des données
La syntaxe standard pour l'insertion des données :63
Insertion des données
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 separés par des tabulations
champ1 champ2 champ3 ... champ1 champ2 champ3 ... champ1 champ2 champ3 ... ...
64
Insertion des données
A partir d'un fichier plat:
Syntaxe :load data local infile [emplacement du fichier plat] into table [nom de la table].
Exempleload data local infile 'c:/liste.txt' into table Etudiants; ou
65
Insertion des données
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 données qui existent déja dans la table cible.
66
Insertion des données
A partir d'un fichier plat: (suite)
Méthode 2:
LOAD DATA LOCAL INFILE 'D:\\MySQL\\liste.txt' REPLACE INTO TABLE `Etudiants`
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
ESCAPED BY '\\'
67
Insertion des données
A partir d'un fichier plat: (suite)
structure du fichier plat68
Exporter des données 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
69
Exercice
1. Créer la base de données « gestion_stages »
2. Afficher tt les information sur l’étudiant qui porte le nom « amrani »
3. Afficher tt les information sur les étudiants dont les noms commence par « el »
4. Afficher le nombre des étudiants et des enseignants
5. Afficher les informations sur les étudiants par ordre alphabétique des noms et des prénoms
6. Afficher les étudiants nées en 1988
7. Afficher la date de naissance sous la forme(Tuesday October 1980)
8. Afficher les étudiants née 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 prénom de l’étudiant ainsi que la durée du
stage
11. Afficher pour chaque stage le nom le prénom de l’étudiant ainsi que le nom et le
prénom de l’enseignant qui encadre le stage
12. Afficher le nombre de stage encadré par chaque enseignant en indiquant son id, nom et prénom
70
Exporter des données vers des fichiers
Outfile:
la commande OUTFILE permet d'avoir le résultat d'une requête SQL sur un fichier externe et non pas sur l'écran.
Syntaxe :[requete SQL] into outfile [nom et emplacement du fichier];
Exemple:71
Les fonctions
Les opérateurs:
les parenthèses ( ),
les opérateurs arithmétiques (+, -, *, /, %),
les opérateurs binaires (<, >, |, &),
les opérateurs logiques qui retournent 0 (faux) ou 1 (vrai) (AND, OR, NOT,72
Fonctions Mathématiques
Les opérateurs de comparaison:Le mot clé LIKE permet de comparer deux chaînes.
Le caractère ‘%’ est spécial et signifie : 0 ou plusieurs caractères.
Le caractère ‘_’ est spécial et signifie : 1 seul caractère, n’importe lequel. L’exemple suivant permet de rechercher tous les étudiants dont le nom
commence par ‘el’, cela peut être ‘elamrani’, ‘elbachir’,etc… : SELECT *
FROM etudiants
73
Création des views
Une vue est considéré comme une table virtuelle Le contenu de cette vue est le résultat d'une requeteL'utilité des vues réside au niveau de l'écriture des requêtes complxes, au lieu de les ré -écrire chaque fois ou on a besoin d'avoir un certain
nombre de données, on stock la requête dans une vues et on fais son appelle par une requête.
syntaxe:CREATE [OR REPLACE] [ALGORITHM = {MERGE | TEMPTABLE}] VIEW view_name AS select_statement
74
Création 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 requête];
exemple :
alter view v_individu as select * from individu;
Supprimer une view drop view nom_vue
75
Création des Trigger
les triggers (ou déclencheurs) sont des procédures qui s'activent automatiquement lorsqu'un événement donné se produit sur une table. En d'autres termes, quand une requête INSERT, UPDATE ou DELETE survient, on se réserve la posibilité d'agir avant ou après son exécution.
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; //
76
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 après que l'action de l'insertion la modification ou la suppression ne soit effectuer
Le mot clé new est utilisé uniquement avec BEFORE77
Export/Import
Sauvegarde de la baseL'export sert à faire une copie de la base en structure et en donner pour la sauvegarder en cas de perte de la première base avec l'import on peut la récupérer grâce 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 données] < backup-production.sql78