pymysql

Python3链接MySQL

本文介绍Python3链接MySQL的第三方库--PyMySQL的基本使用。mysql

PyMySQL介绍

PyMySQL 是在 Python3.x 版本中用于链接 MySQL 服务器的一个库,Python2中则使用mysqldb。sql

Django中也能够使用PyMySQL链接MySQL数据库。数据库

PyMySQL安装

pip install pymysql

链接数据库

注意事项

在进行本文如下内容以前须要注意:服务器

  • 你有一个MySQL数据库,而且已经启动。
  • 你有能够链接该数据库的用户名和密码
  • 你有一个有权限操做的database

基本使用

# 导入模块
import pymysql #获取连接
conn = pymysql.connect( host="127.0.0.1",   #数据库地址
    port=3306,          #数据库端口号
    user="root",        #用户名
    password="",        #密码
    database="db1",     #要执行的数据库
    charset="utf8" ) cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)   #获取光标对象,括号内能够不写,这样写是返回字典格式的数据
sql="select * from userinfo;"                  #要执行的sql语句
cursor.execute(sql)      #执行sql语句
ret=cursor.fetchall() cursor.close() #关闭光标对象
conn.close()               #关闭连接
print(ret)

增删改查操做

# 导入模块
import pymysql name=input("姓名") pwd=input("密码") #获取连接
conn = pymysql.connect( host="127.0.0.1",   #数据库地址
    port=3306,         #数据库端口号
    user="root",      #用户名
    password="",      #密码
    database="day59", #要执行的数据库
    charset="utf8" ) cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)   #获取光标对象,括号内能够不写,这样写是返回字典格式的数据
sql="insert into userinfo(name,pwd) values (%s,%s);"   #要执行的sql语句
cursor.execute(sql,[name,pwd])            #执行sql语句 前面是语句,后面是一个课迭代的,按位置传
conn.commit()                #提交(涉及对表格的修改,必须提交)
cursor.close()               #关闭光标对象
conn.close()                #关闭连接
# 导入模块
import pymysql #获取连接
conn = pymysql.connect( host="127.0.0.1",   #数据库地址
    port=3306,         #数据库端口号
    user="root",      #用户名
    password="",      #密码
    database="day59", #要执行的数据库
    charset="utf8" ) cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)   #获取光标对象,括号内能够不写,这样写是返回字典格式的数据
sql="insert into userinfo(name,pwd) values (%s,%s);"   #要执行的sql语句
data = [("a","1"),    #把要添加的数据放在一个列表里,而后执行sql时,把该列表放在后面
        ("b","2"), ("c","3") ] cursor.execute(sql,data) #执行sql语句 前面是语句,后面是一个可迭代的,按位置传
conn.commit()                #提交(涉及对表格的修改,必须提交)
cursor.close()               #关闭光标对象
conn.close()                #关闭连接
批量插入多条数据

插入数据失败回滚:conn.rollback()ide

import pymysql # 创建链接
conn = pymysql.connect( host="127.0.0.1", port=3306,  # 不是字符串类型(不要加引号)
    user="root", password="123456", database="day59", charset="utf8"  # 没有-!!!!
) # 获取一个光标
cursor = conn.cursor() # 定义将要执行的SQL语句
sql1 = "insert into userinfo (name, pwd) values (%s, %s);" sql2 = "insert into book (name) values (%s);" name = "wangzhen2号" pwd = "123456" book_title = "Python从入门到放弃"
try: # 拼接并执行SQL语句
 cursor.execute(sql1, [name, pwd]) cursor.execute(sql2) # 报错的SQL语句

    # 涉及写操做注意要提交
 conn.commit() except Exception as e: print(str(e)) # 有异常就回滚
 conn.rollback() # 关闭链接
cursor.close() conn.close()

获取插入数据的ID(关联操做时会用到)fetch

import pymysql # 创建链接
conn = pymysql.connect( host="127.0.0.1", port=3306,  # 不是字符串类型(不要加引号)
    user="root", password="123456", database="day59", charset="utf8"  # 没有-!!!!
) # 获取一个光标
cursor = conn.cursor() # 定义将要执行的SQL语句
sql = "insert into userinfo (name, pwd) values (%s, %s);" name = "wangzhen3号" pwd = "123456"
# 拼接并执行SQL语句
cursor.execute(sql, [name, pwd]) # 涉及写操做注意要提交
conn.commit() # 获取最新的那一条数据的ID
last_id = cursor.lastrowid print("最后一条数据的ID是:", last_id) cursor.close() conn.close()

 

# 导入模块
import pymysql #获取连接
conn = pymysql.connect( host="127.0.0.1",   #数据库地址
    port=3306,         #数据库端口号
    user="root",      #用户名
    password="",      #密码
    database="day59", #要执行的数据库
    charset="utf8" ) cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)   #获取光标对象,括号内能够不写,这样写是返回字典格式的数据
sql="delete from userinfo where name=%s ;"   #要执行的sql语句
name="liulin" cursor.execute(sql,[name]) #执行sql语句 前面是语句,后面是一个可迭代的,按位置传
conn.commit()                #提交(涉及对表格的修改,必须提交)
cursor.close()               #关闭光标对象
conn.close()                #关闭连接

import pymysql # 创建链接
conn = pymysql.connect( host="127.0.0.1", port=3306,  # 不是字符串类型(不要加引号)
    user="root", password="123456", database="day59", charset="utf8"  # 没有-!!!!
) # 获取一个光标
cursor = conn.cursor() # 定义将要执行的SQL语句
sql = "update userinfo set pwd=%s where name=%s;"
# 拼接并执行SQL语句
cursor.execute(sql, ["woshixinmima", "alex"]) # 涉及写操做注意要提交
conn.commit() # 关闭链接
 cursor.close() conn.close()

多种查询数据方法spa

import pymysql # 创建链接
conn = pymysql.connect( host="127.0.0.1", port=3306,  # 不是字符串类型(不要加引号)
    user="root", password="123456", database="day59", charset="utf8"  # 没有-!!!!
) # 获取一个光标 # cursor = conn.cursor() # 默认返回元祖类型的数据
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 返回字典类型的数据 # 定义将要执行的SQL语句
sql = "select name, pwd from userinfo;"
# 拼接并执行SQL语句
cursor.execute(sql) # 取到查询结果
ret1 = cursor.fetchone()  # 取一条
ret2 = cursor.fetchmany(3)  # 取三条 # cursor.scroll(1, mode="absolute") # 绝对移动,你指哪儿 它就移到哪儿
cursor.scroll(1, mode="relative")  # 相对移动, 相对它当前在的位置
cursor.scroll(-1, mode="relative")  # 相对移动, 相对它当前在的位置
ret3 = cursor.fetchone()  # 取一条 # ret = cursor.fetchall() # 取全部 # 关闭链接
cursor.close() conn.close() print(ret1) print(ret2) print(ret3)
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息