Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer le contenu d'une requête SQLite

Sujet résolu
    13 mars 2022 à 12:29:58

    Bonjour,

    En gros j'aimerai qu'une des colonnes de ma base de données SQLite ne contienne qu'une seule donnée a la fois, donc j'ai créé un programme qui récupère d'abord l'ancienne donnée pour pouvoir la supprimer et enfin injecter la nouvelle. Le problème est que le programme me renvoie que l'ancienne donnée est (15.5,) par exemple, ce que je ne peux pas retrouver dans ma base de donnée pour le supprimer.

    J'espère avoir été assez clair…^^

    D'avance merci

    import sqlite3
        
    conn = sqlite3.connect('dbase.db')
    cur = conn.cursor()
    cur.execute("""SELECT maths FROM moyennes""")
    moyenne = cur.fetchone()
    print(moyenne)
    cur.execute(""""delete from moyennes where maths = moyenne""")
    cur.execute("""insert into moyennes(maths) values(17.5)""")
    conn.commit()
    cur.close()
    conn.close()
    • Partager sur Facebook
    • Partager sur Twitter
      13 mars 2022 à 12:33:30

      > J'espère avoir été assez clair…^^

      Pas exactement.

      En donnant un exemple, ça serait peut être mieux.

      • La structure de la table,
      • quelques lignes des données qui sont dedans,
      • ce qu'on veut obtenir après.

      -
      Edité par michelbillaud 13 mars 2022 à 12:35:16

      • Partager sur Facebook
      • Partager sur Twitter
        14 mars 2022 à 0:22:12

        Sur le delete, il y a 4 " au début pour 3 à la fin de la chaîne

        > where maths = moyenne

        Ne fait probablement pas ce que tu penses : ça ne doit pas réinjecter la variable moyenne, SQLite va chercher à comparer 2 colonnes : maths à moyenne. Si les erreurs étaient gérées, ce serait apparu ...

        > ne contienne qu'une seule donnée a la fois

        Pourquoi mettre une clause WHERE dans ce cas ? (ou je n'ai pas compris)

        -
        Edité par julp 14 mars 2022 à 0:29:48

        • Partager sur Facebook
        • Partager sur Twitter
          14 mars 2022 à 14:59:14

          et avec un update au lieu d'un delete+insert ? le risque c'est aussi qu'il y ai plusieurs lignes de supprimer/mises à jour si la valeur existe plusieurs fois

          -
          Edité par umfred 14 mars 2022 à 15:00:36

          • Partager sur Facebook
          • Partager sur Twitter
            14 mars 2022 à 19:42:46

            En gros ce que je veux c'est qu'il n'y ai qu'une seule ligne dans une colonne.

            Donc ce que j'ai essayé de faire c'est de chercher la valeur de la colonne pour pouvoir ensuite la supprimer et réinsérer une autre valeur a la place.

            Mais je ne connais pas update qu'est ce que ca fait ?

            • Partager sur Facebook
            • Partager sur Twitter
              15 mars 2022 à 8:33:19

              Une seule ligne dans une colonne, euh ?

              Ça serait mieux si tu donnais un exemple précis et complet, qu' on n'aie pas besoin d'essayer de deviner.

              Pour UPDATE, tu devrais regarder la documentation. Il y a aussi INSERT OR REPLACE. Mais c'est des moyens de faire quelque chose, le problème c'est d'abord de savoir ce qu'on veut faire. Le comment et avec quoi, ca vient après.

              -
              Edité par michelbillaud 15 mars 2022 à 8:38:53

              • Partager sur Facebook
              • Partager sur Twitter
                15 mars 2022 à 11:50:29

                Dans une base de données, un enregistrement c'est une ligne de données.

                Un delete efface un ou des lignes, un insert insérère une ou des lignes, un update modifie une ou des valeurs dans une ou des lignes

                • Partager sur Facebook
                • Partager sur Twitter
                  17 mars 2022 à 19:16:37

                  Pour l'exemple concret, je voudrais faire une base de données donc avec des notes. Mais je voudrais aussi qu'il y ai des colonnes pour les moyennes et donc ou il n'y aurais qu'une seule donnée : on n'a qu'une seule moyenne. Et donc dès qu'on rajoute une note, je voudrais actualiser la moyenne.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 mars 2022 à 21:16:26

                    FoucauldBert a écrit:

                    Pour l'exemple concret, je voudrais faire une base de données donc avec des notes. Mais je voudrais aussi qu'il y ai des colonnes pour les moyennes et donc ou il n'y aurais qu'une seule donnée : on n'a qu'une seule moyenne. Et donc dès qu'on rajoute une note, je voudrais actualiser la moyenne

                    Un exemple concret, c'est

                    • La déclaration des tables
                    • Quelques lignes dedans
                    • La description de ce que tu veux faire avec (état des tables avant / après)

                    Avec ce que tu nous dit, on ne sait pas si tu veux faire des moyennes de notes d'élève, de groupe et/ou de matières, avec ou sans coefficient. Le sais-tu toi-même ?

                    D'ailleurs pourquoi stocker les moyennes, puisque ça se recalcule à partir des notes ?

                    -
                    Edité par michelbillaud 18 mars 2022 à 11:17:58

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Récupérer le contenu d'une requête SQLite

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown