Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Cours] Administrez vos BDD avec MySQL

30 décembre 2017 à 12:26:01

Bonjour,

Je voudrais signaler une petite erreur dans le cours sur le chapitre de la configuration de MySQL sous windows après l'installation.

Vous indiquez qu'il faut utiliser les "" pour les chemins avec des espaces dans le nom, exemples:

set PATH=%PATH%;C:\"Program Files"\MySQL\"MySQL Server 5.6"\bin 

Je suis sous Windows 10, après plusieurs essais sur différent pc, sa ne fonctionne que si on n'utilise pas les "". Je n'arrivais pas à me connecter 

  • Partager sur Facebook
  • Partager sur Twitter
8 janvier 2018 à 15:25:16

Bonjour,

Je reviens pour vous dire que j'ai trouvé d'où provenait mon problème.
Il m'a suffit de modifier un mot de la VIEW pour que les requêtes d'update puissent s'effectuer comme elles auraient du :

CREATE OR REPLACE 
ALGORITHM = MERGE
VIEW V_Animal_details
AS SELECT Animal.id, Animal.sexe, Animal.date_naissance, Animal.nom, Animal.commentaires, 
		Animal.espece_id, Animal.race_id, Animal.mere_id, Animal.pere_id, Animal.disponible, 
		Espece.nom_courant AS espece_nom, Race.nom AS race_nom
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
INNER JOIN Race ON Animal.race_id = Race.id;

J'ai remplacé le LEFT JOIN par un INNER JOIN malheureusement maintenant la VIEW ne récupère plus toutes les données qu'elle aurai du récupérer.

  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2018 à 11:50:42

Bonjour,

Après avoir parcouru le forum dédié au cours, je n'ai pas trouvé de réponse à mes questions.

Je suis coincé à l'activité_partie 2 : créer d'un site de blog basique.

Dans un premier temps j'ai d'abord voulu donner un nom "x" à la base de donnée pour préparer l'exercice en passant d'abord par l'invite de commande avec l'utilisateur root, j'ai donné les droit d'utilisation de cette bdd via mon nom d'utilisateur que j'avais créé afin de bosser depuis "mySql command line".

Dans un second temps, une fois connecté, j'ai importé le fichier ptp1_depart qui importe si je ne me trompe pas, une base de données ainsi que les tables "categorie" et "categorie_article".

Du coup je nage un peu car lorsque j'utilise la base de données importée et que je lance la requête suivante :

SELECT * FROM Categorie;

il me dit que c'est vide.

Est-ce une mauvaise manip de ma part, une incompréhension ou la base de données est-elle vide ?

Enfin, dans l'énoncé de l'exercice, il est précisé que "les requêtes de création de la base de données" nous sont fournies, cependant, je ne vois pas comment y accéder ou je ne les trouve tout simplement pas.

Merci de m'éclairer car je n'arrive vraiment plus à avancer :(

-
Edité par Maxormarcus 10 janvier 2018 à 12:01:20

  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2018 à 12:10:25

Bonjour,

Le script SQL fourni n'assure que la création des tables ...

Voici le fameux fichier :

CREATE DATABASE p2p_blog CHARACTER SET 'utf8';
USE p2p_blog;

CREATE TABLE Categorie (
	id INT UNSIGNED AUTO_INCREMENT,
	nom VARCHAR(150) NOT NULL,
	description TEXT NOT NULL,
	PRIMARY KEY(id)
);

CREATE TABLE Categorie_article (
	categorie_id INT UNSIGNED,
	article_id INT UNSIGNED,
	PRIMARY KEY (categorie_id, article_id)
);

Sans méchanceté, je pense qu'à ce niveau du cours tu aurais pu ouvrir le fichier en question et te rendre compte qu'il ne contient que trois commandes : la création de la base , et deux créations de table ... pas de commande INSERT INTO pour alimenter ces tables ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
10 janvier 2018 à 17:37:52

Merci !

Me voilà rassuré, disons que j'ai grossièrement oublié que je pouvais d'abord ouvrir le fichier via un éditeur de texte avant de l'importer directement :honte:.

Bon, y'a plus qu'à 

-
Edité par Maxormarcus 10 janvier 2018 à 17:41:03

  • Partager sur Facebook
  • Partager sur Twitter
11 janvier 2018 à 10:42:21

Bonjour,

Je reviens sur ce cours après quelque mois d'interruption. Je revois  les parties que j'avais déjà faites pour me les remémorer avant de finir avec les parties qu'il me restait à voir .

J'avais déjà fais les activités des parties 2 et 4 .J'ai bien sûr conservé mon travail mais je n'ai plus accès à l'énoncé et s'est gênant et problématique pour revenir sur ce travail.

Y a t-il un moyen de consulter les énoncés des TP déjà réalisés ?

Merci

  • Partager sur Facebook
  • Partager sur Twitter
11 janvier 2018 à 13:52:39

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
11 janvier 2018 à 23:34:35

Merci,

C'est exactement ce dont j'avais besoin !

  • Partager sur Facebook
  • Partager sur Twitter
13 janvier 2018 à 18:43:11

Bonjour,

Je crois qu'il y a une erreur dans la réponse de la question 8 du quizz1,

On nous demande de sélectionner les chats femelles ET les chiens mâles or la réponse nous donne OU

merci

  • Partager sur Facebook
  • Partager sur Twitter
13 janvier 2018 à 21:48:05

KIMURA a écrit:

Bonjour,

Je crois qu'il y a une erreur dans la réponse de la question 8 du quizz1,

On nous demande de sélectionner les chats femelles ET les chiens mâles or la réponse nous donne OU

merci


j'ai suis dans le meme cas que toi !
  • Partager sur Facebook
  • Partager sur Twitter

technicien systèmes et réseaux 

13 janvier 2018 à 22:59:13

Le meilleur moyen de comprendre est de les utiliser selon moi, mais pour faire simple : Les chats femelles ne peuvent pas être aussi des chiens mâles.
  • Partager sur Facebook
  • Partager sur Twitter
29 janvier 2018 à 19:47:22

Bonjour,

Je suis actuellement le cours ci-dessous, je bloque dans l'import csv.

https://openclassrooms.com/courses/administrez-vos-bases-de-donnees-avec-mysql
J'applique cette requête :

Or, j'ai toute la ligne "perroquet" qui se met dans la première colonne, comme ceci :

Merci de votre aide, j'ai tout essayé

  • Partager sur Facebook
  • Partager sur Twitter
30 janvier 2018 à 10:46:14

Bonjour,

Il manque un guillemet après perroquet ... Et dans ton fichier CSV les colonnes sont séparées par des point virgule, pas des virgules ...

-
Edité par Benzouye 30 janvier 2018 à 10:51:38

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
31 janvier 2018 à 22:10:06

Bonjour,

Merci pour vos réponses.

Je pense qu'il y a vraiment quelque chose d'étrange.

Voilà ce que j'obtiens sur la console :

Les point virgules et guillemets sont mis correctement sur la console mais mon fichier csv est comme ceci.

J'ai retiré les guillemets avant perroquet pour avoir la bonne écriture sur la console.

Mais cela n'empeche que ça ne fonctionne toujours pas ?!


  • Partager sur Facebook
  • Partager sur Twitter
1 février 2018 à 8:48:48

Je te conseille d'ouvrir le fichier CSV avec un éditeur de texte (type notepad++) pour voir directement ce qu'il contient.

A la rigueur tu peux nous poster le contenu ici ;)

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
1 février 2018 à 22:54:09

A propos du 2e exercice, celui avec les requêtes.

Je bloque sur un truc. Pour la première requête, on nous demande "le nombre de commentaires liés à ces articles". Et là ça coince (euh ... au sens propre - ce n'est pas le cas de le dire). Tout le reste de la requête fonctionne parfaitement.

Voici ce qui fonctionne très bien:

SELECT DATE_FORMAT(Article.date_publication, '%d/%m/%Y') AS datepublication,
       Article.titre, Article.resume,
       Utilisateur.pseudo
       FROM Article
       INNER JOIN Utilisateur ON Article.auteur_id = Utilisateur.id
       ORDER BY Article.date_publication DESC



Pour le comptage des commentaires, je voyais quelque chose comme ça

SELECT COUNT(*) AS nb_commentaires
       FROM Commentaire
       INNER JOIN Article ON Article.id = Commentaire.article_id



On nous demande faire une seule requête. Or, je ne vois pas comment m'en dépatouiller. J'ai pensé à diverses possibilités: sous-requête, union de plusieurs requêtes, bref je ne vois pas comment faire. Auriez-vous une piste pour m'orienter svp ?  Merci


-
Edité par Delgesu 1 février 2018 à 22:58:17

  • Partager sur Facebook
  • Partager sur Twitter
2 février 2018 à 9:01:49

Je pense que la question signifie qu'il faut mettre pour chaque article le nombre de commentaires qu'il possède ...

Donc COUNT et GROUP BY quelque part ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
2 février 2018 à 12:29:46

Ouaip ... mais je ne vois vraiment pas comment le placer. Je cherche.
  • Partager sur Facebook
  • Partager sur Twitter
3 février 2018 à 21:29:05

Merci beaucoup Benzouye pour l'astuce avec notepad.                                                                                                                      Effectivement, Excel ne me montrai pas les bonnes entrées.

  • Partager sur Facebook
  • Partager sur Twitter
4 février 2018 à 20:16:48

Bonjour à tous ,

Dans la première partie du cours plus particulièrement le chapitre sur l'insertion des données :

en executant ces commandes :

LOAD DATA LOCAL INFILE 'animal.csv'
INTO TABLE Animal
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\n' -- ou '\r\n' selon l'ordinateur et le programme utilisés pour créer le fichier
(espece, sexe, date_naissance, nom, commentaires);

j'arrive au résultat suivant : 

l'insertion correspond à partir du tirer rouge comme vous pouvez le voir il y a des colonnes qui n'ont pas été inserer pour toute les lignes et je comprends pas pourquoi et en plus on dirait que c'est un peux aléatoire ...

  • Partager sur Facebook
  • Partager sur Twitter
6 février 2018 à 0:06:07

CasteloWoshu a écrit:

Bonjour à tous ,

Dans la première partie du cours plus particulièrement le chapitre sur l'insertion des données :

en executant ces commandes :

LOAD DATA LOCAL INFILE 'animal.csv'
INTO TABLE Animal
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\n' -- ou '\r\n' selon l'ordinateur et le programme utilisés pour créer le fichier
(espece, sexe, date_naissance, nom, commentaires);

j'arrive au résultat suivant : 

--------------------------------------------------------------------------------------------


Bonjour,
j'ai eu le même problème et en changeant <LINES TERMINATED BY '\n'> par <LINES TERMINATED BY '\r\n'> => cela a fonctionner correctement.

-
Edité par YounesNiari 6 février 2018 à 0:09:00

  • Partager sur Facebook
  • Partager sur Twitter
6 février 2018 à 17:45:06

Hello tout le monde,

J'ai une petite question concernant les exercices sur 'les calculs des données temporelles', dans l'exercice 5, j'avais pris en critère WHERE les id des deux animaux en question dans le bon ordre mais la résultat est NULL et je n'arrive pas à comprendre pourquoi (c'est surement tout bête) si quelqu'un pouvait m'éclairer ça m'aiderait bien. Merci !

Rouquine, Zira, Bouli et Balou (id 13, 18, 20 et 22 respectivement) font partie de la même portée. Calculer combien de temps, en minutes, Balou est né avant Zira.

SELECT TIMESTAMPDIFF(MINUTE,
(SELECT date_naissance
FROM Animal
WHERE nom = 'Balou'),
(SELECT date_naissance
FROM Animal
WHERE nom = 'Zira'))
AS nb_minutes;

-
Edité par Benzouye 6 février 2018 à 17:53:18

  • Partager sur Facebook
  • Partager sur Twitter
6 février 2018 à 18:01:52

Bonjour HervéMURIT,

Essaye d'exécuter les deux sous-requêtes indépendamment pour comprendre le NULL.

Si tu lances :

SELECT date_naissance
FROM Animal
WHERE nom = 'Balou';

SELECT date_naissance
FROM Animal
WHERE nom = 'Zira';

Qu'obtiens-tu ?

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
7 février 2018 à 8:57:57

Alors, ça vient surement de moi mais en revérifiant, c'est l'id 20 qui est = à Balou et non 22 mais ce n'est pas ça le problème, en fait en refaisant ce matin l'exercice, plus de NULL...que ce soit avec les id, les noms, les autres id, ça fonctionne...Du coup je ne sais pas quelle erreur j'ai fait hier mais je devais être fatigué lol. Merci !
  • Partager sur Facebook
  • Partager sur Twitter
9 février 2018 à 15:27:48


Bonjour à toutes et à tous.
Je n'arrive pas à comprendre à quoi correspond le nombre situé après AUTO_INCREMENT, à la fin de chaque table.
CREATE TABLE Machin (
	bla…bla
) ENGINE=InnoDB AUTO_INCREMENT=63 DEFAULT CHARSET=utf8;

Je n'arrive pas à retrouver l'information…
Merci de votre aide.
  • Partager sur Facebook
  • Partager sur Twitter
10 février 2018 à 12:10:47

Bonjour letengu,

Ce nombre indique la prochaine valeur de la colonne déclarée comme clé primaire (primary) qui sera créée automatiquement lorsque tu insèreras dans la table Machin.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
11 février 2018 à 23:41:33

Bonsoir ,

J'ai bien comprsi que la commande

CREATE DATABASE elevage CHARACTER SET 'utf8';

servait à créer la base de données elevage et que SET 'utf8' c'est pour encoder des charactéres spéciaux , mais la commande "CHARACTER" sert à quoi ,?

MERCI BIEN :)

  • Partager sur Facebook
  • Partager sur Twitter
12 février 2018 à 5:50:03

CHARACTER SET utf8 signifie "Mettre le jeu de caractères en utf8". CARACTER et SET vont ensemble. Comme LAUREL et HARDY.

  • Partager sur Facebook
  • Partager sur Twitter
14 février 2018 à 11:26:55

Bonjour en exécutant la commande : 

SELECT *, MATCH(titre, auteur) AGAINST ('Jules Verne Lune')

FROM Livre;

L'affichage de la dernière colonne MATCH est décalé vers la gauche , est-ce que c'est du tout simplement à la taille de ma console?

  • Partager sur Facebook
  • Partager sur Twitter