Mysql c 'est quoi ? A quoi ça peut me servir ? (en cours)

MySQL est un SGBD (Gestionnaire de base de données en français). Il permet de stoker des données en masse et pouvoir les utiliser à volonté en les triant comme on le souhaite.

Le

Mysql Kesako ?

Premières choses

  1. le site officiel, il s'agit de la bible concernant MySQL.
  2. Des cours sur le langage SQL http://sqlpro.developpez.com/ (Très complet)/

MySQL est donc un logiciel, dit, serveur qui tourne sur machine dédiée ou nom à cette tache. Son but est permettre la sauvegarde et la restitution de manière ""simple"" des données.

Ok mais les données c'est quoi ? il s'agit principalement de texte, les pages du site par exemple, mais l'on peut y stocker des images ou des programmes (sous forme de texte ;) ).

Comment ça marche ?

Le server fait la transition entre des fichiers sur le disque dur (l'emplacement "physique" des données) et ce que l'on appel des tables. Un serveur gère des bases de données qui elle même contiennent des tables. Une table est un essemble de champ permettant de décrire quelque chose. Par exemple pour un carnet d'adresse on aura comme champ :

  1. nom
  2. prénom
  3. adresse
  4. numéro de téléphone

Le langage SQL (de MySQL) permet de décrire ces tables et d'inter agir avec elle (insertion de donnée et demande de donnée).

Afin de pouvoir au mieux décrire les données que l'on va stocker il existe des __type__ de donnée (entier, texte, date etc). Les différents type peuvent permettre, par exemple, des calculs sur des dates ou des nombres. Il existe aussi des fonctions propres au langage (comme pour php) tel date_format (très utile pour l'affichage des dates).

La première difficultée est de décrire correctement ces tables en fonction de ce que l'on souhaite avoir. Il existe pour cela des méthodes (par exemple UML, les formes normales etc) et des modèles permettant l'optimisation des tables. Ceci n'est pas abordé ici car non essentiel pour débuter.

L'interface de base de Mysql est en console, elle permet de faire toute la configuration du serveur (ou presque) et de consulter, insérer ou modifier des données dans les tables. Pour info mysql n'est pas sensible à la casse (ie : différence minuscule / majuscule) pour ce qui est des instructions vous pouvez donc faire a votre guise, mais sachez que les noms des champs y sont sensible.

Comment utiliser la console MySQL

Je part du principe que vous avez une installation par défaut sans mot de passe.

  • Sous unix ouvrir un shell
  • Sous Windows : cliquer sur démarrer puis executer et taper cmd. ensuite aller dans le répertoire d'installation de mysql (par exemple cd C:Program filesMySQLMySQL Server 5.1bin)

pour tous le monde taper : mysql -u root
si votre utilisateur doit utiliser un mot de passe utiliser l'option -p (par exemple mysql -u toto -p, vous taperez le mot de passe à l'invite). si tout va bien vous devait avoir comme invite mysql>

Comment créer un base de donnée : l'instruction CREATE DATABASE

Pour travailler il faut une base de donnée. Pour la creer nous utiliserons la commande suivante CREATE DATABASE mabase; Pour connaitre la liste des tables qui existent sur le serveur et que vous pouvez accéder (en fonction de vos droits), on va utiliser la commande suivante : show databases; Pour utiliser la base que l'on vient de créer : use mabase;

noter que toutes les instructions doivent se terminer par un ;

Comment créer une table : l'instruction CREATE TABLE

Pour déclarer une table sur le serveur il faut utiliser l'instruction CREATE TABLE.

par exemple notre table précédente pourrait être créée ainsi :

create table carnetadresse (
	id int unsigned not null auto_increment,
	nom text,
	prenom text,
	adresse text,
	tel text,
	primary key(id)
)type=MyISAM

Avec ceci nous obtenons une table vierge prête à recevoir tous nos contacts.

Nous voyons l'arrivée de Type=MyIsam, ceci permet à mysql de connaitre le "moteur" à employer (il s'agit de la façon de faire du serveur). Le type MyISAM est le type par défaut pour mysql. Sachez qu'il existe d'autre type mais celui-ci convient très bien tant que l'on ne souhaite pas utiliser de clé étrangère.

Astuces : La commande show permet (entre autres) d'avoir une liste des bases et tables que l'utilisateur peu consulter : - show databases; nous liste les tables; - show tables; va lister les tables de la base active et seulement celle - ci.


l'instruction SELECT

L'instruction select permet de demander à MySQL N tuples d'une ou plusieurs tables.

par exemple avec notre table carnetadresses :

pour avoir tous ls nom et prénom de la table : SELECT nom, prenom FROM carnetadresses;

Bon c'est bien ton truc mais moi je veut récupérer qu'un champ précis je fait comment ?

C'est la qu'intervient la clause where qui va trier pour nous les résultats.

par exemple : select nom, prenom from carnetadressse where tel='0123456789';

Pour plus d'info sur les possibilités du select consulter la doc :) le cours de SQLPRO


l'instruction INSERT

L'instruction insert permet d'insérer des données dans une table. La syntaxe de base est insert into nomDeTable (liste des champs que l'on insère) values ( valeurs des champs);
Par exemple insert into carnetadresse (nom,prenom,tel) values ('moogli','jungle','0123456789');
/! les chaines de caractères doivent être entourées par des simples quotes ('). ceci implique un problème lorsque l'on insert des données avec ce caractères dedans. Pour l'éviter on va ajouter un devant.
Par exemple : insert into carnetadresse (nom,prenom,tel) values ('moog'li','jungle','0123456789');
va inséré moog'li dans la base.