mysql打印语句_一篇文章搞定Python连接mysql数据库模块PyMySQL

PyMySQL安装方法

pip install pymysql

连接数据库

注意事项

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

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

基本使用

# 导入pymysql模块import pymysql# 链接库(database)conn = pymysql.connect(    host="127.0.0.1",  # host后面填写需要链接的数据库地址    user="root",  # 用户名    password="123456",  # 密码    database="human",  # 数据库名    charset="utf8"  # 编码方式)# 得到一个可以执行的SQL语句的光标cursor = conn.cursor()# 定义要执行的SQL语句sql = 'select * from info;'# 执行SQL语句cursor.execute(sql)# 关闭光标对象cursor.close()# 关闭数据库连接conn.close()

返回字典格式的数据

import pymysqlconn = pymysql.connect(    host="127.0.0.1",    user="root",    password="123456",    database="human",    charset="utf8")# 得到一个可以执行SQL语句并且将结果作为字典返回的游标cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)sql = 'select name from class;'# 执行sql语句cursor.execute(sql)# 返回查询到的所有数据ret = cursor.fetchall()# 返回查询到的指定条数数据# ret = cursor.fetchmany(5)print(ret)# 关闭链接cursor.close()conn.close()

注意

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

增删改查操作

import pymysqlconn = pymysql.connect(    host="127.0.0.1",    user="root",    password="123456",    database="human",    charset="utf8")cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 注意此处传值全部使用%s做占位符即可sql = "insert into class(name, age, sex, salary) VALUES(%s,%s,%s,%s)"name = 'abcd'age = '33'sex = '男'salary = '120.02'# 执行sql语句cursor.execute(sql, [name, age, sex, salary])# 提交事务conn.commit()cursor.close()conn.close()

插入数据失败回滚

import pymysqlconn = pymysql.connect(    host="127.0.0.1",    user="root",    password="123456",    database="human",    charset="utf8")cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)sql = "INSERT into class(name, age, sex, salary) values(%s,%s,%s,%s);"name = "ss"age = "22"sex = "男22"salary="1234.2"try:    cursor.execute(sql, [name, age, sex, salary])    # 提交事务    conn.commit()except Exception:    print('出错')    # 有异常回滚事务    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 = "run"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 = [("run1", 18), ("run2", 20), ("run3", 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 = "run1"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")# 光标按照相对位置(当前位置)向前移动1cursor.scroll(-1, mode="relative")

#计算机##mysql##数据库##python##科技新星创作营#

9955522fb847849f6f2c0bc3357771ad.png
6babcb52d33daefa90eee16800a5d648.png
d6ac9ff133f1eb01a774177f0ee8a2c5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值