• Aucun résultat trouvé

[PDF] Cours MySQL avec exemples et explications approfondies | Cours mysql

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Cours MySQL avec exemples et explications approfondies | Cours mysql"

Copied!
78
0
0

Texte intégral

(1)

Serveur de bases de données

MYSQL

(2)

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)

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)

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 Candidate

distribué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.0

(5)

5

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)

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)

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 qui

l'utilisent occupent bien plus d'espace sur le disque.

CSV : « Comma Separated Value », moteur utilisant des fichiers textes pour le stockage.

(8)

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)

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)

10

Installation du serveur MySQL sous Windows

(11)

11

Installation du serveur MySQL sous Windows

Lancement de l'installation Choix du type d'installation

(12)

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)

13

Configuration du serveur MySQL

Choix du type de configuration – Configuration Standard – configuration détaillé

(14)

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é pour

(15)

15

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)

16

Choix de l'emplacement

Dans le cas où vous avez l'un des deux premiers choix dans l'écran

précédent, vous devez configurer l'emplacement où sont stockés les fichiers de données (tablespaces) InnoDB.

(17)

17

Nombre de connexion

– 20 connexions – 500 connexions

– Personnalisé, il pourra supporté jusqu'à 1400 connexions, dans le cas d'un serveur dédié.

(18)

18

Configuration du serveur MySQL

Nombre de connexion

– Autorisation des connexions TCP/IP extérieures – Choix du numéro de port

(19)

19

(20)

20

Configuration du serveur MySQL

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

(21)

21

Sécurité

Protégé le compte root par mot de passe Création d'un autre compte Anonime

(22)

22

(23)

23

Installation des Outils D'administration MySQL

Lancement de l'installation

(24)

24

Les outils installés

(25)

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)

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)

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)

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)

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)

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)

31

Structure d'une table

pour afficher la structure d'une table, utilisez la commande suivante:

describe [nom_table] ou desc [nom_table]

(32)

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)

33

Informations sur le serveur

 STATUS

– Affiche les informations sur la version du serveur et ses caractéristiques:

(34)

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)

35

Base de données

 Pour créer une base de données utilisez la requête suivante :

create database [nom_base]

(36)

36

Base de données

 Pour supprimer une base de données utilisez la requête suivante : drop database [nom_base]

(37)

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)

38

Les attributs

(39)

39

Les attributs

(40)

40

Les attributs

(41)

41

Créer une Table

Requête :

CREATE TABLE [nom_table] ( champ1 type paramétre

champ2 type paramétre, champ3 type paramétre, ...

(42)

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)

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)

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)

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)

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)

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)

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)

49

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 très longue. la création d'un index associé à une colonne ou plusieurs colonne pourra minimiser les temps de recherche.

(50)

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)

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)

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 on

peux 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)

53

Modifier la structure d'une Table

Ajouter une colonne

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

Exemple:

alter table inscription

(54)

54

Modifier la structure d'une Table

Supprimer une colonne

La 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)

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)

56

Modifier la structure d'une Table

ajouter une clé primaire

il 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)

57

Modifier la structure d'une Table

supprimer une clé primaire

la 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)

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)

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)

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)

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)

62

Insertion des données

La syntaxe standard pour l'insertion des données :

(63)

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)

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].

Exemple

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

(65)

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)

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)

67

Insertion des données

A partir d'un fichier plat: (suite)

structure du fichier plat

(68)

68

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)

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)

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)

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)

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)

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 requete

L'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)

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)

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)

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 BEFORE

(77)

77

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 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.sql

(78)

78

Fishier SQL

Les fichiers SQL sert en général pour exécuter des instructions de grandes tailles, par exemple on créer un script complet pour la création d'une base avec ces tables views et triggers.

Syntaxe :

Références

Documents relatifs

D’un point de vue syntaxique, « hélas » ne se positionne pas comme une interjection mais comme un adverbe ; d’un point de vue sémantique, il partage toutes ses propriétés

Le cas du français en offre un exemple remarquable dont nous allons à grands traits retracer l’histoire, car celle-ci – en cumulant les principaux paramètres

De même, si un noyau vide est rempli par [ɛ], comme dans Tomek (règle d'épenthèse), c'est que le système interdit *[tomk] et, plus généralement s'agissant du slave, toute

De prendre conscience, verbaliser et exprimer, en prenant compte des perspectives personnelles, feraient en sorte de sensibiliser les soignants aux aspects spirituels de leur

Dans le contexte du TDA/H, cela est important à cause de ce qui a été dit plus haut, mais aussi parce qu’au moment du diagnostic la plupart des personnes sont mineures et, bien

Quel que soit le vocable utilisé, l’ensemble de ces déclarations se rejoignent sur le fait qu’elles s’adressaient spécifiquement aux criminels jugés les plus

la langue source destinés à constituer le corpus de référence du travail en cours, pour lequel il faudra faire des transcriptions, des analyses, voire des