解决mysql的动态添加字段以及数据的方法(基于python3.6)

arr = [] #arr为列表
test = ','.join([item for item in arr]) #此处需要拼接,一定要列表的拼接,如果将列表转为元组,之后变成str带入到字段处是错误的(纠结了一上午,真是臭妹妹!)

sql = "insert into customer ("+test+") values (%s)" % ','.join(['%s'] * len(arr))#sql文的拼接需要将列表的拼接直接放入,然后数据需要多个%s,之后再将列表数据转为元组带入即可
cur.execute(sql, data_insert) #运行成功

转载于:https://www.cnblogs.com/setname/p/11496678.html

### 使用 Python 3.6MySQL 实现学生管理系统 #### 创建数据库和表结构 为了建立一个简单的学生管理系统,首先需要创建相应的数据库以及用于存储学生信息的表格。 ```sql CREATE DATABASE student_management; USE student_management; CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), age INT, grade FLOAT, class_name VARCHAR(50) ); ``` 这段 SQL 语句定义了一个名为 `student_management` 的新数据库,并在其内部建立了 `students` 表格来保存学生的姓名、年龄、成绩及班级名称等基本信息[^1]。 #### 安装必要的库并导入模块 在 Python 环境下工作之前,需安装 MySQL Connector/Python 来作为访问 MySQL 数据库所需的驱动程序。可通过 pip 工具完成此操作: ```bash pip install mysql-connector-python ``` 接着,在编写应用程序时引入所需的功能模块: ```python import mysql.connector from mysql.connector import Error ``` #### 建立与 MySQL 数据库之间的连接 利用上述已安装好的 MySQL Connector/Python 库来进行数据库连接设置如下所示: ```python try: connection = mysql.connector.connect( host='localhost', database='student_management', user='root', # 替换成自己的用户名 password='' # 替换成自己的密码 ) if connection.is_connected(): db_info = connection.get_server_info() print(f'Connected to MySQL Server version {db_info}') except Error as e: print('Error while connecting to MySQL:', e) finally: if (connection.is_connected()): cursor = connection.cursor() cursor.execute("select database();") record = cursor.fetchone() print(f"You're connected to the database: ", record) cursor.close() connection.close() print("MySQL connection is closed.") ``` 以上脚本尝试打开到本地主机上运行着的服务端口上的特定数据库实例的一个会话;如果成功,则显示服务器版本号和其他诊断消息。 #### 插入数据至 Students 表内 当建立起有效的链接之后就可以执行插入命令向 `Students` 表中添加新的记录了。 ```python insert_query = """INSERT INTO students (name, age, grade, class_name) VALUES (%s,%s,%s,%s);""" values_to_insert = ('张三', '20', '87.5', '高三一班') cursor = connection.cursor(prepared=True) result = cursor.execute(insert_query, values_to_insert) connection.commit() print(cursor.rowcount, "Record inserted successfully into students table") cursor.close() connection.close() ``` 这里展示了怎样准备一条 INSERT 查询字符串并将具体数值传递给它以供后续处理。最后记得调用 commit 方法使更改生效。 #### 查询 Student 表的数据 对于已经存在于表内的条目来说,可以通过 SELECT 语句检索它们的信息。 ```python query_select_all_students = "SELECT * FROM students" def fetch_data(query): try: conn = mysql.connector.connect(host="localhost",database='student_management',user='root',password='') cur = conn.cursor(dictionary=True) cur.execute(query) rows = cur.fetchall() for row in rows: print(row) except Exception as ex: print(ex) fetch_data(query_select_all_students) ``` 函数 `fetch_data()` 接受查询参数并通过字典形式返回每一行的结果集以便更方便地读取字段名及其对应的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值