二十、Python与Mysql交互

先安装一个python与MySQL交互的包:MySQL-python

$ gunzip MySQL-python-1.2.2.tar.gz

$ tar -xvf MySQL-python-1.2.2.tar

$ cd MySQL-python-1.2.2

$ python setup.py build

$ python setup.py install

===========================================================================================================================

import MySQLdb

try:

conn=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123456‘,db=‘py_s10‘,port=3306)

cur=conn.cursor() #指针(游标)

insert_data = "insert into students (name,sex,degree) values(%s,%s,%s,)" #插入数据保存在insert_data变量中,students表的结构为id, #name,sex,degree

cur.excute(insert_data,("jack",3,99)) #这里我执行插入数据操作

cur.execute(‘select * from students‘) #执行命令

print (cur.fetchone()) #取得一条数据(第一条)

print (cur.fetchall()) #取得所有数据

query_res = cur.fetchmany(4) #取得4条数据

conn.rollback() #我在提交之前回滚下,它的数据是提交不到数据库的

conn.commit() #提交到数据库,如果没有这条,只是写到了内存,没有真正写入数据库

cur.close()

conn.close()

except MySQLdb.Error,e:

print "Mysql Error msg:" ,e

一次性插入多条数据(谨慎操作):

import MySQLdb

try:

conn=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123456‘,db=‘py_s10‘,port=3306)

cur=conn.cursor()

data_list = []

for i in range(10):

data_list.append((‘rain_%s‘ % i,i,i))

insert_data = "insert into students (name,sex,degree) values(%s,%s,%s,)"

cur.excutemany(insert_data,data_list) #这里我就一次性插入了10条数据

cur.execute(‘select * from students‘)

cur.scroll(2,mode=‘ralative‘) #从现在的光标位置继续往下找

print (cur.fetchone())

print (query_res)

cur.close()

conn.close()

except MySQLdb.Error,e:

print "Mysql Error msg:" ,e

==============================================================================================================================

常用函数:

对事务操作的支持,标准的方法

commit() 提交

rollback() 回滚 #提交了之后就不能回滚了

cursor用来执行命令的方法:

callproc(self,procname,args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数

excute(self,query,args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数

executemany(self,quiry,args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

nextset(self):移动到下一个结果集

cursor用来接收返回值的方法:

fetchall(self):接收全部的返回结构行

fetchmany(self,size=None):接收size条返回结果行,如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据

fetchone(self):返回一条结果行

scroll(self,value,mode=‘relative‘):移动指针到某一行,如果mode=‘relative‘,则表示从当前所在行移动value条,如果mode=‘absolute‘,则表示从结果集的第一行移动value条(不常用)

原文地址:https://www.cnblogs.com/steven9898/p/11329454.html

时间: 2024-11-01 20:23:19

二十、Python与Mysql交互的相关文章

mysql 学习记录(二十五)--mysql日志

一.理论: 1.错误日志: a.记录了mysqld启动和停止时以及出错时的相关信息,当数据库出现故障导致无法启动时可以先查看此信息. b.可用--log-error来指定mysqld保存错误日志文件的位置 2.二进制日志: a.statement:记录的都是语句.优点:日志记录清晰易读.日志量少.对I/O影响较小,缺点:在某些情况下slave的日志复制会出错 b.row:将每一行的变更记录到日志中,而不是记录sql语句.优点:记录每一行的数据变化细节,不会出现某些情况下无法复制的情况,缺点:日志

python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库

前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库. 准备 MySQL数据库使用的是上一节中的docker容器 “test-mysql”. Python 操作 MySQL 我们使用的IDE是 “神奇” 的 pycharm: 1. 首先新建一个python的项目,并且安装 “mysql-connector-python”. “mysql-connector-python” 是MySQL官方对于python的数据驱动,感兴趣的童鞋可以移步这里: https://dev.mysql

python学习-python与mysql交互

一.使用pymysql进行交互 安装::: pip install pymysql pymysql主要是使用原生sql与mysql进行交互,示例如下: import pymysql #创建连接 conn = pymysql.connect(host='192.168.0.26',port=3306,user='xll', passwd='xll123',db='mysql' ) #创建游标 cursor = conn.cursor() #执行sql,并返回受影响的行数 effect_row =

Java、PHP、Python与MySQL交互的性能测试

这几天看源码弄清了一件事:WEB服务器接收浏览器请求.将请求传给PHP/Python进程(FCGI等).与数据库进行交互都是用socket(套接字). 也就是说,这些行为都是进程间通信.一台WEB服务器在硬件.操作系统不变的情况下,它的性能主要取决于socket通信的速度.如果所有进程都在一台服务器上的话,这个速度就取决于通信的效率了. 例如与MySQL数据库交互时,程序会调用驱动程序来访问数据库,这个驱动程序主要做这几件事: 1.创建socket,连接到MySQL. 2.将程序调用的API翻译

python与mysql交互中的各种坑

开始学python 交互MySQLdb,踩了很多坑 第一个 %d format: a number is required, not str 参照以下博客: https://blog.csdn.net/u011878172/article/details/72599120 # -*- coding: utf-8 -*- import MySQLdb try: conn=MySQLdb.connect(host='localhost',port='3306',db='test',user='roo

二十、二十一天MySql数据库、jdbc

1 数据约束               1.1 简介                    给表添加数据约束,从而约束用户操作表数据的行为.                 1.2 默认值约束 注意: 当前没有插入默认值字段的时候,默认值才会起作用   -- 1.1 默认值(default)CREATE TABLE test(         NAME  VARCHAR(20),         gender  VARCHAR(2) DEFAULT '男') INSERT INTO test(

php分享二十八:mysql运行中的问题排查

一:杀掉mysql连接的方法: kill thread_id:  杀掉当前进程,断开连接 kill query thread_id: 只杀掉某连接当前的SQL,而不断开连接. 批量杀死MySQL连接的几种方法: 1> 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令. mysql> select concat('KILL ',id,';') from information_schema.p

python与mysql交互之虚拟环境搭建

在使用命令 sudo pip install 包名称   进行包的安装时,会安装到/usr/local/lib/python2.7/dist-packages下.接下来问题就出来了,如果在一台机器上,想开发多个不同的项目,需要用到同一个包的不同版本,如果还使用上面的命令,在同一个目录下安装或者更新,其它的项目必须就无法运行了,怎么办呢? 解决方案:虚拟环境 虚拟环境可以搭建独立的python运行环境,使得单个项目的运行环境与其它项目互不影响 所有的虚拟环境,都位于/home/python下的隐藏

(二十)python 3 匿名函数

匿名函数lambda Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数.这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配.其语法是: lambda [arg1[, arg2, ... argN]]: expression 其中,参数是可选的,如果使用参数的话,参数通常也会在表达式之中出现. 无参数 # 使用def定义函数的方法 def true(): return True #等价的lambda表达式 >>> lambda