Introduction à MySQL
Retour vers la page d'accueil

Pourquoi ?

Hébergement

Création

Vérifier

F. A. Q.

Manuel

Conditions

Commander

Réserver

Contact
 

Manuel

Votre compte

Les scripts CGI

PHP

MySQL

MySQL et PHP

SSI

Les domaines

Petit glossaire


 
 
 

MySQL est un serveur de bases de données de type SQL (Structured Query Language ou langage de requête structurée) puissant, rapide, multi-utilisateurs et en libre utilisation (sous certaines conditions).
 

1 : Connexion au serveur MySQL

Sous telnet, pour se connecter en mode interactif au serveur MySQL, tapez :

mysql -u votreidentifiant -p -h hôte votrebase

-u votreidentifiant : désigne l'utilisateur, remplacez "votreidentifiant" par votre identifiant.
-p : indique que vous aurez à entrer votre mot de passe ensuite.
-h hôte : remplacez "hôte" par le nom du serveur où est hébergé votre site.
votrebase : à remplacer par le nom de votre base de données.
 

2 : Création d'une table

Tapez par exemple :
CREATE TABLE  nomtable  ( 
    numero  SMALLINT,
    nom  CHAR(20),
    prenom CHAR(20),
    PRIMARY KEY (numero)
); 
Remplacez "nomtable" par le nom de la table, suivi entre parenthèses de la définition des champs. Chaque nom de champ est défini par son type. A la fin de la dernière instruction, ne mettez pas de virgule. N'oubliez pas le ; après la dernière parenthèse qui indique à MySQL que vous lui envoyez pour exécution toutes les instructions précédent le ; . Voici les types de champ les plus utiles :
  • SMALLINT : nombre entier compris entre -32768 et 32767, si l'option UNSIGNED est utilisée, ce nombre sera compris entre 0 et 65535.
  • MEDIUMINT : nombre entier compris entre -8388608 et 8388607, si l'option UNSIGNED est utilisée, ce nombre sera compris entre 0 et 16777215.
  • INT : nombre entier compris entre -2147483648 et 2147483647, si l'option UNSIGNED est utilisée, ce nombre sera compris entre 0 et 4294967295.
  • DECIMAL (entier,décimal) : nom réel, définissez la longueur de chacune des deux parties.
  • DATE : date au format "YYYY-MM-DD" ou "YY-MM-DD" ou "YYMMDD" comprise entre 0000-00-00 et 9999-12-31.
  • TIME : heure au format "HH:MM:SS" ou "HHMMSS" ou "HHMM' ou  "HH".
  • DATETIME : date et heure au format "YYYY-MM-DD HH:MM:SS".
  • CHAR(M) : texte avec une longeur fixée par M qui peut être compris entre 1 et 255, si l'option BINARY est utilisée, une recherche sur le contenu sera effectuée avec une casse sensible.
  • VARCHAR(M) : pareil que CHAR(M) mais la longueur est incluse dans le champ et des espaces vides ne seront pas ajoutés à la fin du texte.
  • TINYTEXT ou TINYBLOB : objet d'une longueur maximale de 255 caractères, TINYTEXT aura un contenu de type ASCII (casse insensible) et TINYBLOB aura un contenu de type binaire (casse sensible).
  • TEXT ou BLOB : objet d'une longueur maximale de 65535 caractères, TEXT aura un contenu de type ASCII (casse insensible) et BLOB aura un contenu de type binaire (casse sensible).
  • MEDIUMTEXT ou MEDIUMBLOB : objet d'une longueur maximale de 16777216 caractères, MEDIUMTEXT aura un contenu de type ASCII (casse insensible) et MEDIUMBLOB aura un contenu de type binaire (casse sensible).
  • LONGTEXT ou LONGBLOB : objet d'une longueur maximale de 4294967295 caractères, LONGTEXT aura un contenu de type ASCII (casse insensible) et LONGBLOB aura un contenu de type binaire (casse sensible).
  • ENUM('valeur','valeur2',...) : objet texte qui ne peut avoir qu'une des valeurs 'valeur','valeur2',...
  • SET('valeur','valeur2',...) : objet texte qui peut avoir une ou plusieurs des valeurs 'valeur','valeur2',...
Ajouter de préférence une clé primaire sur un champ avec "PRIMARY KEY" pour un meilleur fonctionnement de la table.

3 : Ajouter des enregistrements

Tapez :
INSERT INTO nomtable VALUES(20,'Nom','Prénom');

Remplacez "nomtable" par le nom de votre table et les données entre parenthèses par celles que vous désirez entrer dans la table. Si vous désirez intégrer une apostrophe dans un texte, mettez obligatoirement  une barre oblique inversée juste avant.
Ex. : l\'amour
 

4 : Modifier un enregistrement

Tapez : 
UPDATE nomtable SET nomchamp='nouvellevaleur' WHERE conditions;

Remplacez "nouvellevaleur" par la valeur qui modifiera l'ancienne valeur de "nomchamp" pour les enregistrements satisfaisant "conditions".

Ex. : UPDATE ville SET nom='La Ciotat', region='PACA' WHERE code_postal='13600';

Remplacez "conditions" par vos instructions de conditions séparées par AND ou OR. Les opérandes de condition sont : =, <>, <=, >=, ISNULL(champ), BETWEEN.

Ex.1 : table2.champ1 <= table1.champ1  AND  table2.champ1 >= table3.champ2
Ex.2 : table2.champ1 BETWEEN table1.champ1  AND  table3.champ2

A noter que si "WHERE conditions" n'est pas utilisée, la modification s'effectuera sur tous les enregistrements. Vous pouvez aussi utiliser les deux caractères de carte blanche % et _ avec LIKE.
% remplace un ou plusieurs caractères et _ remplace un seul caractère.

Ex.3 : SELECT * FROM ville WHERE nom LIKE 'Par%' (pour Paris)
Ex.4 : SELECT * FROM ville WHERE nom LIKE 'Par_s' (pour Paris)
 

5 : Effacer un enregistrement

Tapez :
DELETE FROM nomtable WHERE conditions;

Ex. : DELETE FROM ville WHERE code_postal='13600' AND nom='LA Ciotat';

A noter que si "WHERE conditions" n'est pas utilisée, la table sera entièrement vidée.
 

6 : Sélectionner des enregistrements

Cette opération s'effectue avec la commande SELECT. Sa syntaxe est en général :

SELECT quelchose FROM nomtable WHERE conditions ORDER BY nomchamp;

Cette série de commandes affiche des enregistrements d'une table selon certaines conditions et les classe en fonction d'un champ.
Remplacez "quelquechose" par * pour sélectionner tous les champs ou par un ou plusieurs champs séparés par des virgules. Vous pouvez sélectionner des champs de tables différents séparés par des virgules ainsi : table1.champ1, table2.champ1, table3.champ2...
Remplacez nomtable par les noms d'une ou plusieurs tables séparés par des virgules.
WHERE et ORDER BY sont optionnelles.
 

7 : Importer une table

Vous avez deux possibilités.

La première, en mode interactif,
Tapez :

LOAD DATA INFILE '/chemin/votretable.txt' INTO TABLE nomtable options;

Remplacez "/chemin/votretable.txt" par la table à importer avec son chemin sur le serveur, "nomtable" par la table MySQL de destination. En options, vous pouvez indiquer entre autres :

  • FIELDS TERMINATED BY ';' : définit le séparateur, ici ";", par défaut, "\t" (tabulation).
  • LINES TERMINATED BY '\n' : définit le caractère de fin de ligne, par défaut, "\n".
La deuxième,
Vous devez d'abord quitter le mode interactif de MySQL en tapant "quit". Ensuite, tapez :

mysqlimport -u votreidentifiant -p -h hôte -v votrebase votretable.txt

La table "votretable.txt" sera importée dans la base "votrebase" mais devra se trouver dans le répertoire courant, sinon définissez son chemin. Vous devez au préalable avoir crée la structure de la table d'accueil avec "CREATE TABLE votretable (...);".
L'argument optionnel -v  vous permet de voir des informations intéressantes durant le processus d'importation. Vous pouvez rajouter entre autres :

--fields-terminated-by=;

Pour indiquer le caractère de séparation des champs, remplacez ; par le caractère voulu.
Tapez mysqlimport -h pour connaître les autres options.
 

8 : Exporter une table

Vous avez deux possibilités.

La première, en mode interactif,
Tapez :

SELECT * FROM nomtable WHERE conditions INTO OUTFILE '/chemin/votretable.txt' options;

Remplacez "nomtable" par la table MySQL à exporter, '/chemin/votretable.txt' par le nom du fichier de destination. Vous pouvez remplacer le  *  par une sélection plus fine de champs. WHERE est optionnelle. En options, vous pouvez indiquer entre autres :

  • FIELDS TERMINATED BY ';' : définit le séparateur, ici ";", par défaut, "\t" (tabulation).
  • LINES TERMINATED BY '\n' : définit le caractère de fin de ligne, par défaut, "\n".
La deuxième,
Vous devez d'abord quitter le mode interactif de MySQL en tapant "quit". Ensuite, tapez :

mysqldump -u votreidentifiant -p -h hôte -v votrebase nomtable  -T /repertoire

La table "nomtable" de la base "votrebase" sera exportée vers le fichier "nomtable.txt" dans le répertoire voulu grâce à l'argument -T.

MySQL devra pouvoir écrire dans le répertoire désigné. Pour cela, attribuez temporairement le chmod 777 à ce répertoire.
 

9 : Modifier la structure d'une table

Tapez :
ALTER TABLE nomtable commandes;

Remplacez "commandes" suivant les exemples ci-dessous :

  • ALTER TABLE table1 RENAME table2; pour changer le nom de table1 en table2
  • ALTER TABLE table2 CHANGE champ1 champ2 TINYINT; change le nom de champ1 en champ2 avec le type TINYINT
  • ALTER TABLE table2 ADD heure TIMESTAMP; ajoute le champ heure de type TIMESTAMP
  • ALTER TABLE table2 ADD INDEX (d); ajoute un champ index nommé d
  • ALTER TABLE table2 DROP COLUMN c; efface le champ c

10 : Effacer une table

Tapez :
DROP TABLE nomtable;

Vous pouvez effacer plusieurs tables en même temps en les séparant d'une virgule.
 

11 : Obtenir des informations

Tapez en mode interactif :
  • SHOW TABLES; pour afficher les noms des tables de votre base de données
  • SHOW COLUMNS FROM nomtable; pour avoir des informations sur les champs de "nomtable"
  • SHOW VARIABLES; pour afficher les variables d'environnement de MySQL
  • SHOW STATUS; pour afficher l'état de MySQL

Cette introduction à MySQL ne montre qu'une infime partie de ses énormes possibilités. Téléchargez une version de MySQL depuis un site miroir.