一、引入pymysql
import pymysql
二、获取与数据库的连接
两种方法
1.连接数据库
import pymysql conn = pymysql.connect( host="*.*.*.*",#数据库IP user="*",#数据库的用户名 password="*",#密码 db="*",#数据库名 port=3306,#数据库端口 charset="utf8",#字符集 autocommit=True #自动提交 )#连接数据库
2.连接数据库
import pymysql mysql_info = { "host":"*.*.*.*",#数据库IP "user":"*",#数据库的用户名 "password":"*",#密码 "db":"*",#数据库名 "port":3306,#数据库端口 "charset":"utf8",#字符集 "autocommit":True #自动提交 } def execute_sql(sql,more=True,db_info=None): if db_info: conn = pymysql.connect(**db_info) else: conn = pymysql.connect(**mysql_info)
三、执行SQL语句和存储过程
1.建立游标,获得一个cursor对象,
cursor = conn.cursor(pymysql.cursors.DictCursor) #建立游标
2.接下来,我们会使用cursor提供的方法来进行工作.,这些方法包括两大类
1.执行命令
callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
executemany(self, query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
nextset(self):移动到下一个结果集
cursor.execute('insert into students (name,phone,age,sex) values ("华华","13712312321",18,"女");' )#增 cursor.execute('update students set name = "小白" where id = 1')#改 cursor.execute("select * from students;") #查 cursor.execute('select * from students where phone="13712312321";')#查 cursor.execute("show tables;")#查看当前所有表 conn.commit() #提交,若连接数据时已设置自动提交,则不需要执行再次执行提交,否则需要提交才能真正执行sql语句
2.接收返回值
fetchall(self):接收全部的返回结果行.
fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
fetchone(self):返回一条结果行.
scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一 行移动value条.
result = cursor.fetchone()#获取单条 result = cursor.fetchmany(5) #获取n条 result = cursor.fetchall()#获取sql执行的结果 print(result) for line in cursor:#表数据比较多的时候就用它 print(line) print(cursor.description) #表的字段信息
四、关闭数据库连接
cursor.close()#关闭指针对象 conn.close()#关闭连接对象