sqlite3是一个轻量级的数据库,直接在本地建一个数据库,看如下实例:
#! usr/bin/python3.5
# -*- coding:utf-8 -*-
import sqlite3
conn = sqlite3.connect("example.db")
c = conn.cursor()
# Never do these
# symbol = 'RHAT'
# c.execute("SELECT * FROM stocks WHERE symbol '%s'" %symbol)
# Do this instead
t = ('RHAT')
c.execute('SELECT * FROM stocks WHERE symbol = (?)', [t])
print(c.fetchone())
# Largest example that inserts many records at a time
purchases = [('2018-03-28', 'BUY', 'IMB', 1000, 45.00),
('2018-03-24', 'BUY', 'MSFT', 1000, 72.00),
('2018-04-28', 'BUY', 'ALI', 1000, 90.00)]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
for row in c.execute('SELECT * FROM stocks ORDER BY price'):
print(row)
输出结果:如下图
而如果把c.execute('select * from stocks where symbol = ?', t)就会报错,如下:
这是因为:需要传递的是一个序列,但是,由于前面的逗号(,)导致c.exectute()里面的是一个元组。