博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python连接MySQL数据库—pymysql模块
阅读量:7103 次
发布时间:2019-06-28

本文共 5154 字,大约阅读时间需要 17 分钟。

基本使用

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()# 定义要执行的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()

返回字典格式数据

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句并且将结果作为字典返回的游标cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 定义要执行的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()

增删改查操作

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"username = "Alex"age = 18# 执行SQL语句cursor.execute(sql, [username, age])# 提交事务conn.commit()cursor.close()conn.close()

插入数据失败回滚

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"username = "Alex"age = 18try:    # 执行SQL语句    cursor.execute(sql, [username, age])    # 提交事务    conn.commit()except Exception as e:    # 有异常,回滚事务    conn.rollback()cursor.close()conn.close()

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

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"username = "Alex"age = 18try:    # 执行SQL语句    cursor.execute(sql, [username, age])    # 提交事务    conn.commit()    # 提交之后,获取刚插入的数据的ID    last_id = cursor.lastrowidexcept Exception as e:    # 有异常,回滚事务    conn.rollback()cursor.close()conn.close()

批量执行

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"data = [("Alex", 18), ("Egon", 20), ("Yuan", 21)]try:    # 批量执行多条插入SQL语句    cursor.executemany(sql, data)    # 提交事务    conn.commit()except Exception as e:    # 有异常,回滚事务    conn.rollback()cursor.close()conn.close()

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()sql = "DELETE FROM USER1 WHERE id=%s;"try:    cursor.execute(sql, [4])    # 提交事务    conn.commit()except Exception as e:    # 有异常,回滚事务    conn.rollback()cursor.close()conn.close()

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()# 修改数据的SQL语句sql = "UPDATE USER1 SET age=%s WHERE name=%s;"username = "Alex"age = 80try:    # 执行SQL语句    cursor.execute(sql, [age, username])    # 提交事务    conn.commit()except Exception as e:    # 有异常,回滚事务    conn.rollback()cursor.close()conn.close()

查询单条数据

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()# 查询数据的SQL语句sql = "SELECT id,name,age from USER1 WHERE id=1;"# 执行SQL语句cursor.execute(sql)# 获取单条查询数据ret = cursor.fetchone()cursor.close()conn.close()# 打印下查询结果print(ret)

查询多条数据

# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()# 查询数据的SQL语句sql = "SELECT id,name,age from USER1;"# 执行SQL语句cursor.execute(sql)# 获取多条查询数据ret = cursor.fetchall()cursor.close()conn.close()# 打印下查询结果print(ret)

进阶用法

# 可以获取指定数量的数据cursor.fetchmany(3)# 光标按绝对位置移动1cursor.scroll(1, mode="absolute")# 光标按照相对位置(当前位置)移动1cursor.scroll(1, mode="relative")
import pymysqlconn = pymysql.connect(    host = "localhost",    port = 3306,    database = "userinfo",    user = "root",    password = "",    charset = "utf8")cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#  指定返回的数据格式为字典格式sql = "select * from info"cursor.execute(sql)# ret = cursor.fetchall()  # 返回所有数据# print(ret)# ret = cursor.fetchone()  # 返回第一条数据# print (ret)# ret = cursor.fetchone()  # 返回一条数据# print (ret)# ret = cursor.fetchone()# print (ret)# ret = cursor.fetchone()# print (ret)# ret = cursor.fetchone()# print (ret)# ret = cursor.fetchone()# print (ret)# ret = cursor.fetchone()  # 没有数据返回None# print (ret)# ret = cursor.fetchmany(3)   # 具体返回多少条数据# print(ret)cursor.scroll(1,mode="absolute")  # 绝对移动,写多少就是移到多少,相对于从第一个数据开始ret = cursor.fetchone()print(ret)cursor.scroll(1,mode="relative")  # 相对于鼠标现在的位置移动ret = cursor.fetchone()print(ret)cursor.close()conn.close()

 

转载于:https://www.cnblogs.com/Big-Dinosaur/p/9992039.html

你可能感兴趣的文章
_appstart.cshtml,_pagestart.cshtml,_viewstart.cshtml
查看>>
table_单线条设置大全(转)
查看>>
PHP安全设置(转载)
查看>>
【软件使用】GitHub使用教程for VS2012
查看>>
jQuery UI Datepicker使用介绍
查看>>
Android -- 获取IP和MAC地址
查看>>
踩踩踩
查看>>
MPI编程简单介绍
查看>>
Eclipse 中java跨工程调用类
查看>>
js split str.split(" "); split使用方法 在某处截字符串
查看>>
待翻译的一篇文档
查看>>
ipa上传到APP store
查看>>
Atitit.可视化编程jbpm6 的环境and 使用总结...
查看>>
SilverLight-3:SilverLight 备注
查看>>
数学图形(1.37)伯努利双纽线(无穷大的符号)
查看>>
Ruby
查看>>
SQL Server 执行计划中的扫描方式举例说明
查看>>
用LUA实现BYTEARRAY和BYTEARRAYVARINT
查看>>
呆呆的io流输入输出的一些基础
查看>>
PHP页面跳转代码
查看>>