Voila je prépare une nouvelle formation consacrée à MySQL pour les débutants qui souhaiteraient adoptere le couple MySQL/PHP. Le principe n'est pas ici de voir toutes les fonctionnalités de MySQL mais seulement ce qui est "utile" pour créer son site dynamique avec PHP.

Voila le premier jet des chapitres. Si vous voyez des modifications à apporter n'hésitez pas !

Introduction

Avant de commencer
------ Qu’est ce que MySQL ?
------ Installation de MySQL (WAMP/XAMP)
------ PHPMyAdmin, votre nouvel amis

Pour débuter
------ Création d’une table (innoDB vs MyISAM, Différents types de champs)
------ INSERT
------ UPDATE
------ DELETE
------ SELECT

Fonctions
------ Fonctions Date & Time
------ Fonctions sur les chaines de caractères

Requêtes Avancées
------ Left JOIN
------ Transactions
------ Views
------ Vers l’infini et au délà
------ Recherche Full Text

25 réponses


Déjà, je retirerais le "s" de "PHPMyAdmin, votre nouvel amis" ^^

Tu pourrais aussi parler des fonctions et procédures ainsi que des triggers ;-)

Anthony

Bonne idée :) Tu pourrais parler rapidement de la sécurité.. éviter les injections par exemple..

Même si ça parait évident; peut-être prévoir l'action DELETE avec les précautions à prendre autour de cette action.
Je ne sais pas si c'est prévus, mais voir la spécificité de l'INSERT comprennant ON DUPLICATE KEY UPDATE qui est très pratique.
Expliquer également les 'index', 'primary key', etc... qui est une question que j'entends souvent.

hachbé

Je trouve ça vraiment intéressent de traiter des tutoriels qui prennent les bases d'un langage.
Tu pourrais faire un exemple des utilités des fonctions ou des requêtes avancés, pour que l'on comprenne vraiment l’intérêt de ce langage la :)

Les sous requêtes Left Join, Join, right join. (différences ?) Pour les dates ne pas utiliser timestamp (bug 2036) http://en.wikipedia.org/wiki/Year\_2038\_problem les alias DELETE ** c'est tout ce qui manque je pense @sylvain +1

un petit rappel sur utf8 ( bin, general-ci )

Tu as un très bon plan sur le site du zéro ;) .

J'aborderais tout d'abord les select plutôt que la création de table dans un premier temps, évidemment je demanderais aux utilisateurs de charger une base de données depuis un fichier SQL mais le select s'est une des plus requête pour un développeur PHP, vu qu'il s'occupe principalement de la récupération de données et non de création de table.

Alors la sécurité sera plus abordé par PHP pas par MySQL
Pour les triggers je vais voir je me disais que ça pareil on a plus tendance à le gérer en PHP (MySQL on n'utilise que pour le stockage, on évite de surcharger)
Pour le DELETE bien vu je l'ai complètement oublié :D

Sur le site du zéro c'est un tutoriel trop complet selon moi. Quand on veut débuter avec MySQL je ne pense pas que l'on soirt intéréssé par des trucs aussi avancé que les Verrous/Triggers/Contrainte de Clef.

L'encodage des tables, _bin (binaire), _ci (case sensitive).
ALTER, LIKE, BETWEEN, IN, DISTINCT, AS, etc (les plus utilisé et important en gros)

L'index unsigned, binary, etc.

Explication de la propriété NULL pour une colonne.

Ceci n'est qu'un exemple parmi tant d'autres, il serait bien d'approfondir tout ça ;).

Moi personnellement là où j'ai le plus de mal c'est les jointures de tables et leurs utilisation en concret, j'ai du mal avec la construction de mes requête en php quand il y jointures.
Sinon le Dump de la base aussi je trouve sa intéressant, utile pour installer un base rapidement quand on a le fichier .sql

Les verrous n'ont rien d'avancé, les triggers en revanche sont obsolètes pour les utilisateurs ne possédant qu'une seule et unique base, pas de système maître esclave, et comme 99.9% des apprentis, ou développeur ici n'utilise pas ce système je ne pense que cela apportera grand chose, d'autant que c'est gérer en PHP.

En revanche je pense qu'un petit chapitre sur les fonctions embarqué de SQL sera pas mal, du moins les plus utilisées (SUM, NOW, MIN, MAX, etc ...) en expliquant rapidement le fonctionnement.

Les moteurs de stockages ne pas faire un VS, il y a MEMORY qui est aussi beaucoup utilisé. Montrés dans quel cas les utilisés etc ...

Et enfin BETWEEN, aussi car c'est souvent pratique.

Sinon le plan est clair et y a l'essentielle !

Ça pourrait être intéressant également d'expliquer l'utilisation d'un Soft tel que DBeaver( dbeaver.jkiss.org) à la place de PHPMyAdmin.

Je rajouterais aussi dans le chapitre fonction, la création de ses propres fonctions.

Dans tous les cas, c'est une bonne initiative !

Peut-être faire le tutoriel sous Oracle ? :)

Ce serait bien de nous apprendre comment faire une recherche plus approfondie dans les BD, faire un moteur de recherche pour son site/blog/e-commerce c'est pas si facile que ça...

Je verrais bien "GROUP BY" qui peut être utile et dont sa compréhension peut être plus aisé au format vidéo que textuel ainsi que son filtre "HAVING".

Création des tables de la BDD sous MySQL-Workbench.

Et les TP ? La Théorie, c'est bien, mais la pratique, c'est mieux !

Synchroniser 2 base de donner distante avec le mode réplication
cordialement

+1 pour epsilowne.
La réplication est quelque chose que j'aimerai apprendre à faire :)

Un chapitre sur les procédures stockées serai un plus ;)

Bonjour Graph,

au niveau de la sécurité, en dehors de l'injection, je commencerai par la création d'un utilisateur en SQL (ou via pma, c'est plus facile).

Utilisateur qui aura des droits illimités sur sa base OU des droits limités sur un ensemble de base.

Et sinon, avant la création d'une table, il y a la création d'une base (avec notre meilleure ennemi l'encodage).

Bonne fin de journée

Les procédures stockées

Les suppressions et modifications en cascade pourrait être utile.