我在这里用的是python中pymysql连接MySQL数据库,如果电脑中没有安装pymysql,可以直接再命令行通过 pip install pymysql 安装
一、通过python脚本向mysql数据库插入单条数据
写sql语句时,不管字段为什么类型,占位符统一使用%s这里记录两种插入单条数据的方式:1、直接用execute方法执行sql语句
#导入pymysql包 import pymysql # 创建数据库连接 conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" ) #获取一个游标对象 cursor=conn.cursor() #执行数据库插入操作 cursor.execute('insert into student(id,name,age) values (123456,"tom",12)') #提交 conn.commit() #关闭连接 conn.close() cursor.close()
2、将sql语句单独出来,在语句中用%s做占位符
#导入pymysql包 import pymysql # 创建数据库连接 conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" ) #获取一个游标对象 cursor=conn.cursor() #sql语句中,用%s做占位符,参数用一个元组 sql="insert into student values(%s,%s,%s)" param=(23456,'lilei',20) #执行数据库插入 cursor.execute(sql,param) #提交 conn.commit() #关闭连接 conn.close() cursor.close()
二、通过python脚本向mysql数据库批量插入数据
这里记录两种批量插入数据的方式:1、通过execute,用for语句循环
#导入pymysql包 import pymysql # 创建数据库连接 conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" ) #获取一个游标对象 cursor=conn.cursor() #设置参数i,for语句循环 for i in range(1,10): param=str(i) sql="insert into student values(%s,'yy',20)" cursor.execute(sql,param) conn.commit() #关闭连接 conn.close() cursor.close()
2、通过executemany,数据的格式必须为list[tuple(),tuple(),tuple()]或者tuple(tuple(),tuple(),tuple())
import pymysql # 打开数据库连接 conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" ) # 使用cursor()方法获取操作游标 cursor = conn.cursor() #批量插入数据 sql="insert into student values(%s,%s,%s)" #每一个值都作为一个元组,整个参数集作为一个元组 param=((111111,'haha',13),(22222,'hehe',34)) #或者每一个值作为元组,整个参数集作为list :param=[(111111,'haha',13),(22222,'hehe',34)] #使用executemany方法批量插入数据 cursor.executemany(sql,param) #提交 conn.commit() #关闭 conn.close() cursor.close()
三、cursor执行命令的方法
1、 callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数2、 execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数3、executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数4、nextset(self):移动到下一个结果集
四、cursor接受返回值的方法
1、 fetchall(self):接收全部的返回结果行.2、 fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.3、 fetchone(self):返回一条结果行.4、 scroll(self, value, mode=‘relative’):移动指针到某一行.如果mode=‘relative’,则表示从当前所在行移动value条,如果mode=‘absolute’,则表示从结果集的第一 行移动value条.
五、cursor执行查询语句并返回结果
#执行查询的操作 cursor.execute("select * from cdinfo") #用fetcall方法获取查询返回的全部结果,将结果保存到tup,每条结果都是元组类型,所有的元组组成了一个元组集 tup=cursor.fetchall() print(tup)#输出整个结果 print tup[0][3]#输出元组集中,第一个元组的第四个元素