python操作数据库模板 MySQLdb模块
来源:互联网 发布:各国知乎 编辑:程序博客网 时间:2024/04/30 15:28
Python中的mysql操作可以使用MySQLdb模块来完成。它符合Python社区设计的Python Database API SpecificationV2.0标准,所以与其他的数据库操作的API,如SQLite等基本类似。
1.连接的建立与释放
建立连接时可用connect函数,它返回一个Connection类型对象
conn = MySQLdb.connect('localhost','root', '123456','test')
connect方法常用的参数有
host:数据库主机名.默认是用本地主机.
user:数据库登陆名.默认是当前用户.
passwd:数据库登陆的秘密.默认为空.
db:要使用的数据库名.没有默认值.
port:MySQL服务使用的TCP端口.默认是3306.
charset:数据库编码。
如果在数据编码设置正确时,向数据库插入数据出现乱码时,可以设置连接的字符集参数charset。
释放连接时可以应用Connection类型对象的close方法。
conn.close()
2.Cursor对象
执行SQL语句前要获得一个指定连接的Cursor对象,由Cursor对象执行SQL查询并获取结果。
获得Cursor对象的方法
cur = conn.cursor()
在默认情况下cursor方法返回的是BaseCursor类型对象,BaseCursor类型对象在执行查询后每条记录的结果以列表(list)表示。如果要返回字典(dict)表示的记录,就要设置cursorclass参数为MySQLdb.cursors.DictCursor类。
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
这个参数也可在调用connect方法建立连接时设置
conn= MySQLdb.connect(host= 'localhost',user = 'root',passwd = '123456',db = 'test' cursorclass = MySQLdb.cursors.DictCursor)
执行结束后可以关闭cursor对象
cur.close()
3.查询,插入,更新、删除操作。
Cursor类型提供了execute方法用于执行SQL操作
execute(query[,parameters])
query是一个SQL字符串,parameters是一个序列或映射,返回值是所影响的记录数
查询
cur.execute("select * from t1 where name = %s and age = %s", ('June', 27))
cur.execute("select * from t1 where name = %(name)s and age = %(age)s", {'name':'June','age':27})
这里和字符串的格式化操作类似,但不管参数是什么类型,都要用'%s'
获取结果
获取结果集有三种方法,fetchone、fetchall和fetchmany,返回结果是一个tuple对象,tuple中的每一个元素对应查询结果中的一条记录。
fetchone()返回结果集中的下一条记录
fetchall()返回结果集中的剩余记录
fetchmany([size])返回结果集中size条记录
插入、更新、删除
cur.execute("insert t1(name, age) values(%s, %s)", ('Jack', 32))
更新和删除的操作与更新、删除类似
除了execute,Cursor类还提供了executemany()方法
executemany(query[, parametersequence])
querey是一个查询字符串,parametersequence是一个参数序列。这一序列的每一项都是一个序列或映射对象。但executemany只适合插入、更新或删除操作,而不适用于查询操作。
cur.execute("insert t1(name, age) values(%s, %s)", (('Jack', 32), ('Junior', 24)))
mysql现在一般会默认InnoDB作为默认引擎,InnoDB引擎执行插入、更新、删除操作后要进行提交,才会更新数据库。
cur.commit()
4.其他操作
Connection类:
rollback() 回滚
Cursor类:
callproc(procname,args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数。
nextset():移动到下一个结果集
执行查询操作或存储过程时可能返回多个结果集,例如:
cur.execute('select * from t1; select * from t2'
0 0
- python操作数据库模板 MySQLdb模块
- 【python系列】mysqldb模块操作数据库
- 【MySQLdb模块】Python操作MySQL数据库
- python数据库操作模块MySQLdb简介
- python数据库模块MySQLdb
- Python MYSQLdb操作数据库
- MySQLdb和Python数据库操作
- python使用MySQLdb操作数据库
- python操作MySQL数据库(MySQLdb
- python数据库操作 - PyMySQL,MySQLdb
- MySQLdb:Python 操作 MySQL 数据库
- Python笔记:MySQLdb模块常用操作
- python中使用MySQLdb模块进行操作
- Python 连接数据库MySQLdb模块的安装
- Windows下安装Python数据库模块--MySQLdb
- python 通过mysqldb 操作mysql数据库
- python 用mysqldb方式操作数据库
- python MySQLdb API的数据库更新操作
- mtk 屏倒过来的宏 是哪个?
- jquery.treeview插件参数介绍
- hdu 1194 Beat the Spread!(水题)
- android 源码 下载 方法
- 这些年收藏的技术大牛博客分享(后续还会继续更新)大家可以在评论中分享自己关注的
- python操作数据库模板 MySQLdb模块
- 登录之后跳转到登录之前的页面 going to previous page after login
- HDU1863(解题报告)
- Android RuntimeException: Binary XML file line #6: You must supply a layout_height attribute.
- 格式化时间格式 GOOD
- __weak 注意事项
- camera的分辨率
- infiniDB无法建表
- 黑马程序员(学习日记3)