数据库 -- pymysql

数据库 -- pymysql,第1张

概述pythen3连接mysqlpymsql介绍PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。Django中也可以使用PyMySQL连接MySQL数据库。 pymysql安装pip install pymysql 连接数据库注意事项在进行本文以下内容之前需要注意:你有一个MySQL数据库,并且已经启动。你有可以连接该数据库的用户名和密码你有一个有权限 *** 作的database基本使用# 导入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()注意,注意,注意:charset=“utf8”,编码不要写成"utf-8" 增删改查 *** 作增# 导入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 = "Deng"age = 18# 执行SQL语句cursor.execute(sql, [username, age])# 提交事务conn.commit()cursor.close()conn.close()View Code 插入数据失败回滚在执行增删改 *** 作时,如果不想提交前面的 *** 作,可以使用 rollback() 回滚取消 *** 作。# 导入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 = "Deng"age = 18try:# 执行SQL语句cursor.execute(sql, [username, age])# 提交事务conn.commit()except Exception as e:# 有异常,回滚事务conn.rollback()cursor.close()conn.close()View Code获取插入数据的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 = "Deng"age = 18try:# 执行SQL语句cursor.execute(sql, [username, age])# 提交事务conn.commit()# 提交之后,获取刚插入的数据的IDlast_id = cursor.lastrowidexcept Exception as e:# 有异常,回滚事务conn.rollback()cursor.close()conn.close()View Code批量执行# 导入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 = [("Deng", 18), ("Zhang", 20), ("Liu", 21)]try:# 批量执行多条插入SQL语句cursor.executemany(sql, data)# 提交事务conn.commit()except Exception as e:# 有异常,回滚事务conn.rollback()cursor.close()conn.close()View Code删# 导入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()View Code 改# 导入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 = "Deng"age = 80try:# 执行SQL语句cursor.execute(sql, [age, username])# 提交事务conn.commit()except Exception as e:# 有异常,回滚事务conn.rollback()cursor.close()conn.close()View Code 查查询单条数据:# 导入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)View Code查询多条数据:# 导入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)View Code 进阶用法# 可以获取指定数量的数据cursor.fetchmany(3)# 光标按绝对位置移动1cursor.scroll(1, mode="absolute")# 光标按照相对位置(当前位置)移动1cursor.scroll(1, mode="relative") 练习:用数据库实现一个简单的登陆功能conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',database='deng',charset='utf8')cursor = conn.cursor()sql = "select * from userinfo where username='%s' and password='%s';"%(name,pwd)print(sql)ret = cursor.execute(sql)if ret:print("登陆成功")else:print("登陆失败")'''# 会有SQL注入问题:# 即用户输入的内容有恶意的SQL语句,后端拿到用户输入的内容不做检测直接做字符串拼接,得到一个和预期不一致的SQL语句 如:deng‘ # (只执行前面的语句,把后 pythen3连接MysqLpymsql介绍

PyMysqL 是在 python3.x 版本中用于连接 MysqL 服务器的一个库,Python2中则使用MysqLdb。

Django中也可以使用PyMysqL连接MysqL数据库。

pyMysqL安装pip install pyMysqL连接数据库  注意事项

在进行本文以下内容之前需要注意:

你有一个MysqL数据库,并且已经启动。你有可以连接该数据库的用户名和密码你有一个有权限 *** 作的database  基本使用conn = pyMysqL.connect(host=“你的数据库地址”,user=“用户名”,password=“密码”,database=“数据库名”,charset=cursor =sql = conn.close()

返回字典格式数据:

conn = pyMysqL.connect(host=“你的数据库地址”,charset=cursor = conn.cursor(cursor=sql = conn.close()

注意,注意,注意:

charset=“utf8”,编码不要写成"utf-8"

增删改查 *** 作  增conn = pyMysqL.connect(host=“你的数据库地址”,charset=cursor == = = 18

插入数据失败回滚

在执行增删改 *** 作时,如果不想提交前面的 *** 作,可以使用 rollback() 回滚取消 *** 作。

conn = pyMysqL.connect(host=“你的数据库地址”,%s);= = 18

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

conn = pyMysqL.connect(host=“你的数据库地址”,age]) last_ID =

批量执行

conn = pyMysqL.connect(host=“你的数据库地址”,%s);= [(,18),(,20),(,21

  

  删conn = pyMysqL.connect(host=“你的数据库地址”,charset=cursor == 4  改conn = pyMysqL.connect(host=“你的数据库地址”,charset=cursor =sql = = = 80  查

查询单条数据:

conn = pyMysqL.connect(host=“你的数据库地址”,charset=cursor =sql = ret =(ret)

查询多条数据:

conn = pyMysqL.connect(host=“你的数据库地址”,age from USER1;ret =(ret)进阶用法cursor.fetchmany(3cursor.scroll(1,mode=cursor.scroll(1,mode=)

练习:用数据库实现一个简单的登陆功能

conn = pyMysqL.connect(host==3306===== %ret =<span > cursor.execute(sql)
<span >if
<span > ret:
<span >print
(<span >"
<span >登陆成功
<span >"
<span >)
<span >else
<span >:
<span >print
(<span >"
<span >登陆失败
<span >"
<span >)

<span >'''<span >

会有sql注入问题:
# 即<a href="https://www.jb51.cc/tag/yonghu/" target="_blank" >用户</a>输入的<a href="https://www.jb51.cc/tag/neirong/" target="_blank" >内容</a>有恶意的<a href="https://m.jb51.cc/tag/SQLyuju/" target="_blank" >SQL语句</a>,后端拿到<a href="https://www.jb51.cc/tag/yonghu/" target="_blank" >用户</a>输入的<a href="https://www.jb51.cc/tag/neirong/" target="_blank" >内容</a>不做检测直接做字符串拼接,得到<a href="https://www.jb51.cc/tag/yige/" target="_blank" >一个</a>和预期不一致的<a href="https://m.jb51.cc/tag/SQLyuju/" target="_blank" >SQL语句</a>   如:deng‘ # (只执行前面的语句,把后面的语句变成<a href="https://m.jb51.cc/tag/zhushi/" target="_blank" >注释</a>) 

<span >'''

= input(= input(====== =(() 总结

以上是内存溢出为你收集整理的数据库 -- pymysql全部内容,希望文章能够帮你解决数据库 -- pymysql所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1169216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存