Python_DB_Api
2016-06-30 22:40
344 查看
python DB API
内容
建立连接connection数据库交互对象cursor
数据库异常类exception
流程
创建connection获取cursor
执行查询、执行命令、获取数据、处理数据
关闭cursor 关闭connection
import MySQLdb print MySQLdb
Python 开发mysql
Python 代码(包含SQL语句)+ Eclipse +Mysql for pythonMysql 服务器 + SQLyog
DB Api -数据库连接对象connection
连接对象:建立Python客户端与数据库的网络连接创建方法:MySQLdb.Connect(参数)
host 字符串 mysql服务器地址
port 数字 mysql服务器端口号
user 字符串 用户名
password字符串 密码
db 字符串 数据库名称
charset字符串 连接编码
connection 对象支持方法
cursor() 使用该连接创建并返回游标
commit() 提交当前事务
rollback() 回滚当前事务
close() 关闭连接
实例
import MySQLdb conn = MySQLdb.Connect( host='127.xxx', port=3306, user='root', passwd='xxxx' db='testli' charset='utf8' ) cursor=conn.cursor() print conn print corsor cursor.close() conn.close()
数据库游标对象cursor
游标对象: 用于执行查询和获取结果cursor对象支持的方法:
execute(op[,args]) 执行一个数据库查询和命令
fetchone() 取得结果的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中剩下的所有行
rowcount 最近一次execute返回数据的行数或者影响行数
close() 关闭游标对象
execute方法:执行SQL、将结果从数据库获取到客户端
execute(sql) 执行SQL(数据库) 结果 缓存到本地客户端
fetch*() 方法:移动rownumber,返回数据,操作对象是本地缓存数据
fetchone() fetchmany(3) fetchall()
实例 select查询数据
步骤:1. 创建connection
2. 获取cursor
3. 使用cursor.execute() 执行select语句
4. 使用cursor.fetch*() 获取并处理数据
5. 关闭cursor 关闭connection
新建table
CREATE TABLE 'user'( 'userid' INT(11) NOT NULL AUTO_INCREMENT, 'username' VARCHAR(100) DEAULT NULL, PRIMARY KEY ('userid) )ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
进行操作测试
import MySQLdb conn = MySQLdb.Connect( host='127.xxx', port=3306, user='root', passwd='xxxx' db='testli' charset='utf8' ) cursor=conn.cursor() sql="select * from user" cursor.execute(sql) print corsor.row.count rs = cursor.fetchone() print rs rs = cursor.fetchmany(3) print rs rs = cursor.fetchall() print rs cursor.close() conn.close()
结果:
9 (1L,u'name1') ((2L,u'name2'),(3L,u'name3'),(4L,u'name4')) ((5L,u'name5'),(6L,u'name6'),(7L,u'name7'),(8L,u'name8'),(9L,u'name9'))
传递变量
import MySQLdb conn = MySQLdb.Connect( host='127.xxx', port=3306, user='root', passwd='xxxx' db='testli' charset='utf8' ) cursor=conn.cursor() sql="select * from user" cursor.execute(sql) rs = cursor.fetchall() for row in rs: print "userid=%s,username=%s" % row cursor.close() conn.close()
结果:
userid=1,username=name1 userid=2,username=name2 userid=3,username=name3 userid=4,username=name4 userid=5,username=name5 userid=6,username=name6 userid=7,username=name7 userid=8,username=name8 userid=9,username=name9
实例 insert、update/delete更新数据库
1. 创建connection,并获取cursor; 2. 使用cursor.execute()执行insert/update/delete语句; 3. 判断是否出现异常,IF FALSE,使用conn.commit()提交事务;IF True,使用conn.rollback() 回滚事务; 4. 关闭cursor 关闭connection
事务:访问和更新数据库的一个程序执行单元
原子性:事务中包括的诸操作要么都做,要么都不做;
一致性: 事务必须使数据库从一致性状态变到另一个一致性状态
隔离性:一个事务的执行不能被其他事务干扰
持久性:事务一旦提交,它对数据库的改变就是永久性的
开发中怎样使用事务?
关闭自动commit:设置conn.autocommit(False)
正常结束事务:conn.commit()
异常结束事务:con.rollback()
import MySQLdb conn = MySQLdb.Connect( host='127.xxx', port=3306, user='root', passwd='xxxx' db='testli' charset='utf8' ) cursor=conn.cursor() sql_insert="insert into user(userid,username) values(10,'name10)" sql_update="update user set username='name91' where userid = 9" sql_delete="delete from user where userid<3" cursor.execute(sql_insert) print cursor.rowcount cursor.execute(sql_update) print cursor.rowcount cursor.execute(sql_delete) print cursor.rowcount conn.commit() cursor.close() conn.close()
相关文章推荐
- Python 装饰器
- python并行运行函数
- Python时间处理总结
- 【配置】PYTHON2.7安装配置
- win7系统安装python,并安装Pycharm集成开发环境+pycharm快捷键
- Python快速处理数据的Broadcasting
- python 遍历文件夹修改文件后缀
- 【Python之Flask】
- python执行系统命令四种方法比较
- Python 核心编程笔记_Chapter_6_Note_2 字符串的内建函数zip_转义字符_字符串术语
- python之打包,解包
- API例子:用Python驱动Firefox采集网页数据
- Python新式类与经典类的区别
- python之关于时间的小玩意,很受启发
- python包管理工具pip安装
- python 远程执行代码
- python之根据数值打印对应数目*号
- python2.7读写xls
- Python学习笔记(三): 收集参数
- python 字符转换