IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

python et SQL avec DuckDB ou SQLITE : où sont stockées les tables?


Sujet :

Python

  1. #1
    Membre averti
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2022
    Messages : 36
    Par défaut python et SQL avec DuckDB ou SQLITE : où sont stockées les tables?
    bonjour
    je comprends que l'interet d'utiliser DuckDB ou SQLITE avec python, c'est qu'on a pas besoin d'installer un serveur sql.
    1) SI j'utilsais postre ou mysql, je devrais installer le serveur, puis créer ma connexion à ce serveur dans le script python.

    Ici, si je veux utiliser duckDB, je fais juste pip install duckdb et c'ets bon, je peux créer des tables dans mon scrip python.
    j'ai bien compris jusue là?


    2) ce que je comprends akors c'est la suite :
    dans mon script python, je crée ma table, j'insére des données, je fais des requetes.
    Mais quand mon script se termine, la table s'efface de la mémoire du pc c'est ca?
    Si je lance un autre script avec des requetes vers cette table, ca marchera pas car la table est effacée...
    Est-ce que je suis dans le vrai?


    3)est-il possible de créer une table qui persiste pres l'execution du script?
    puis je lance un autre script qui va faire des requetes sur cette table?

    4/ c'est pareil avec sqlite?

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 811
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Je ne connais pas DuckDB mais je connais SQLite. Et cet outil permet de créer sa base en RAM (donc perdue quand le programme se termine) ou bien dans un fichier sur disque. Et dans ce cas, il reste présent et permet d'y revenir plus tard.
    Ce comportement fait d'ailleurs partie des 4 critères "ACID" ("D"=Durabilité=conservation des données même en cas d'arrêt de la base) qui doivent être respectés pour tout SGBD. Si DuckDB veut pouvoir être appelé "SGBD" il doit donc respecter le "D" de "ACID" et donc avoir un mécanisme de sauvegarde sur disque.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 683
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    3)est-il possible de créer une table qui persiste pres l'execution du script?
    Dans une discussion précédente, vous pensiez utiliser ce petit projet pour progresser avec la POO. Dans le concept "objet", la durée de vie est importante.

    Les objets créés en mémoire par un programme vont disparaître lorsqu'il se termine (ou plus tôt). Si on veut restaurer l'état d'une exécution précédente, il va falloir sauvegarder des informations dans un fichier (sur disque).
    Ces informations vont alors "persister" d'une exécution à l'autre.
    Par extension, une base de données, c'est (aussi) des informations sur disque et elles seront persistantes (par défaut).

    Dans tout cela, python n'a pas grand chose à avoir et vous avez des forums/tutos sur les bases de données qu'il serait peut être judicieux d'ouvrir...


    Citation Envoyé par sqlbeginner Voir le message
    Si je lance un autre script avec des requetes vers cette table, ca marchera pas car la table est effacée...
    Est-ce que je suis dans le vrai?
    ouvrez la documentation, il y a des exemples de quelques lignes qui vous permettraient de répondre vous même à ces questions.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 044
    Par défaut
    Hello,

    Si je lance un autre script avec des requetes vers cette table, ca marchera pas car la table est effacée...
    Est-ce que je suis dans le vrai?
    Justement, c'est là qu'entre en jeu la manière de développer. À toi de vérifier si la table existe, et si c'est le cas, on ne crée plus la table, on ajoute ses lignes dans la table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cur.execute("CREATE TABLE IF NOT EXISTS movie (title TEXT, year INTEGER, score REAL)")
    Bien sûr on considérera que ta base de données est sous format fichier et pas RAM (méthode connect avec :memory: ).

Discussions similaires

  1. Risque d'injection SQL avec un like dans une procédure stockée
    Par Oberown dans le forum Développement
    Réponses: 2
    Dernier message: 28/11/2012, 21h56
  2. Réponses: 5
    Dernier message: 12/12/2010, 23h04
  3. Pb de requete SQL avec clauses WHERE dans une procédure stockée
    Par CocoLeNain dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/06/2010, 23h48
  4. [ZF 1.5] Zend_Db et Sqlite - ne trouve pas les tables
    Par jeromek dans le forum Zend_Db
    Réponses: 5
    Dernier message: 02/02/2010, 13h27
  5. problem avec la recherche d'une valeur dans les table
    Par anilane dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/05/2007, 19h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo