import sqlite3
#创建/打开数据库需指定数据库路径,如果数据库存在则打开。不存在则创建一个新的数据库
con = sqlite3.connect(r'D:\数据库\sqlite\test.db')
"""
connect 返回 con 对象有以下几个方法:
cursor() 创建一个游标对象
commit() 事务提交
rollback() 事务回滚
close() 关闭数据库连接
"""
#创建游标对象
cur = con.cursor()
"""
游标对象有以下方法支持数据库操作:
excute() 执行 sql 语句
executemany() 用来执行多条 sql 语句
close() 关闭游标
fetchone() 从结果中取一条记录,并将游标指向下一条记录
fetchmany() 从结果中取多条记录
fetchall() 从结果中取出所有记录
scroll() 用于游标滚动
"""
#游标对象创建表
cur.execute('create table person (id integer primary key,name varchar(20),\
age integer)')
#插入数据,两种方法
#一:直接构造一个插入 sql 语句,但这种做法非常不安全,容易导致 sql 注入
data = "0,'zjk',20"
cur.execute('insert into person values (%s)' % data)
#二:使用占位符“?”来规避这个问题
cur.execute('insert into person values (?,?,?)',(1,'aa',20))
#还可以使用 excutemany() 执行多条 sql 语句,比循环执行效率高
cur.executemany('insert into person values (?,?,?)',[(3,'jcak',15),
(4,'kk',19)])
#插入后都不会立即生效,要进行提交
con.commit()
#如果出现错误,回滚为原来的状态
con.rollback()
#查询数据
"""
fetchall:获取所有数据,返回一个二维列表
fetchone:获取其中一个结果,返回元组
"""
cur.execute('select * from person')
res = cur.fetchall()
for line in res:
print(line)
print()
cur.execute('select * from person')
res = cur.fetchone()
print(res)
print()
#修改和删除数据
cur.execute('update person set name=? where id=?',('rose',1))
cur.execute('delete from person where id=?',(0,))
con.commit()
#查看修改以后的结果
cur.execute('select * from person')
res = cur.fetchall()
for line in res:
print(line)
print()
#执行完关闭游标
con.close()
#关闭数据库
con.close()
"""
插入或修改中文数据时,记得在中文字符串之前加上“u”
"""
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。