Pour une raison quelconque, je n'arrive pas à trouver un moyen d'obtenir les équivalents des commandes shell interactives de sqlite :
.tables
.dump
en utilisant l'API Python sqlite3.
Il y a quelque chose comme ça ?
Pour une raison quelconque, je n'arrive pas à trouver un moyen d'obtenir les équivalents des commandes shell interactives de sqlite :
.tables
.dump
en utilisant l'API Python sqlite3.
Il y a quelque chose comme ça ?
En Python :
con = sqlite3.connect('database.db')
cursor = con.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
print(cursor.fetchall())
Attention à mon autre réponse . Il existe un moyen beaucoup plus rapide d'utiliser les pandas.
Vous pouvez récupérer la liste des tables et des schémas en interrogeant la table SQLITE_MASTER :
sqlite> .tab
job snmptarget t1 t2 t3
sqlite> select name from sqlite_master where type = 'table';
job
t1
t2
snmptarget
t3
sqlite> .schema job
CREATE TABLE job (
id INTEGER PRIMARY KEY,
data VARCHAR
);
sqlite> select sql from sqlite_master where type = 'table' and name = 'job';
CREATE TABLE job (
id INTEGER PRIMARY KEY,
data VARCHAR
)
@jbuddy_13 sqlite>
est l'invite du client en ligne de commande sqlite. Le but de l'exemple était de montrer comment on peut interroger la base de données pour lister les tables et les schémas.
Apparemment, la version de sqlite3 incluse dans Python 2.6 possède cette capacité : http://docs.python.org/dev/library/sqlite3.html
# Convert file existing_db.db to SQL dump file dump.sql
import sqlite3, os
con = sqlite3.connect('existing_db.db')
with open('dump.sql', 'w') as f:
for line in con.iterdump():
f.write('%s\n' % line)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Je suggère de renommer la question en quelque chose de non spécifique à Python puisque la réponse est en fait universelle pour les interfaces qui utilisent SQL.
2 votes
C'est vrai, bien que je m'attendais à une API python lorsque je l'ai demandé. Je vais essayer de trouver le bon nom.
3 votes
Si vous voulez afficher les tables à partir de l'invite de commande sqlite3, reportez-vous à stackoverflow.com/questions/82875/ . Si vous utilisez le paquetage Python sqlite3, voir la réponse de Davoud Taghawi-Nejad ici. Je suggère que le PO rajoute Python dans le titre de la question et sélectionne la réponse de Davoud. J'ai trouvé cette page en googlant "show tables Python sqlite3" puisque Google connaît l'ancien titre de la question. Les recherches au sein de SO n'aboutiraient pas ici. Sans l'angle Python, la question dupliquée liée 82875 a reçu beaucoup plus de sagesse de la part de la foule.