1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python 连接数据库 pymysql模块的使用

python 连接数据库 pymysql模块的使用

时间:2023-10-04 01:19:46

相关推荐

python 连接数据库 pymysql模块的使用

一Python3连接MySQL

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

1 PyMySQL介绍

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

Django中也可以使用PyMySQL连接MySQL数据库。

2 PyMySQL安装

pip install pymysql

二连接数据库

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

你有一个MySQL数据库,并且已经启动。你有可以连接该数据库的用户名和密码你有一个有权限操作的database

注意:

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

1 基本使用

# 导入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()

2 返回字典格式数据:

# 导入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()

三增删改查操作

1 增

# 导入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])# 提交事务mit()cursor.close()conn.close()

2插入数据失败回滚

# 导入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])# 提交事务 mit()except Exception as e:# 有异常,回滚事务 conn.rollback()cursor.close()conn.close()

3获取插入数据的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])# 提交事务 mit()# 提交之后,获取刚插入的数据的IDlast_id = cursor.lastrowidexcept Exception as e:# 有异常,回滚事务 conn.rollback()cursor.close()conn.close()

4批量执行

# 导入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)# 提交事务 mit()except Exception as e:# 有异常,回滚事务 conn.rollback()cursor.close()conn.close()

5删

# 导入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])# 提交事务 mit()except Exception as e:# 有异常,回滚事务 conn.rollback()cursor.close()conn.close()

6改

# 导入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])# 提交事务 mit()except Exception as e:# 有异常,回滚事务 conn.rollback()cursor.close()conn.close()

7 查

# 导入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)

8查询多条数据

# 导入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")# 光标按照相对位置(当前位置)移动1 默认mode为relative 参数为正数向下移动

参数为负数向上移动 光标移动不能超出范围否者会报错cursor.scroll(1, mode="relative")

cursor.scroll(-10) # IndexError: out of range

cursor.scroll(81) # IndexError: out of range

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。