2010-12-03 5 views
0

Je viens de télécharger sqlite3.exe. Il s'ouvre comme une invite de commande. J'ai créé un test de table & inséré quelques entrées dedans. J'ai utilisé .backup test juste au cas où. Après avoir quitté le programme à l'aide de .exit et l'avoir rouvert, je ne trouve pas le tableau répertorié sous .tables et je ne peux pas exécuter de requête à ce sujet.Comment créer des tables dans sqlite 3?

J'ai besoin de lancer rapidement un programme python open source qui utilise cette table & bien que j'ai travaillé avec MySQL, je n'ai aucune idée de sqlite. J'ai besoin des bases minimales de sqlite. Quelqu'un peut-il me guider à travers cela ou au moins me dire comment stocker de façon permanente mes tables.

J'ai mis ce sqlite3.exe dans le dossier Python en supposant que python serait alors capable de lire les fichiers sqlite. Des idées à ce sujet?

Répondre

4

sqlite is built in to Python.
Vous devriez pouvoir accéder à votre table comme ceci:

import sqlite3 
conn = sqlite3.connect('/path/to/my.db') 
curs = conn.cursor() 
curs.execute("SELECT a_column FROM my_table;").fetchone() 
curs.close() 
conn.close() 

Vous pouvez exécuter vos instructions DDL de Python ainsi.
Assurez-vous de commit les modifications.

curs.execute("CREATE TABLE my_table (a_column text);") 
conn.commit() 
+0

Comment créer la première base de données. Je n'ai pas de my.db? – Gaurav

+0

@Gaurav: 'conn = sqlite3.connect ('/ chemin/vers/my.db')' créera votre base de données si elle n'existe pas déjà. – bernie

+0

Merci. J'ai utilisé 'conn = sqlite3.connect ('/ Data/patent.db')'. Savez-vous où ce fichier est créé parce que j'ai besoin de supprimer cette table que j'ai créée appelée «inv». J'ai utilisé 'c.execute (" drop table patent.inv ")' mais j'obtiens ceci: 'OperationalError: pas une telle table: patent.inv' – Gaurav

0

Exécutez simplement sqlite3 foo.db? Cela stockera définitivement tout ce que vous faites par la suite dans ce fichier. (Pas besoin de .backup.)

1

Pourquoi avez-vous téléchargé du sqlite3.exe? Python devrait être livré avec sqlite3 déjà à bord. import sqlite3 est tout ce dont vous avez besoin de faire tant que vous avez une distribution Python récente. Pour votre problème: Je suppose que sqlite3 crée une table en mémoire par défaut. À l'aide de Python, vous devez dbConn = sqlite3.connect("somefile") pour vous connecter à une base de données. Ensuite, vous pouvez utiliser dbCursor = dbConn.cursor() pour vous connecter à ce fichier. Le curseur peut exécuter des commandes SQL en appelant sa méthode execute (commande). Par exemple: dbConn.execute("create table test (row text, otherrow real)") Enfin, vous devez appeler dbConn.commit() pour enregistrer tout ce que vous avez modifié dans la base de données. La documentation Python connaît tout le reste: http://docs.python.org/library/sqlite3.html

+0

qu'est ce que c'est "un fichier"? Si je viens d'installer python et que je n'ai pas de base de données, quel est le fichier auquel je me connecte? – Gaurav

Questions connexes