python的pymysql连接到Mysql的举例

#Example11.1 建立数据库连接
import pymysql
#创建数据库连接
conn = pymysql.connect(
    host="localhost",           #要连接的数据库所在的主机ip
    user="root",                #登录用户名
    password="159271",         #登录密码
    database="student_db"          #连接的数据库名
)
cursor = conn.cursor()
 #创建student_info数据表
 sql = """CREATE TABLE `student_info` (
   `id` int NOT NULL AUTO_INCREMENT,
   `学号` int NOT NULL,
   `姓名` varchar(20) NOT NULL,
   `性别` varchar(20) NOT NULL,
   `年龄` int NOT NULL,
   `班级` varchar(20) NOT NULL,
   `专业` varchar(20) NOT NULL,
   `备注` varchar(20) NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3"""
 调用cursor的execute()方法执行上述sql语句,创建student_info表
 cursor.execute(sql)
Example11.5 使用executemany()插入多条记录,使用推导式
id = [4, 5, 6]
num = [2208204, 2208205, 2208206]
name = ['宋涛','陈启','刘颖']
gender = ['男','男','女']
age = [18, 17, 19]
classes = ['大数据202','大数据201','软件202']
major = ['大数据','大数据','软件工程']
memo = ['团支书','Bdjw','']
sql = 'insert into student_info values(%s,%s,%s,%s,%s,%s,%s,%s)'
insert_items = [(id[i], num[i], name[i], gender[i], age[i], classes[i],major[i],memo[i]) for i in range(0, len(id))]
with conn.cursor() as cursor:
    try:
        insert = cursor.executemany(sql,insert_items)
        conn.commit()  # 提交数据库执行
        print("insert_many = ", insert)
    except Exception as e:
        conn.rollback()  # 出现异常,撤回操作
        print(e.args)    # 显示

解析:

  • 定义了多个列表,分别存储学生的 id学号姓名性别年龄班级专业 和 备注 信息。
  • 使用列表推导式生成一个包含所有学生信息的元组列表 insert_items
  • 使用 cursor.executemany(sql, insert_items) 方法插入多条记录。
  • 使用 try...except 块来捕获并处理可能的异常,确保在出现错误时回滚事务并显示异常信息。
  • 提交事务并打印插入的记录数。

总结

  • 这段代码展示了如何使用 pymysql 库连接到 MySQL 数据库,并执行创建表和插入多条记录的操作。
  • 通过使用 try...except 块,确保在出现错误时能够回滚事务并显示异常信息,增强了代码的健壮性。
异常信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值