python对sqlite数据库的操作

 

python对sqlite数据库的操作如下:

需要注意以下三点:

  1. 对数据做更改必须得使用conn.commit()语句变更才生效。
  2. 为了使语句安全,使用这样的格式,传变量。symbol = 'RHAT' c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
  3. 使用完后记得关闭数据库,使用conn.close()语句。
In [1]:
 
 
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
# 创建表
c.execute('''CREATE TABLE stocks
             (date text, trans text, symbol text, qty real, price real)''')
# 插入一行数据
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
# 保存(提交)数据
conn.commit()
# 我们也可以关闭连接,如果我们完成了它。
# 只要确保所有的更改都已提交,否则它们将丢失。
conn.close()
 
 
In [2]:
 
 
conn = sqlite3.connect('example.db')
c = conn.cursor()
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
print(c.fetchone())
 
 
 
('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
In [3]:
 
 
conn.close()
 
 
In [15]:
 
 
conn = sqlite3.connect('example.db')
c = conn.cursor()
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
             ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
             ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
            ]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
conn.commit()
conn.close()
 
 
In [79]:
 
 
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('SELECT * FROM stocks')
print(c.fetchmany(10))
conn.close()
 
 
 
[('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14), ('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0), ('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0), ('2006-04-06', 'SELL', 'IBM', 500.0, 53.0), ('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0), ('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0), ('2006-04-06', 'SELL', 'IBM', 500.0, 53.0), ('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0), ('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0), ('2006-04-06', 'SELL', 'IBM', 500.0, 53.0)]
In [111]:
 
 
conn = sqlite3.connect('example.db')
c = conn.cursor()
t = ('RHAT',20,'BUY') #使用元组的方式,使数据更加安全。
c.execute('SELECT * FROM stocks WHERE symbol=? and price>? and trans=?', t)
#print(c.fetchall()) #显示全部记录。
#print(c.fetchmany(10)) #显示多条记录。
print(c.fetchone()) #显示一条记录。
conn.close()
 
 
 
('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
 

为数据库创建自定义函数

In [112]:
 
 
import hashlib
def md5sum(t):
    return hashlib.md5(t).hexdigest()
con = sqlite3.connect(":memory:")
con.create_function("md5", 1, md5sum)
cur = con.cursor()
cur.execute("select md5(?)", (b"foo",))
print(cur.fetchone()[0])
con.close()
 
 
 
acbd18db4cc2f85cedef654fccc4a4d8

 

posted @ 2020-08-20 16:24  星空沃土  阅读(481)  评论(0编辑  收藏  举报