一 sqlite 与 python 的类型对应
二 实例
def sqlite_basic():
# Connect to db
conn = sqlite3.connect(‘test.db‘)
# create cursor
c = conn.cursor()
# Create table
c.execute(‘‘‘
create table if not exists stocks
(date text, trans text, symbol text,
qty real, price real)
‘‘‘
)
# Insert a row of data
c.execute(‘‘‘
insert into stocks
values (‘2006-01-05‘,‘BUY‘,‘REHT‘,100,35.14)
‘‘‘
)
# query the table
rows = c.execute("select * from stocks")
# print the table
for row in rows:
print(row)
# delete the row
c.execute("delete from stocks where symbol==‘REHT‘")
# Save (commit) the changes
conn.commit()
# Close the connection
conn.close()
def sqlite_adv():
conn = sqlite3.connect(‘test2.db‘)
c = conn.cursor()
c.execute(‘‘‘
create table if not exists employee
(id text, name text, age inteage)
‘‘‘)
# insert many rows
for t in [(‘1‘, ‘itech‘, 10),
(‘2‘, ‘jason‘, 10),
(‘3‘, ‘jack‘, 30),
]:
c.execute(‘insert into employee values (?,?,?)‘, t)
# create index
create_index = ‘CREATE INDEX IF NOT EXISTS idx_id ON employee (id);‘
c.execute(create_index)
# more secure
t = (‘jason‘,)
c.execute(‘select * from employee where name=?‘, t)
# fetch query result
for row in c.fetchall():
print(row)
conn.commit()
conn.close()
def sqlite_adv2():
# memory db
con = sqlite3.connect(":memory:")
cur = con.cursor()
# execute sql
cur.executescript(‘‘‘
create table book(
title,
author,
published
);
insert into book(title, author, published)
values (
‘AAA book‘,
‘Douglas Adams‘,
1987
);
‘‘‘)
rows = cur.execute("select * from book")
for row in rows:
print("title:" + row[0])
print("author:" + row[1])
print("published:" + str(row[2]))
def sqlite_adv3():
import datetime
# Converting SQLite values to custom Python types
# Default adapters and converters for datetime and timestamp
con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
cur = con.cursor()
cur.execute("create table test(d date, ts timestamp)")
today = datetime.date.today()
now = datetime.datetime.now()
cur.execute("insert into test(d, ts) values (?, ?)", (today, now))
cur.execute("select d, ts from test")
row = cur.fetchone()
print today, "=>", row[0], type(row[0])
print now, "=>", row[1], type(row[1])
cur.execute(‘select current_date as "d [date]", current_timestamp as "ts [timestamp]" from test‘)
row = cur.fetchone()
print "current_date", row[0], type(row[0])
print "current_timestamp", row[1], type(row[1])
#sqlite_basic()
#sqlite_adv()
#sqlite_adv2()
#sqlite_adv3()
完!