一 sqlite 与 python 的类型对应
![python类库26[sqlite]_第1张图片](http://img.e-com-net.com/image/info5/74c75eec8a4544498b0d0a01beba29d5.png)
二 实例
import sqlite3
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()
完!