SQLite3数据库是将整个数据库(定义、表、索引和数据)都存储在主机端上单一的一个文件中,所以体积很小,一些基本的信息系统都使用它作为基础的数据库。SQLite的数据库权限只依赖于文件系统,没有用户账户的概念。 它的主要特点如下。
零配置:不用安装,不用配置,不用启动可移植:它运行在Windows、Linux、BSD及其他系统中,还可以嵌入进去。紧凑:SQLite被设计成轻量级,自包含的。依靠一个头文件、一个lib库你就可以使用关系数据库了python3用sqlite3包来操作SQLite3数据库,主要有以下步骤:
导入相关库或模块(sqlite3)连接数据库并获取数据连接对象(connect())获取游标对象(con.cursor())使用游标对象的方法(execute()、executemany()、fechall(I)等)来操作数据库,对记录的进行插入、修改和删除,以及显示相关记录。关闭游标对象和数据库连接(close())sqlite3.connect()连接函数的常用参数有两个:
database 就是用字符串形式填写出指定数据库的名称,如果数据库文件位置不是当前目录,则必须要写出其相对或绝对路径。还可以用":memory:"表示使用临时放入内存的数据库,当程序退出,数据消失timeout 表示访问的超时设定实验效果: 实验代码:
import sqlite3 import random src = 'abcdefghijklmnopqrstuvwxyz' def get_str(x,y): str_sum = random.randint(x,y) astr = '' for i in range(str_sum): astr += random.choice(src) return astr # 输出指定记录 def output(): cur.execute('select * from mytab') for sid,name,ps in cur: print(sid,' ',name,' ',ps) # 输出全部记录 def output_all(): cur.execute('select * from mytab') for item in cur.fetchall(): print(item) # def get_data_list(n): res = [] for i in range(n): res.append((get_str(2,4),get_str(8,12))) return res if __name__ == '__main__': print('建立连接...') con = sqlite3.connect(':memory:') print('建立游标...') cur = con.cursor() print('建立一张表mytab...') #cur.execute('drop table mytab') cur.execute('create table mytab(id integer primary key autoincrement not null,name text,passwd text)') print('插入一条记录...') cur.execute('insert into mytab (name,passwd) values(?,?)',(get_str(2,4),get_str(8,12),)) print('显示所有记录....') output() print('批量插入多条记录...') cur.executemany('insert into mytab (name,passwd)values(?,?)',get_data_list(3)) print('显示所有记录...') output() print('批量插入多条记录...') cur.executemany('insert into mytab(name,passwd) values(?,?) ',get_data_list(3)) print('显示所有记录...') output_all() print('更新一条记录....') cur.execute('update mytab set name =? where id=?',('aaa',1)) print('显示所有记录...') output() print('删除一条记录') cur.execute('delete from mytab where id=?',(3,)) print('显示所有记录') output() cur.close() con.close()