INSERT INTO Animal
SET nom='Bobo', espece='chien', sexe='M', date_naissance='2010-07-21
15:41:00';
Cette syntaxe présente deux avantages.
Le fait d'avoir l'un à côté de l'autre la colonne et la valeur qu'on lui attribue (nom = 'Bobo') rend la syntaxe plus lisible
et plus facile à manipuler. En effet, ici il n'y a que six colonnes, mais imaginez une table avec 20, voire 100 colonnes.
Difficile d'être sûrs que l'ordre dans lequel on a déclaré les colonnes est bien le même que l'ordre des valeurs qu'on leur
donne…
Elle est très semblable à la syntaxe de UPDATE, que nous verrons plus tard et qui permet de modifier des données
existantes. C'est donc moins de choses à retenir (mais bon, une requête de plus ou de moins, ce n'est pas non plus
énorme…)
Cependant, cette syntaxe alternative présente également des défauts, qui pour moi sont plus importants que les
avantages apportés. C'est pourquoi je vous déconseille de l'utiliser. Je vous la montre surtout pour que vous ne soyez
pas surpris si vous la rencontrez quelque part.
En effet, cette syntaxe présente deux défauts majeurs.
Elle est propre à MySQL. Ce n'est pas du SQL pur. De ce fait, si vous décidez un jour de migrer votre base vers un autre
SGBDR, vous devrez réécrire toutes les requêtes INSERT utilisant cette syntaxe.
Elle ne permet pas l'insertion multiple.
Utilisation de fichiers externes
Maintenant que vous savez insérer des données, je vous propose de remplir un peu cette table, histoire qu'on puisse s'amuser
par la suite.
Rassurez-vous, je ne vais pas vous demander d'inventer cinquante bestioles et d'écrire une à une les requêtes permettant de les
insérer. Je vous ai prémâché le boulot. De plus, ça nous permettra d'avoir, vous et moi, la même chose dans notre base. Ce sera
ainsi plus facile de vérifier que vos requêtes font bien ce qu'elles doivent faire.
Et pour éviter d'écrire vous-mêmes toutes les requêtes d'insertion, nous allons donc voir comment on peut utiliser un fichier texte
pour interagir avec notre base de données.
Exécuter des commandes SQL à partir d'un fichier
Écrire toutes les commandes à la main dans la console, ça peut vite devenir pénible. Quand c'est une petite requête, pas de
problème. Mais quand vous avez une longue requête, ou beaucoup de requêtes à faire, ça peut être assez long.
Une solution sympathique est d'écrire les requêtes dans un fichier texte, puis de dire à MySQL d'exécuter les requêtes contenues
dans ce fichier. Et pour lui dire ça, c'est facile :
Code : SQL
SOURCE monFichier.sql;
Ou
Code : SQL
\. monFichier.sql;
Ces deux commandes sont équivalentes et vont exécuter le fichier monFichier.sql. Il n'est pas indispensable de lui donner
l'extension .sql, mais je préfère le faire pour repérer mes fichiers SQL directement. De plus, si vous utilisez un éditeur de texte
un peu plus évolué que le bloc-note (ou textEdit sur Mac), cela colorera votre code SQL, ce qui vous facilitera aussi les choses.
Attention : si vous ne lui indiquez pas le chemin, MySQL va aller chercher votre fichier dans le dossier où vous étiez lors de
votre connexion.
Exemple : on donne le chemin complet vers le fichier
Partie 1 : MySQL et les bases du langage SQL
48/414
www.openclassrooms.com
SET nom='Bobo', espece='chien', sexe='M', date_naissance='2010-07-21
15:41:00';
Cette syntaxe présente deux avantages.
Le fait d'avoir l'un à côté de l'autre la colonne et la valeur qu'on lui attribue (nom = 'Bobo') rend la syntaxe plus lisible
et plus facile à manipuler. En effet, ici il n'y a que six colonnes, mais imaginez une table avec 20, voire 100 colonnes.
Difficile d'être sûrs que l'ordre dans lequel on a déclaré les colonnes est bien le même que l'ordre des valeurs qu'on leur
donne…
Elle est très semblable à la syntaxe de UPDATE, que nous verrons plus tard et qui permet de modifier des données
existantes. C'est donc moins de choses à retenir (mais bon, une requête de plus ou de moins, ce n'est pas non plus
énorme…)
Cependant, cette syntaxe alternative présente également des défauts, qui pour moi sont plus importants que les
avantages apportés. C'est pourquoi je vous déconseille de l'utiliser. Je vous la montre surtout pour que vous ne soyez
pas surpris si vous la rencontrez quelque part.
En effet, cette syntaxe présente deux défauts majeurs.
Elle est propre à MySQL. Ce n'est pas du SQL pur. De ce fait, si vous décidez un jour de migrer votre base vers un autre
SGBDR, vous devrez réécrire toutes les requêtes INSERT utilisant cette syntaxe.
Elle ne permet pas l'insertion multiple.
Utilisation de fichiers externes
Maintenant que vous savez insérer des données, je vous propose de remplir un peu cette table, histoire qu'on puisse s'amuser
par la suite.
Rassurez-vous, je ne vais pas vous demander d'inventer cinquante bestioles et d'écrire une à une les requêtes permettant de les
insérer. Je vous ai prémâché le boulot. De plus, ça nous permettra d'avoir, vous et moi, la même chose dans notre base. Ce sera
ainsi plus facile de vérifier que vos requêtes font bien ce qu'elles doivent faire.
Et pour éviter d'écrire vous-mêmes toutes les requêtes d'insertion, nous allons donc voir comment on peut utiliser un fichier texte
pour interagir avec notre base de données.
Exécuter des commandes SQL à partir d'un fichier
Écrire toutes les commandes à la main dans la console, ça peut vite devenir pénible. Quand c'est une petite requête, pas de
problème. Mais quand vous avez une longue requête, ou beaucoup de requêtes à faire, ça peut être assez long.
Une solution sympathique est d'écrire les requêtes dans un fichier texte, puis de dire à MySQL d'exécuter les requêtes contenues
dans ce fichier. Et pour lui dire ça, c'est facile :
Code : SQL
SOURCE monFichier.sql;
Ou
Code : SQL
\. monFichier.sql;
Ces deux commandes sont équivalentes et vont exécuter le fichier monFichier.sql. Il n'est pas indispensable de lui donner
l'extension .sql, mais je préfère le faire pour repérer mes fichiers SQL directement. De plus, si vous utilisez un éditeur de texte
un peu plus évolué que le bloc-note (ou textEdit sur Mac), cela colorera votre code SQL, ce qui vous facilitera aussi les choses.
Attention : si vous ne lui indiquez pas le chemin, MySQL va aller chercher votre fichier dans le dossier où vous étiez lors de
votre connexion.
Exemple : on donne le chemin complet vers le fichier
Partie 1 : MySQL et les bases du langage SQL
48/414
www.openclassrooms.com
