Python 操作Mysql
一、Mysql基本操作
1、创建test数据库
2、新建一张表
3、向msg表中插入数据
4、对表中的数据进行增删改查
安装mysql
然后连接数据库:
cmd->mysql -uroot -p123456
show databases;
use test;
show tables;
二、Python操作mysql
import pymysql
conn = pymysql.connect(host='192.168.10.124',port=3306,user='root',\
passwd='root',db='cloud',charset='utf8') #创建数据路连接
cursor = conn.cursor() #想要操作数据库就需要创建游标
sql = '''具体的sql语句
具体的sql语句
具体的sql语句
'''
cursor.execute(sql,param) #写入的sql语句,返回的是受影响的条目数量
cursor.close() #关闭游标
conn.commit() #提交事务,必须要执行,否则数据不会被真正插入
connrollback() #发生错误的时候进行回滚
conn.close() #关闭数据库连接
三、Python 操作mysql-插入数据
1、直接插入一条数据
cur.execute("insert into msg(title,name,cotent) values ('python','zz','test mysql insert')")
2、插入多条数据
# 用executemany()方法可以一次插入多条值,执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
例子:向user表中插入一百条数据
create table `user`(`id` int primary key auto_increasement,`name` varchar(10),`gender` varchar(10));
print(sql)
需要去掉sql最后的逗号‘,’
sql=sql[:-1]
cur.execute(sql)
conn.commit()
四、Python操作mysql-查询数据
cur.execute("select * from user")
>>>100L
上面语句只能返回记录数,不能答应全部内容
1、fetchall():接收全部的返回结果行
展示表中全部数据:cur.fetchall(),
再次执行cur.fetchall()----此时游标已经移动到了最后,此时结果时空的
2、fetchmany(size=None):接收size条返回结果行,如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据
3、fetchone():返回一条结果行
4、scroll(value,mode='relative'):移动指针到某一行,如果mode='relative',则表示当前所在行移动value条;如果mode='absolute',则表示从结果集的第一行移动value条
五、Python操作mysql-执行事务
事务机制可以确保数据一致性。
事务具有四个属性:原子性、一致性、隔离性、持久性。
这四个属性通常称为ACID特性。
原子性:一个事务是不可分割单位,事务中包括的事务要么都做,要么都不做;
隔离性:一个事务的执行不能被其他事务干扰,并发事务之间不能相互干扰;
持久性:一个事务一旦提交,就不会变化
Python DB API 2.0的事务提供了两个方法commit或rollback
一个游标开启,就相当于一个事务开启,commit就是提交这个事务,rollback就是回滚这个事务
commit和rollback应用:
最后要关闭游标,再关闭数据路连接,释放资源
cur.close()
conn.close()
posted on 2017-08-22 14:10 sunshine_zhf 阅读(167) 评论(0) 编辑 收藏 举报