在Python中从SQLite数据库中提取值

时间:2012-02-06 15:42:01

标签: python sqlite

我试图弄清楚如何使用python使用SQLite数据库,但似乎被卡住了。我想我错过了一些基本的东西。我正在学习本教程:http://docs.python.org/library/sqlite3.html

我设置了一个数据库,使其包含以下信息:

import sqlite3
conn = sqlite3.connect('SQL_test_3') #this creates a seperate file
c = conn.cursor()
c.execute('''create table stocks
(date text, trans text, symbol text,
 qty real, price real)''')
data = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
          ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
          ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
         ]

for t in data:
    c.execute('insert into stocks values (?,?,?,?,?)', t)

conn.commit()

c.close()

当我尝试提取数据时出现了问题;本教程解释了如果满足其中一个特征,如何提取数据,例如:

(当我在另一个文件中打开数据库时)

import sqlite3

conn = sqlite3.connect('SQL_test_3')

c = conn.cursor()

price = 53
t = (price,)
c.execute('select * from stocks where price=?', t)
print c.fetchall()

上述工作非常完美,但是如果我想要所有价格大于50的资产的提取信息怎么办,我就做不到。价格> 50和价格>?不起作用......

所以我的问题是:

1)当关键标准适合给定范围时,如何提取资产的信息,例如价格> 50或40<价格< 70。

2)如果我想要有两个标准,例如IBM股票的信息,那该怎么办? 如果股票交易价格大于50,那么。

我觉得我的问题非常初学/基础,但我在教程中找不到答案。

感谢任何帮助。

先谢谢。

1 个答案:

答案 0 :(得分:2)

c.execute('select * from stocks where price > ?', (50,))

c.execute('select * from stocks where price between ? and ?', (40, 70))

c.execute('select * from stocks where price > ? and symbol = ?', (50, 'IBM'))

这样可以,还是需要通用解决方案?