使用Python对SQLite数据库操作

发表于:2017-4-07 09:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:骑着螞蟻流浪    来源:51Testing软件测试网采编

  SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在IOS和Android的APP中都可以集成。
  Python内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。
  在使用SQLite前,我们先要搞清楚几个概念:
  表是数据库中存放关系数据的集合,一个数据库里面通常都包含多个表,比如学生的表,班级的表,学校的表,等等。表和表之间通过外键关联。
  要操作关系数据库,首先要连接到数据库,一个数据库连接称为Connection。
  连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。
  一、连接数据库
  import sqlite3
  #数据库名
  db_name = "test.db"
  #表名
  table_name = "catalog"
  conn = sqlite3.connect(db_name)
  二、打开游标
  rs = conn.cursor()
  三、建表
  sql = 'create table ' + table_name + ' (id varchar(20) primary key, pid integer, name varchar(10))'
  try:
  rs.execute(sql)
  print("建表成功")
  except:
  print("建表失败")
  四、增,删,改,查操作
# 增:增加三条记录
sql = "Insert into " + table_name + " values ('001', 1, '张三')"
try:
rs.execute(sql)
#提交事务
conn.commit()
print("插入成功")
except:
print("插入失败")
sql = "Insert into " + table_name + " values ('002', 2, '李四')"
try:
rs.execute(sql)
#提交事务
conn.commit()
print("插入成功")
except:
print("插入失败")
sql = "Insert into " + table_name + " values ('003', 3, '王五')"
try:
rs.execute(sql)
#提交事务
conn.commit()
print("插入成功")
except:
print("插入失败")
# 删:删除pid等于3的记录
sql = "Delete from " + table_name + " where pid = 3"
try:
rs.execute(sql)
conn.commit()
print("删除成功")
except:
print("删除失败")
# 改:将pid等于2的记录的pid改为1
sql = "Update " + table_name + " set pid = 1 where pid = 2"
try:
rs.execute(sql)
conn.commit()
print("修改成功")
except:
print("修改失败")
# 查
# 查询数据库中所有表名
sql = "Select name From sqlite_master where type = 'table'"
res = rs.execute(sql)
print(res.fetchall())
# 查询表中所有记录
sql = "Select * from " + table_name
try:
res = rs.execute(sql)
print(res.fetchall())
except:
print([])
  五、关闭游标
  rs.close()
  六、关闭数据库连接
  conn.close()
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号