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 :

insérer multiple mot dans database [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut insérer multiple mot dans database
    Bonjour,

    j'aimerai insérer des multiples mots dans database avec sqlite3 avec deux petit point.
    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def insertdoc(nom,prenon,numero,adress,ville):
    ....etc
    sqlite_insert_query = """INSERT INTO DATABASE (Nom, Prenon, adresse, villes) VALUES (?, ?, ?, ?);"""
    data_key = (nom, prenom, "adress:" numero:adresse, ville) 
    cursor.execute(sqlite_insert_query, data_key)
    ...etc
    pouvez-vous me dire comment faire pour insérer dans database => "adress": "numero:adresse" avec deux petits points. merci d'avance.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Citation Envoyé par Miska59 Voir le message
    pouvez-vous me dire comment faire pour insérer dans database => "adress": "numero:adresse" avec deux petits points.
    Facile, on commence par ouvrir la documentation de sqlite3 pour essayer de comprendre comment ça marche.

    Après je ne sais pas à quoi correspondent vos "deux points" mais il va falloir faire avec ce que sqlite3 et Python savent faire.

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

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Miska59 Voir le message
    data_key = (nom, prenom, "adress:" numero:adresse, ville).
    pouvez-vous me dire comment faire pour insérer dans database => "adress": "numero:adresse" avec deux petits points.
    data_key = (nom, prenom, "adresse: %d:%s" % (numero, adresse), ville)...
    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]

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour

    Donc en fait tu ne tiens pas compte de ce qui t'est dit

    Le problème n'a rien à voir avec sqlite mais c'est plutot AU SECOURS, je ne sais pas ce qu'est une chaine de caractère en python, c'est pourtant 105 chapitres avant les bases de données

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Je ne vois pas trop l'intérêt (je suppose que cela va consommer plus de mémoire) d'ajouter à chaque fois la chaine "adresse: ", n'y a-t-il pas déjà dans la bdd une colonne "adresse" qui permet de repérer l’adresse ?

    Pourquoi ne pas juste faire : data_key = (nom, prenom, "%d:%s" % (numero, adresse), ville) (j'ai repris et modifié le code de Sve@r) ?

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    (je suppose que cela va consommer plus de mémoire) d'ajouter à chaque fois la chaine "adresse: "
    Ca dépend de comment est configuré la colonne dans la table.
    Si la colonne (là on entre dans le domaine bdd) est en fixe (ex char(40)) alors quel que soit son contenu, ça occupera toujours 40 caractères (certains seront utilisés par de la data utile, d'autres seront là pour rien). Si tu connais un peu le C c'est la même chose avec char c[40]="toto" qui définit un tableau de 40 caractères dont les 4 premiers contiennent 't', 'o', 't' et 'o', plus le 5° qui contient un marqueur de fin, ici '\0'. Donc 40 caractères créés en RAM mais seulement 5 occupés par de la data "utile".
    Si maintenant c'est du varchar, alors effectivement rajouter de la string en dur consomme plus de place que ne pas en mettre.

    Sinon d'un point de vue "logique algorithmique et efficience", effectivement c'est totalement idiot de rajouter une string "en dur" alors qu'on peut gérer soi-même la façon dont on affiche l'adresse

    Citation Envoyé par Beginner. Voir le message
    (j'ai repris et modifié le code de Sve@r) ?
    C'est fait pour
    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]

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ca dépend de comment est configuré la colonne dans la table.
    Si la colonne (là on entre dans le domaine bdd) est en fixe (ex char(40)) alors quel que soit son contenu, ça occupera toujours 40 caractères (certains seront utilisés par de la data utile, d'autres seront là pour rien). Si tu connais un peu le C c'est la même chose avec char c[40]="toto" qui définit un tableau de 40 caractères dont les 4 premiers contiennent 't', 'o', 't' et 'o', plus le 5° qui contient un marqueur de fin, ici '\0'. Donc 40 caractères créés en RAM mais seulement 5 occupés par de la data "utile".
    Si maintenant c'est du varchar, alors effectivement rajouter de la string en dur consomme plus de place que ne pas en mettre.
    Ah ok ça c'est durant l’exécution mais pour le fichier (.db, .sqlite,...) ça change quelque chose ou bien on a aussi toujours 40 caractères pour chaque adresse même si elle est plus courte ?

    Bon j’essaierai de vérifier ce genre de chose quand je pratiquerai les bdd...

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    mais pour le fichier (.db, .sqlite,...) ça change quelque chose ou bien on a aussi toujours 40 caractères pour chaque adresse même si elle est plus courte ?
    Ben au final la table est quand-même écrite dans le fichier...

    Bon généralement dans 97% des cas, on utilise du varchar (pour chaque ligne, la colonne se cale donc sur la longueur de la data qu'on lui insère ce qui évite de perdre de la place pour rien) mais il m'est arrivé de mettre du char(n). C'était pour stocker un checksum md5 et un md5 ayant une taille fixée à 32, fatalement le char(32) était le plus adéquat (le char(n) a quand-même l'avantage de te donner des lignes de toujours la même taille donc ça aide au déplacement => tu veux sauter 10 lignes, tu sautes direct 10*<size ligne>, chose que le varchar ne te permet pas de faire).
    Ensuite le varchar peut donner (là on a quitté Python et on entre dans le domaine de la bdd) des soucis d'optimisation. Imagine on est en varchar on entre 30c. Puis on modifie (update) la data et il n'y en n'a plus que 20, que se passe-t-il? La colonne se recale sur 20? Elle reste à 30 parce que c'est plus rapide de ne rien faire (charge au vacuum de remettre les choses en place)? Bon bref je ne pense pas que tu te mettras à créer ton moteur bdd mais c'est pour avoir une idée des soucis que ceux qui les créent peuvent avoir.
    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]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [9.5] Import multiples fichiers csv dans database pgadmin
    Par NorrisP dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/07/2016, 15h38
  2. Insérer données multiples formulaire dans BDD
    Par aparxa dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/05/2014, 09h22
  3. Réponses: 15
    Dernier message: 04/06/2008, 14h44
  4. insérer un mot sans formatage dans un texte formaté
    Par happyculteur dans le forum VBA Word
    Réponses: 5
    Dernier message: 19/11/2007, 20h55
  5. insérer un mot sans formatage dans un texte formaté
    Par happyculteur dans le forum VBScript
    Réponses: 2
    Dernier message: 19/11/2007, 17h22

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