第十四天 第十一章 SQLite3数据库
作者:互联网
# 数据库编程接口 # 在Python Database API 2.0规范中,定义了Python数据库API接口的各个部分,如模块接口、连接对象、游标对象、类型和构造器以及 # DB API的可选扩展以及可选的错误处理机制等 # 数据库连接对象:主要提供获取数据库游标对象和提交、回滚事务的方法,以及关闭数据库连接。 # connect()函数获取连接对象,有多个参数,具体使用哪个参数,取决于使用的数据库类型 # dsn:数据源名称,给出该参数表示数据库依赖 # user:用户名 # password:用户密码 # host:主机名 # database:数据库名称 # 连接对象的方法 # close():关闭数据库连接 # commit():提交事务(用于维护数据库的完整性) # rollback():回滚事务 # cursor():获取游标对象,操作数据库,如执行DML操作,调用存储过程等 # 游标对象:用于指示抓取数据库操作的上下文,主要提供执行SQL语句、调用存储过程、获取查询结果等方法。 # 游标对象的属性:1 description 数据库列类型和值的描述信息 2 rowcount 回返结果的行数统计信息,如SELECT,UPDATE,CALLPROC等 # 游标对象方法如下: # callproc(procname,[,parameters]) 调用存储过程,需要数据库支持 # close() 关闭当前游标 # execute(operation[,parameters]) 执行数据库操作,SQL语句或者数据库命令 # executemany (operation,seq_of_params) 用于批量操作,如批量更新 # fetchone() 获取查询结果集中的下一条记录 # fetchmany(size) 获取指定数量的记录 # fetchall() 获取结果集的所有所有记录 # nextset() 跳至下一个可用的结果集 # arraysize 指定使用fetchmany()获取的行数,默认为1 # setinputsizes(sizes) 设置在调用execute*()方法时分配的内存区域大小 # setoutputsize(sizes) 设置列缓冲区大小,对大数据列(如LONGS和BLOBS)尤其有用 # =================== 使用 SQLite =================== import sqlite3 # 连接数据库文件:mrsoft.db,如果该文件不存在则会自动创建 conn = sqlite3.connect('mrsoft.db') # 创建一个cursor游标对象 cursor = conn.cursor() try: # 执行一条SQL语句,创建user表,表内创建2个字段,自增序号:id和文本:name cursor.execute('create table user (id int(10) primary key, name varchar(20))') # 再次执行本程序,此处会报错,因为数据库中已经有了user这个表,不能重复创建 except: print('表已经存在,不能重复创建') ## insert into 表名(字段1,字段2。。。) values(值1,值2。。。) # cursor.execute('insert into user(id,name) values(1,"mrsoft")') # cursor.execute('insert into user(id,name) values(2,"zac")') # cursor.execute('insert into user(id,name) values(3,"loveyou")') # select 字段1,字段2。。。 from 表名 where 查询条件 cursor.execute('select * from user') # sqlText = cursor.fetchall() # print(sqlText) # sqlText = cursor.fetchmany(2) # print(sqlText) # sqlText = cursor.fetchone() # print(sqlText) # # 使用点位符和元组的方式可以避免SQL注入的风险,推荐使用这种方式 # cursor.execute('select * from user where id > ?',(1,)) # sqlText = cursor.fetchall() # print(sqlText) # # 修改数据库用户信息 # cursor.execute('update user set name = ? where id > ?',('zack_love',1)) # cursor.execute('select * from user') # sqlText = cursor.fetchall() # print(sqlText) # 删除用户数据信息 cursor.execute('delete from user where id = ?',(2,)) cursor.execute('select * from user') sqlText = cursor.fetchall() print(sqlText) # 关闭游标 cursor.close() # 提交事务 conn.commit() # 关闭数据库 conn.close()
标签:execute,第十一章,数据库,游标,cursor,第十四天,user,SQLite3,sqlText 来源: https://www.cnblogs.com/zack6688/p/13575556.html