Problème de colonnes

Fermé
lecorse Messages postés 127 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 19 juin 2020 - 18 juin 2020 à 18:23
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 19 juin 2020 à 11:25
Bonjour, 




import sqlite3
conn = sqlite3.connect('test2') # OK MAIS VOIR COMMENT AJOUTEr UNE COLONNE MËME SI PAS UTILE POUR TOUS !!!!!!!!!!!!!!!!!!!!!!!!!
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS users(
id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
name TEXT,
adresse TEXT,
ville TEXT,
tel TEXT

)
""")

conn.commit()


# Insérer des données 1) colonnes = 4 (ne pas tenir compte ID = 0 indexation auto - 2) valeur de la colonne ex: nom, adresse, ville, tel
#--------------------
cursor.execute("""
INSERT INTO users(name, adresse, ville, tel) VALUES(?, ?, ?, ?)""", ("Moulin Jean", "Rue Haute 102", "Mons", "0478149622"))

cursor.execute("""
INSERT INTO users(name, adresse, ville, tel) VALUES(?, ?, ?, ?)""", ("renard Jean", "Rue Haute 102", "Mons", "0579136521"))

# Insérer des nouvelles données:
# -----------------------------


# Pour modifier des entrées:
# -------------------------

cursor.execute("""UPDATE users SET tel = ? WHERE id = 2""", ("025785879",)) # modification du n° tel.

#********************************************** Toujours enregistrer après modification de table ********************************************************************************************
# ------------------------------------------------
# Récupérer les données
#----------------------

cursor.execute("""SELECT id, name, adresse, ville, tel FROM users""")
rows = cursor.fetchall()
for row in rows:
print('{0} : {1} - {2} - {3} - {4}'.format(row[0], row[1], row[2], row[3], row[4]))


Bonjour,

Bonjour
Une table créée avec SQL3 peut-elle être modifier après avoir été créée
Je sais qu'on peut ajouter une données complète mais par ex :ajouter une colonne qui ne sera utile que pour une personne
Ou faut -il créer une colonne supplémentaire au départ
Merci pour l'aide






Configuration: Windows / Chrome 83.0.4103.106

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
18 juin 2020 à 18:55
Bonjour,

Déjà, lorsque tu postes du code sur le forum, il faut utiliser les BALISES DE CODE.
Tuto à lire ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite,
Techniquement, rien ne t’empêche de rajouter de nouveaux champs dans tes tables ( ce que tu appelle les colonnes)....
Mais en règle générale, on conçoit / créé la structure de la bdd au départ... et on évite d'y toucher par la suite...

Si tu n'as qu'une seule "colonne" à ajouter .. même si pas utilisée par la suite... autant la créer tout de suite dans ta table...
Mais si tu viens à avoir plusieurs "colonnes" à créer.. là, c'est le modèle de ta bdd qu'il faut revoir. Si tu as des valeurs "optionnelles" à renseigner, je pense qu'une table supplémentaire serait préférable pour les stocker...

Un table du genre :
users_options
- id
- id_user
- option_libelle
- option_value


NB: Sqlite n'est pas Mysql ... je déplace donc ta question.
0
lecorse Messages postés 127 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 19 juin 2020 18
19 juin 2020 à 11:14
Bonjour
Merci pour ta réponse
Est-ce que jai bien utiliser les balises de code?




# python doctor


import sqlite3
conn = sqlite3.connect('test2') # OK MAIS VOIR COMMENT AJOUTEr UNE COLONNE MËME SI PAS UTILE POUR TOUS !!!!!!!!!!!!!!!!!!!!!!!!!
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS users(
id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
name TEXT,
adresse TEXT,
ville TEXT,
tel TEXT

)
""")

conn.commit()


# Insérer des données 1) colonnes = 4 (ne pas tenir compte ID = 0 indexation auto - 2) valeur de la colonne ex: nom, adresse, ville, tel
#--------------------
cursor.execute("""
INSERT INTO users(name, adresse, ville, tel) VALUES(?, ?, ?, ?)""", ("Moulin Jean", "Rue Haute 102", "Mons", "0478149622"))

cursor.execute("""
INSERT INTO users(name, adresse, ville, tel) VALUES(?, ?, ?, ?)""", ("Renard Jean", "Rue Haute 102", "Mons", "0579136521"))

# Insérer des nouvelles données:
# -----------------------------


# Pour modifier des entrées:
# -------------------------

cursor.execute("""UPDATE users SET tel = ? WHERE id = 2""", ("025785879",)) # modification du n° tel.

#********************************************** Toujours enregistrer après modification de table ********************************************************************************************
# ------------------------------------------------
# Récupérer les données


                
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 juin 2020 à 11:25

Est-ce que jai bien utiliser les balises de code?

Non.. il faut que ton code soit dedans....

Comme ça
# python doctor


import sqlite3
conn = sqlite3.connect('test2') # OK MAIS VOIR COMMENT AJOUTEr UNE COLONNE MËME SI PAS UTILE POUR TOUS !!!!!!!!!!!!!!!!!!!!!!!!!
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS users(
id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
name TEXT,
adresse TEXT,
ville TEXT,
tel TEXT

)
""")
0