Python SQlite数据库操作

# coding:utf-8
# Practice of oprating SQLite with Python
# by redice 2010.11.09
 
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
import sqlite3
 
# 连接数据库,数据库文件不存在则创建
conn = sqlite3.connect("users.db")
conn.text_factory = lambda x: unicode(x, 'utf-8', 'replace')
curs = conn.cursor()
 
# 检查users表是否存在,不存在则创建
# 很强大,不需要使用管理工具事先创建
#curs.execute(create table users(username VARCHAR(20) UNIQUE,password VARCHAR(32),groupe INTEGER);)
curs.execute('''create table if not exists users(username VARCHAR(20) UNIQUE,password VARCHAR(32),groupe INTEGER)''')
# 对数据库有修改的操作要调用commit提交事务
conn.commit()
 
# insert data
# 采用这种方法插入数据,不用担心数据要转义。数据库接口会自动帮你转义
curs.execute("insert into users values(?,?,?);", ('redice',123456,1))
curs.execute("insert into users values(?,?,?);", ('qipeng',123456,0))
curs.execute("insert into users values(?,?,?);", ('zhangsan',123456,0))
curs.execute("insert into users values(?,?,?);", ('laowu',123456,0))
curs.execute("insert into users values(?,?,?);", ('lisi',123456,0))
curs.execute("insert into users values(?,?,?);", ('wangwu',123456,0))     
conn.commit()
       
# 查找数据
# 对数据库没有修改的操作不需要用commit提交事务
curs.execute("select * from users where username=?;" ,(raw_input("input user name:"),))
row = curs.fetchone()
if row:
    print row
 
conn.close()

相关推荐