使用python3内置的sqlite3库,首先连接到数据库,创建并使用游标Cursor,再执行SQL语句,最后提交事务以实现sqlite3数据库中的CRUD新增数据,查询数据,更新数据和删除数据的常用操作。
SQLite是一种嵌入式数据库,它的数据库就是一个文件,SQLite能保存可以保存空值、整数、浮点数、字符串和blob 。sqlite相关教程动手学sqlite。
连接数据库(如果不存在则创建) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import sqlite3 # 连接数据库(如果不存在则创建) conn = sqlite3.connect('test.db' ) print("Opened database successfully" ) # 创建游标 cursor = conn.cursor()# 关闭游标 cursor.close()# 提交事物 conn.commit()#关闭游标 cursor.close()#关闭连接 conn.close()
创建表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import sqlite3 # 连接数据库(如果不存在则创建) conn = sqlite3.connect ('test.db' ) # 创建游标cursor = conn.cursor () # 创建表sql = 'CREATE TABLE Student(id integer PRIMARY KEY autoincrement, Name varchar(30), Age integer)' cursor .execute (sql ) # 提交事物 conn.commit () #关闭游标cursor .close () #关闭连接 conn.close ()
插入数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import sqlite3 # 连接数据库(如果不存在则创建) conn = sqlite3.connect ('test.db' ) # 创建游标cursor = conn.cursor () # 插入数据1 sql = "INSERT INTO Student(Name, Age) VALUES('lucy', 22)"cursor .execute (sql ) # 插入数据 2 data = ('jack' , 21 ) sql = "INSERT INTO Student(Name, Age) VALUES(?, ?)"cursor .execute (sql , data) # 提交事物 conn.commit () #关闭游标cursor .close () #关闭连接 conn.close ()
更新记录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import sqlite3 # 连接数据库(如果不存在则创建) conn = sqlite3.connect ('test.db' ) # 创建游标cursor = conn.cursor () cursor .execute ("UPDATE Student SET name = ? where id = ?",("lily","3")) # 提交事物 conn.commit () #关闭游标cursor .close () #关闭连接 conn.close ()
删除记录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import sqlite3 # 连接数据库(如果不存在则创建) conn = sqlite3.connect ('test.db' ) # 创建游标cursor = conn.cursor () cursor .execute ("delete from Student where id=?",("1",)) #逗号不能省,元组元素只有一个的时候一定要加逗号,将删除lucy # 提交事物 conn.commit () #关闭游标cursor .close () #关闭连接 conn.close ()
查询数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 import sqlite3 # 连接数据库(如果不存在则创建) conn = sqlite3.connect('test.db' ) # 创建游标cursor = conn.cursor () # 查询数据1 sql = "select * from Student" values = cursor .execute (sql)for i in values: print (i) # 查询数据 2 sql = "select * from Student where id=?" values = cursor .execute (sql, (1 ,))for i in values: print ('id:' , i[0 ]) print ('name:' , i[1 ]) print ('age:' , i[2 ]) # 提交事物 conn.commit() #关闭游标cursor .close () #关闭连接 conn.close ()
删除表格 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import sqlite3# 连接数据库(如果不存在则创建) conn = sqlite3.connect('test.db' )# 创建游标 cursor = conn.cursor()#删除表格Student cursor.execute("DROP TABLE Student" )# 提交事物 conn.commit()#关闭游标 cursor.close()#关闭连接 conn.close()
通过以上的demo可以精炼出函数来执行增删改查。demo如下
增加