sqlite3安装
- Python可以使用sqlite3 模块对SQLite3进行操作。
- Python 2.5.x 以上版本默认自带安装sqlite3模块。
sqlite3示例
连接数据库
dbfile = '../Datas/Dbtest.s3'
#打开数据库
def openSqlit3(dbfile=dbfile):
conn = sqlite3.connect(dbfile)
print('成功打开数据库')
return conn
创建表
sqlc = '''
create table emp
(id int primary key not null,name text not null,age int not null,address char(50),
salary real);'''
def createTable(conn,sql=sqlc):
curs = conn.cursor()
curs.execute(sqlc)
conn.commit()
conn.close()
print('建表成功')
数据查询
#查询数据
sqlq = 'select * from emp'
def quaryData(conn,sqlq=sqlq):
curs = conn.cursor()
curs.execute(sqlq)
res = curs.fetchall()
for index,item in enumerate(res):
print(index,item)
print('查询成功')
插入数据
#插入数据
sqli = 'insert into emp values (?,?,?,?,?)'vali1 = (1,'Ana',32,'Newyork',6000)
vali2 = (2,'Amy',29,'Newyork',8000)
def insertData(conn,sqli=sqli,vali=[vali1,vali2]):
curs = conn.cursor()
# curs.execute(sqli,vali)
curs.executemany(sqli,vali)
conn.commit()
conn.close()
print('插入成功')
更新数据
#更新数据
sqlu = 'update emp set salary=? where id = ?'valu = (6600,1)
def updateData(conn,sql=sqlu,value=valu):
curs = conn.cursor()
curs.execute(sql,value)
conn.commit()
print('数据更新成功')
删除数据
#删除数据
sqld = 'delete from emp where id=:id'
vald = {'id':3}
def deleteData(conn,sql=sqld,value=vald):
curs = conn.cursor()
curs.execute(sql,value)
conn.commit()
print('数据删除成功')
sqlite3模块API
connect类
创建sqlite3连接并执行相关操作。
- connect()
语法:sqlite3.connect(datafile ,timeout=5)
说明:打开一个到 SQLite 数据库文件 datafile的链接,如果给定的数据库名称 datafile 不存在,将创建一个数据库。如果数据库成功打开,则返回一个连接对象。
示例:
#打开数据库
def openSqlit3(dbfile=dbfile):
conn = sqlite3.connect(dbfile)
print('成功打开数据库')
return conn
- commit()
语法:commit(self, /)
说明:提交当前的事务。如果未调用该方法,那么自上一次调用 commit() 以来所做的任何操作对其他数据库连接来说是不可见的。
示例:
conn = openSqlit3(dbfile)
insertData(conn,sql,value)
conn.commit()
conn.close()
- close()
语法:close(self, /)
说明:关闭数据库连接。
注意:close()方法不会自动调用 commit()。如果未调用 commit() 方法,就直接关闭数据库连接,所做的所有更改将全部丢失!
示例:
conn = openSqlit3(dbfile)
conn.commit()
conn.close()
- cursor()
语法:cursor([cursorClass])
说明:创建一个 cursor游标,用于对sqlite3数据库的操作。
示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
- execute()
语法:execute(…)
说明:执行的由游标对象提供的execute()方法的快捷方式,通过调用cursor()创建了一个临时的游标对象,然后通过给定的参数调用游标的 execute 方法。
注意:非标准调用方式。
示例:
conn = openSqlit3(dbfile)
conn.execute('select * from emp')
- executemany()
语法:executemany(self, sql, parameters, /)
说明:执行的由游标对象提供的executemany()方法的快捷方式,通过调用cursor()创建了一个临时的游标对象,然后通过给定的参数调用游标的 executemany 方法。
注意:非标准调用方式。
示例:
conn = openSqlit3(dbfile)
conn.executemany('insert into emp values(?,?,?)',[(1,'张三','Beijing',8000),2,'李四','Tianjin',7800])
conn.commit()
- executescript()
语法:executescript(self, sql_script, /)
说明:执行的由游标对象提供的executescript()方法的快捷方式,通过调用cursor()创建了一个临时的游标对象,然后通过给定的参数调用游标的 executescript 方法。SQL语句之间用“;”分割。
注意:非标准调用方式。
示例:
conn = openSqlit3(dbfile)
sql = 'insert into emp values(3,"Tom",32,"Tokyo",8000);insert into emp values(4,"王二",32,"Shanghai",6000)'
conn.executescript(sql)
conn.commit()
- rollback()
语法:rollback(self, /)
说明:回滚自上一次调用 commit() 以来对数据库所做的更改。
示例:
conn = openSqlit3(dbfile)
sql = 'insert into emp values(3,"Tom",32,"Tokyo",8000);insert into emp values(4,"王二",32,"Shanghai",6000)'
conn.executescript(sql)
conn.rollback()
cursor类
- close()
语法:close(self, /)
说明:关闭游标。
示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.close()
- execute
语法:execute(self, sql, parameters=(), /)
说明:执行一条 SQL 语句。sqlite3 模块支持两种类型的占位符:问号和命名占位符。
示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.excute('insert into emp values(?,?,?,?)',(5,'Amy Chen',29,'Xi an',7700))
curs.commit()
- executemany()
语法:executemany(self, sql, seq_of_parameters, /)
说明:该方法对 seq_of_parameters 中的每个参数执行一次 SQL 命令。
示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.executemany('insert into emp values(?,?,?,?)',[(6,'韩梅梅',27,'Taiyuan',7700),(6,'李磊',27,'Taiyuan',7700)])
curs.commit()
- executescript
语法:executescript(self, sql_script, /)
说明:该方法接收到脚本,会执行多个 SQL 语句。首先执行 COMMIT 语句,然后执行作为参数传入的 SQL 脚本。所有的 SQL 语句应该用分号“;”分隔。
示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
sql = 'insert into emp values(3,"Tom",32,"Tokyo",8000);insert into emp values(4,"王二",32,"Shanghai",6000)'
curs.executescript(sql)
conn.rollback()
- fetchall()
语法:fetchall(self, /)
说明:获取查询结果集中剩余的所有行的列表,没有剩余的行时,返回一个空的列表。
示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.execute('select * from emp')
rlist = curs.fetchall()
- fetchmany()
语法:fetchmany(self, /, size=1)
说明:获取查询结果集中剩余的指定数行的列表,没有剩余的行时,返回一个空的列表。
示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.execute('select * from emp')
rlist = curs.fetchmany(3)
- fetchone()
语法:fetchone(self, /)
说明:获取查询结果集中的下一行,返回一个单一的序列,没有更多可用的数据时,返回 None。
示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.execute('select * from emp')
rlist = curs.fetchone()