Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Cours] algèbre relationnelle & SQL

    30 août 2018 à 16:31:00

    Merci Romains51. Bête mais il fallait y penser, j'ai résolu mon problème grâce au clavier visuel.
    • Partager sur Facebook
    • Partager sur Twitter
      4 septembre 2018 à 21:18:07

      Bonjour,

      J'ai une question "bête"...

      Pour le dernier exo du cours, on appelle "salariés" ceux qui sont encore salariés ... ?

      Du coup, si il n'ont pas de salaire aujourd'hui, ils ne sont pas salariés ou je vais trop loin ?

      Merci !

      • Partager sur Facebook
      • Partager sur Twitter
        Team OC 11 septembre 2018 à 19:36:10

        Bonjour, pouvez-vous nous envoyer une capture d'écran svp ?

        SergeGontcho a écrit:

        Bonjour,

        lorsque j'essaye de télécharger le lien vers la base de données SQLite3 de panama papers, la réponse est invariablement :

        désolé, nous ne pouvons pas atteindre cette page. Assurez-vous d'avoir la bonne adresse. Assurez-vous d'avoir la bonne adresse web, sur https://S3-eu-west-1/Amazonaws.com sur Bings, etc...

        Avez-vous délocalisez l'adresse mail ? 



        • Partager sur Facebook
        • Partager sur Twitter
          Team OC 12 septembre 2018 à 14:05:20

          Pezman a écrit:

          Bonjour,

          J'ai une question "bête"...

          Pour le dernier exo du cours, on appelle "salariés" ceux qui sont encore salariés ... ?

          Du coup, si il n'ont pas de salaire aujourd'hui, ils ne sont pas salariés ou je vais trop loin ?

          Merci !


          Bonjour,

          Un salarié est considéré comme salarié même s'il ne perçoit plus de salaire. ;)

          Est-ce que cela répond à votre question ?

          • Partager sur Facebook
          • Partager sur Twitter
            26 septembre 2018 à 11:44:55

            Bonjour Nicolas,

            J'ai eu un petit soucis lors de l'import de mes résultats : seul de script est parti, pas les copies d'écran.

            Est-ce que je peux les renvoyer d'une manière ou d'une autre ? :(

            -----

            Autre chose:

            Je ne suis pas certaine d'avoir compris l'intérêt de joindre 3 tables dont 1 table d'association ?

            Du coup, je ne comprends pas quand on doit procéder ainsi.

            Merci d'avance.

            PS: ta réactivité est impressionnante ^^

            -
            Edité par AurélieGiraud1 26 septembre 2018 à 11:49:18

            • Partager sur Facebook
            • Partager sur Twitter

            Aurelie GIRAUD
            Data Analyst Student

              Team OC 28 septembre 2018 à 14:04:19

              AurélieGiraud1 a écrit:

              Bonjour Nicolas,

              J'ai eu un petit soucis lors de l'import de mes résultats : seul de script est parti, pas les copies d'écran.

              Est-ce que je peux les renvoyer d'une manière ou d'une autre ? :(

              -----

              Autre chose:

              Je ne suis pas certaine d'avoir compris l'intérêt de joindre 3 tables dont 1 table d'association ?

              Du coup, je ne comprends pas quand on doit procéder ainsi.

              Merci d'avance.

              PS: ta réactivité est impressionnante ^^

              -
              Edité par AurélieGiraud1 26 septembre 2018 à 11:49:18


              Bonjour Aurélie,

              Pour ce qui est des problèmes liées à la plateforme des activités, il faut plutôt contacter hello@openclassrooms.com ;)

              Quant aux tables d'associations, elles sont utilisées dans la relation entre les 2 objets est de type "plusieurs à plusieurs", comme indiqué ici ;)

              • Partager sur Facebook
              • Partager sur Twitter
                16 octobre 2018 à 15:31:31

                Nicolas Rangeon a écrit:

                Bonjour Patrick,

                J'ai mis en ligne ce matin 2 dumps de la base, que vous pouvez télécharger et utiliser en mysql ou en sqlite. Ils sont ici :

                https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees_mysql.sql

                https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees.sqlite3

                J'ai demandé à d'autres profs chez OC qui utilisent aussi la console codevolve, et ils ont eux aussi des soucis. On utilise en fait une plateforme extérieure, qui n'est pas éditée chez OC. Je vais investiguer sur les autres technologies disponibles afin d'avoir quelque chose de plus stable, car vous n'êtes pas le seul à avoir eu ce type de problème. J'ai aussi pris contact avec un des développeurs de l'entreprise qui édite codevolve pour leur demander s'ils comptent travailler sur la stabilité de leur outil.

                N'hésitez pas à me dire si vous arrivez ou non à utiliser les dumps.

                Bonne journée

                Nicolas



                • Partager sur Facebook
                • Partager sur Twitter
                  17 octobre 2018 à 12:46:29

                  Bonjour j'ai essayer de telecharger les dumps a partir de ces liens

                  https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees_mysql.sql

                  https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees.sqlite3

                  mais je n'y suis pas arrivé j'ai tous essayer 

                  aider moi car la console est tres instable, aussi j'aimerais savoir s'il ne serai pas possible d'ecrire les requettes sur words et les envoyer?

                  merci



                  • Partager sur Facebook
                  • Partager sur Twitter
                    Team OC 10 décembre 2018 à 12:01:40

                    Bonjour Stephan, Pouvez-vous retenter de télécharger les fichiers et me dire si ça fonctionne mieux ?

                    Merci

                    stephankanga a écrit:

                    Bonjour j'ai essayer de telecharger les dumps a partir de ces liens

                    https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees_mysql.sql

                    https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees.sqlite3

                    mais je n'y suis pas arrivé j'ai tous essayer 

                    aider moi car la console est tres instable, aussi j'aimerais savoir s'il ne serai pas possible d'ecrire les requettes sur words et les envoyer?

                    merci





                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 décembre 2018 à 14:00:10

                      Bonjour,

                      Je vous remercie d'abord pour ce cours très explicite sur les SGBDS.

                      Je suis entrain de réaliser la 4eme question concernant la jointure sur l'exercice de l'avant dernière partie, je souhaite soustraire les noms et les prénoms d'un employée ainsi que le département où il est affecté. 

                      Voila ma requête, elle fonction avec * sans les critères nom et prenom, mais quand je rajoute le critère first_name et last_name) elle m'affiche une erreur.

                      SELECT 
                      	
                      	dept_emp.form_date,
                      	dept_emp.to_date,
                      	departments.dept_name,
                      	employees.first_name,
                      	employees.last_name
                      
                      	FROM dept_emp, departments, employees
                      	WHERE departments.dept_no = dept_emp.dept_no,
                      	AND dept_emp.emp_no = employees.emp_no
                      	AND emp_no = '499902';

                      Je sais que les deux tables "dept_emp" et "employees" sont liées par des clés étrangères, cependant, la table "departments" ne l'est pas, il faut donc faire une jointure entre les deux (pour avoir les noms et les prènoms des employées d'un département) puisque la table "departments" et "employees" ne sont pas liés, arrêtez-moi si je me trompe....

                      Sauf que sur la console sql me dit que la clause "dept_emp.emp_no = employees.emp_no" est ambigue...??

                      Je vous remercie d'avance pour votre aide précieuse.

                      -
                      Edité par Linus_11 24 décembre 2018 à 14:25:03

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Nobody is perfect I'm Nobody...
                        Team OC 7 janvier 2019 à 11:57:36

                        Linus_11 a écrit:

                        Bonjour,

                        Je vous remercie d'abord pour ce cours très explicite sur les SGBDS.

                        Je suis entrain de réaliser la 4eme question concernant la jointure sur l'exercice de l'avant dernière partie, je souhaite soustraire les noms et les prénoms d'un employée ainsi que le département où il est affecté. 

                        Voila ma requête, elle fonction avec * sans les critères nom et prenom, mais quand je rajoute le critère first_name et last_name) elle m'affiche une erreur.

                        SELECT 
                        	
                        	dept_emp.form_date,
                        	dept_emp.to_date,
                        	departments.dept_name,
                        	employees.first_name,
                        	employees.last_name
                        
                        	FROM dept_emp, departments, employees
                        	WHERE departments.dept_no = dept_emp.dept_no,
                        	AND dept_emp.emp_no = employees.emp_no
                        	AND emp_no = '499902';

                        Je sais que les deux tables "dept_emp" et "employees" sont liées par des clés étrangères, cependant, la table "departments" ne l'est pas, il faut donc faire une jointure entre les deux (pour avoir les noms et les prènoms des employées d'un département) puisque la table "departments" et "employees" ne sont pas liés, arrêtez-moi si je me trompe....

                        Sauf que sur la console sql me dit que la clause "dept_emp.emp_no = employees.emp_no" est ambigue...??

                        Je vous remercie d'avance pour votre aide précieuse.

                        -
                        Edité par Linus_11 24 décembre 2018 à 14:25:03


                        Bonjour,

                        C'est peut-être à cause de la partie " emp_no = '499902' ". Essayez de mettre le nom de la table devant emp_no.

                        Si cela ne marche pas, pouvez-vous me donner une capture d'écran de la requete + de l'erreur svp ?

                        -
                        Edité par Nicolas Rangeon 7 janvier 2019 à 12:00:41

                        • Partager sur Facebook
                        • Partager sur Twitter
                          20 janvier 2019 à 18:30:11

                          Bonjour ,

                          Encore Merci pour ce cours très explicite et simple.

                          Seulement le lien :

                          https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/4449026/P2P_database/employees.sqlite3

                          Ne fonctionne pas . Pourriez vous svp me donner un lien actif pour le telechargement de la base de données employees pour Sqlitestudio .

                          Merci encore

                          Yves

                          • Partager sur Facebook
                          • Partager sur Twitter
                            26 janvier 2019 à 23:34:15

                            Bonjour Nicolas,

                            la console de code ne fonctionne toujours pas depuis qq semaine, ça fonctionnait pourtant bien avant.

                            Heureusement il y a sqlite pour avancer mais malheureusement je ne peut rien télécharger au bureau et la console était le seul moyen .

                            Voici l'erreur:

                            sandbox $ mysql panamapapers --default-character-set=utf8;

                            ERROR 1049 (42000): Unknown database 'panamapapers'

                            sandbox $ 

                            **************

                            le 30/01 idem impossible de faire les cours sur panama papers sauf avec SQL LITE alors que ca fonctionnait avant pour le quizz ?!?

                            Même erreur .

                             en fait la base de donnée panamapapers n'est pas téléchargée (show databases) et comme je ne sais pas ce que le programme fait (SANDBOX) sinon j'aurais plus essayer de le faire manuellement, je connais un peu Linux.

                            ***************

                            Finalement j'installe MariaDb un Fork de Mysql parce que Sql lite3 n'a pas la fonction ALL et ANY , plutot génant 

                            -
                            Edité par Louis B. 30 janvier 2019 à 21:19:47

                            • Partager sur Facebook
                            • Partager sur Twitter
                              28 janvier 2019 à 19:06:06

                              Bonjour Nicolas,

                              Super cours, j'aime bien les petites touches d'humour.

                              Un point par rapport à la correction de la première activité, notamment question 5.

                              Mes correcteurs me reprochent de ne pas avoir utilisé GROUP BY en aggrégation et m'ont donc compté faux.

                              Or j'avais cu retenir que count(*) pouvait servir d'aggrégateur.  Me suis-je vraiment trompé ?

                              Ci-dessous mon code:

                              Merci pour le retour ;)

                              • Partager sur Facebook
                              • Partager sur Twitter
                                29 janvier 2019 à 19:10:57

                                Bonjour Nicolas, 

                                je me permets de compléter la question précédente soulevée par Geoffrey.

                                J'ai moi même soulevé la question hier au service support. Voici le passage concernant cette interrogation pour cette question 6, et non 5 :

                                Je profite pour ajouter un commentaire sur la question 6 de l'activité précédente. Le commentaire d'aide à la correction précise que la clause GROUP BY doit être présente. Je reconnais que l'utilisation d'une agrégation est indiquée dans l'énoncé de la question. Après, sauf erreur de ma part, la fonction count(), à elle seule est considérée comme une fonction d'agrégation.  

                                J'y ai ajouté le commentaire laissé sur 2 des 3 copies corrigées : 

                                Pour la question 6, le barème de correction indique que la clause GROUP BY est attendue dans la requête...
                                J'avoue que dans cet exemple, elle ne me semble pas justifiée. Je l'ai moi même volontairement omise pour plus de clarté.
                                J'ai donc jugée normal de ne pas pénaliser ces copies sur ce point. La clarté de code est à mon sens une donnée à ne pas négliger, maintenance oblige.

                                Bien évidemment sur les trois correcteurs désignés pour corriger ma copie, l'un deux à appliqué à la lettre les indications données pour l'aide à la correction. Heureusement pour moi, les deux autres ont été plus indulgent.

                                Pour Geoffrey, le problème à peut être un peu plus d'incidence, puisqu'il évoque avoir été penalisé par plusieurs correcteurs sur cette question...

                                Myriam 

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  30 janvier 2019 à 21:17:44

                                  Bonjour effectivement agrégation et partitionnement ne sont pas la même chose.

                                  Je me suis fait la remarque aussi puisque les 2 script avec group by et sans donne le même résultat.

                                  Mais comme dans le cours on parlait de Group by (partionnement) je me suit dit qu'il fallait mieux le mettre 

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    30 janvier 2019 à 21:32:28

                                    jbbabayou a écrit:

                                    Bonjour @AlexisMichelot3,

                                    J'avais posé la même question il y a un mois sur ce thread, mais pas de réponse.
                                    J'avais conclu de mes recherches que SQLiteStudio ne gère pas les requêtes "ALL" .. (!)


                                    Bonjour a tous, effectivement SQL LITE 3 ne gère pas le ALL ni le ANY c'est pourquoi je cherche la base de donnée en MYSQL ? Pour le faire quand même il y a des astuces de programmation voir cet article dans le forum stackoverflow qui traite du sujet (en anglais)  https://stackoverflow.com/a/46720160
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      28 mars 2019 à 23:33:35

                                      Bonjour, 

                                      Je rencontre un problème au niveau de la 3ème question de la dernière partie, où il faut (je pense) utiliser RANK() et OVER().

                                      Voici un screenshot de la requête et du message d'erreur.

                                      J'ai testé avec plusieurs syntaxes différentes, mais il bloque toujours pour ce qu'il y a après le OVER(). Une idée de ce que je rate ?

                                      Merci d'avance ! :)

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        9 avril 2019 à 22:04:29

                                        Bonjour

                                        j'ai eu le même problème et j'ai utilisé une autre méthode pour répondre à la question (méthode qui a été utilisée par toutes les personnes que j'ai corrigé).

                                        Cordialement

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          16 avril 2019 à 15:56:55

                                          Bonjour Nicolas,

                                          merci beaucoup pour ce cours, c'est tres tres bien fait ! Je n'ai pas encore fini mais je profite pour signaler 2 bogues au chapitre "N'oubliez pas l'aggregation" (si je en trouverai d'autres j'espere povoir editer ce poste ou je le signalerai tous a la fin):

                                          - ici https://openclassrooms.com/fr/courses/4449026-initiez-vous-a-lalgebre-relationnelle-avec-le-langage-sql/4568776-noubliez-pas-lagregation#/id/r-4619298 on se refere a l'attribut "prix par kilo" en parlant de la fonction moyen mais en fait c'est la masse

                                          - ici https://openclassrooms.com/fr/courses/4449026-initiez-vous-a-lalgebre-relationnelle-avec-le-langage-sql/4568776-noubliez-pas-lagregation#/id/r-4569419 il y a un lien vers un graphique dessus mais c'est le mauvais, ca devrait etre celui encore plus haut.

                                          Merci encore pour ce cours, c'est dans ma top 2 des cours sur OpenClassroom que j'ai suivi jusqu'au present ! Bravo !

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            26 avril 2019 à 14:25:17

                                            Bonjour,

                                            Tout d'abord merci pour ce cours de qualité ^^

                                            Ensuite je profite de ce forum pour signaler un problème avec la console interactive : apparemment chez d'autres elle est instable... chez moi elle n'a tout simplement jamais marché :lol: (ni dans le cours ni dans l'activité corrigée par les pairs)

                                            Je détaille : je suis bien sur une console mais aucune donnée ne s'affiche et je ne peux rien faire (j'ai cliqué partout) : je ne peux pas uploader de fichier, ni écrire une requête, encore moins l'exécuter. La seule chose que je peux faire c'est créer de nouveaux onglets d'édition (où je ne peux rien écrire). Une capture d'écran est plus parlante :

                                            Au moins j'ai pu télécharger les dumps donc je vais pouvoir faire l'activité corrigée sur SQLiteStudio.

                                            J'espère que le problème sera réglé pour les suivant-e-s en tout cas, SQLite a ses propres subtilités de langage et c'est bien de pouvoir tester d'autres consoles. Bonne continuation !

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              3 mai 2019 à 15:38:04

                                              Bonjour de nouveau,

                                              Me voici à la fin du cours, le dernier module cours avant l'activité finale : "Appréhendez le fenêtrage avec OVER et PARTITION BY". Je fais remonter un bug :

                                              Version courte : SQLite Studio ne gère pas les fonctions de fenêtrage, n'essayez pas de faire marcher le code, ça ne fonctionnera pas.

                                              Version longue :

                                              Il est indiqué en début de cours que MySQL ne gère pas les fonctions de fenêtrage. Si je ne me trompe pas, SQLite Studio non plus ! (J'en suis à la version 3.2.1)

                                              En effet, lorsque je saisis le code utilisant les fonctions rank() et sum() (celui de la rubrique "Les sommes cumulées et les numéros de rang") :

                                              SELECT id_intermediary,
                                                  jurisdiction,
                                                  cnt_entities,
                                                  rank()
                                                      (PARTITION BY id_intermediary ORDER BY cnt_entities DESC) AS rank,
                                                  sum(cnt_entities) 
                                                      (PARTITION BY id_intermediary ORDER BY cnt_entities DESC) AS cum_sum
                                              FROM nb_entities ;

                                              J'obtiens le message d'erreur  "Error while executing SQL query on database 'panamapapers0': near "(": syntax error"

                                              J'ai eu beau bidouiller la syntaxe, ça ne marche pas. En farfouillant un peu sur le web, je crois que c'est tout simplement que ça ne marche pas avec SQLite. 

                                              Bon courage pour les suivant-e-s

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                15 mai 2019 à 14:43:43

                                                Bonjour,

                                                Je n'arrive pas à telecharger la base de données des panamaspapers du cours, le lien n'est pas bon.

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  16 mai 2019 à 10:44:09

                                                  Bonjour.

                                                  J'ai téléchargé la table originelle que j'ai traitée avec MySQL.

                                                  Je présume que la différence d'affichage de lignes provient du fait que la base utilisée dans la console est différente, comme précisé dans le NB.

                                                  Un message prévient que "2438 lignes ont été limitées à 500". Est-ce normal ?

                                                  Car à la requête de la question 2 ne me sort que 2 noms : est-ce normal ?

                                                  Merci.

                                                  -
                                                  Edité par Un débutant 16 mai 2019 à 10:44:29

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    12 juin 2019 à 15:59:12

                                                    Bonjour à tous,

                                                    Tout d'abord un grand merci à notre professeur Nicolas Rangeon pour ce cours très bien ficelé, avec une belle marge de progression au fil des cours, cela m'a grandement aidé !

                                                    Question bête, mais je me retrouve bloqué à la dernière partie, le 4.5 "Appréhendez le fenêtrage avec OVER et PARTITION BY", où je ne comprends absolument pas comment télécharger la base de données des Panama Papers sur PostgreSQL...

                                                    La console est beaucoup plus dure à appréhender que SQLiteStudio, et je ne comprends même pas à vrai dire comment y importer la base de donnéees panamapapers.sqlite3 sur laquelle nous travaillons depuis le début.

                                                    On se retrouve avec une console très technique, qui ne permet pas à première vue d'y importer du sqlite3.

                                                    J'ai beau éplucher de la doc et des tutos YouTube, je ne comprends pas comment me servir de la console.

                                                    Il semble aisé de créer des nouvelles bases de données sur l'outil, mais je ne vois pas comment y importer une BDD existante pour travailler dessus.

                                                    A un chapitre de la fin du cours, j'aimerais arriver au bout de ce cours !

                                                    Si l'un d'entre vous saurait m'aider à passer ce cap, je vous remercie grandement !
                                                    Bonne journée à tous,
                                                    Robin
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      2 juillet 2019 à 22:22:15

                                                      Bonjour Nicolas,

                                                      Je vous remercie tout d'abord pour votre cours.

                                                      Je venais de finir le cours quand je me rends compte que l'exercice ci-dessous ne m'a pas été validé même pour une note de 4/6, bien étrange ?

                                                      Y-a-t-il une explication pour ça ? 

                                                      Encore merci pour votre cours !

                                                       

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        3 juillet 2019 à 21:10:53

                                                        Bonjour,

                                                        Tout d'abord merci pour ce cours très bien fait et très complet.

                                                        Je m'interroge sur un complément à la Q2 du 2nd exercice du cours où nous devons utiliser le mot clé IN ainsi qu'une requête imbriquée :

                                                        ça fonctionne bien quand j'affiche les attributs de la table salaries (SELECT * FROM salaries ...), cependant si je souhaite également afficher les nom/prénom des employés (issus de la table employees), ça ne fonctionne plus : j'obtiens une liste contenant 7 312 lignes au lieu de 3 précédemment. 

                                                        J'ai uniquement modifié les informations dans SELECT comme ci-dessous, et j'ai conservé le reste de mon code qui fonctionnait :

                                                        SELECT s.emp_no, first_name, hire_date, salary  FROM salaries s, employees ...

                                                        Pouvez-vous m'aider à comprendre d'où vient mon erreur ?

                                                        Merci par avance, et bonne continuation à tous

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          5 juillet 2019 à 17:19:34

                                                          Tu as probablement oublié de définir une condition sur la jointure entre employees et salaries
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          [Cours] algèbre relationnelle & SQL

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          • Editeur
                                                          • Markdown