我有一个SQL数据库,我希望通过python运行查询。我有以下代码:
sql='select * from mf where frequency=220258.0;'
cur.execute(sql)
我直接在sqlite3中使用相同的select命令,但是通过Python没有输出数据库条目。
我做错了什么?
答案 0 :(得分:2)
考虑这个SQLite数据库。
$ sqlite3 so.sqlite3 .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t (f1 integer, f2 text);
INSERT INTO "t" VALUES(1,'foo');
INSERT INTO "t" VALUES(2,'bar');
INSERT INTO "t" VALUES(3,'baz');
COMMIT;
Python像这样连接和查询这个数据库。
import sqlite3
con = sqlite3.connect("so.sqlite3")
cur = con.cursor()
cur.execute("select * from t where f1 = 2")
print(cur.fetchone())
输出:
(2, 'bar')
您必须使用cur.fetchone()
,cur.fetchall()
或cur.fetchmany()
中的一个来获取光标中的行。只做cur.execute()
不会返回行。