码迷,mamicode.com
首页 > 数据库 > 详细

Python模块之PyMySQL

时间:2018-04-05 16:26:38      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:col   use   sql数据库   结果   pymysql   utf8   ast   主机   har   

PyMySQL

  介绍:

  Python中用于连接MySQL数据库的一种第三方工具库。

 

  安装:

  通过命令pip install pymysql安装,在Python3中可以通过pip3来安装。

 

  连接MySQL数据库:

  连接之前的准备工作:

    1,要有一个MySQL数据库,并且已经启动;

    2,你要知道数据库的地址,用户名和密码;

    3,你的主机拥有操作目标数据库的权限。

  基本地连接使用:

# 导入PyMySQL模块
import pymysql

# 连接database
conn = pymysql.connect(host="你的数据库地址", user="用户名", 
password="密码", database="数据库名", charset="utf8")   # charset="utf8" 不能写作utf-8

# 得到一个可以执行SQL语句的对象
cursor = conn.cursor()  # 添加参数cursor=pymysql.cursors.DictCursor,可以设定执行SQL语句的返回为字典格式

# 定义要执行的SQL语句
sql = """
CREATE TABLE USER1 (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""
# 执行SQL语句
cursor.execute(sql)

# 关闭光标对象
cursor.close()

# 关闭数据库连接
conn.close()

 

  增删改查:

    基本格式

import pymysql

conn = pymysql.connect(host="你的数据库地址", user="用户名", 
password="密码", database="数据库名", charset="utf8")

cursor = conn.cursor()

sql = "Mysql增删改查语句"

cursor.execute(sql)

conn.commit()  # 增删改需要提交事务
cursor.close()
conn.close()

 

    如果要动态操作数据,可以在SQL语句中使用%s格式化输出。例如:

sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "tom"
age = 18
cursor.execute(sql, [username, age])

 

     如果要获取新添加的数据的ID,可以在提交事务后通过lastrowid来实现。

cursor.execute(sql)
conn.commit()
# 提交之后,获取最后一条数据的ID
last_id = cursor.lastrowid

 

    查询结果获取

      1,获取单条数据

# 执行SQL语句
cursor.execute(sql)
# 获取单条查询数据
ret = cursor.fetchone()

      2,获取多条数据

# 执行SQL语句
cursor.execute(sql)
# 获取全部查询数据
ret = cursor.fetchall()

# 还可以获取指定数量的数据
ret = cursor.fetchmany(3)

 

    批量执行

sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"

date = [(tom, 18), (jerry, 18)]

cursor.executemany(sql, data)

 

  操作失败回滚:通过异常处理来完成。

try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交事务
    conn.commit()
except Exception:
    # 有异常,回滚事务
    conn.rollback()

 

Python模块之PyMySQL

标签:col   use   sql数据库   结果   pymysql   utf8   ast   主机   har   

原文地址:https://www.cnblogs.com/zxc-Weblog/p/8722948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!