python 链接数据库的常见错误

在这里插入图片描述
操作错误
在这里插入图片描述

书写错误
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

### 使用Python创建和管理MySQL数据库 #### 创建连接并初始化环境 为了使用Python操作MySQL数据库,首先需要安装`mysql-connector-python`库。可以通过pip命令完成安装: ```bash pip install mysql-connector-python ``` 建立到MySQL服务器的连接时,通常会指定主机名、用户名、密码以及其他必要的参数[^1]。 ```python import mysql.connector config = { 'user': 'root', 'password': '', 'host': 'localhost' } connection = mysql.connector.connect(**config) cursor = connection.cursor() ``` #### 数据库的基本操作 ##### 创建新的数据库 通过执行SQL语句可以轻松地创建一个新的数据库实例: ```sql CREATE DATABASE IF NOT EXISTS testdb; ``` 上述代码片段应该被嵌入到Python程序中并通过游标的execute方法调用来实现创建新数据库的功能。 ```python database_name = "testdb" create_db_query = f"CREATE DATABASE IF NOT EXISTS {database_name};" try: cursor.execute(create_db_query) except Exception as e: print(f"Failed to create database: {e}") else: print(f"Database '{database_name}' created successfully.") ``` ##### 切换当前使用的数据库 一旦建立了连接并且有了目标数据库之后,就可以切换至该数据库来进行后续的操作了。 ```python use_db_query = f"USE {database_name}" cursor.execute(use_db_query) ``` ##### 表结构的设计与创建 定义表格及其字段对于任何关系型数据库来说都是至关重要的一步,在这里同样适用。下面是一个简单的例子展示怎样去设计一张学生信息表(student_info): ```sql CREATE TABLE student_info ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, grade FLOAT ); ``` 将其转换成Python中的形式如下所示: ```python table_creation_sql = """ CREATE TABLE IF NOT EXISTS student_info( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, grade FLOAT ); """ cursor.execute(table_creation_sql) ``` ##### 插入记录 向已有的表内添加数据条目是一项常见的任务。这可以通过编写INSERT INTO SQL查询来达成目的。 ```python insert_data_into_table = """ INSERT INTO student_info (name, age, grade) VALUES (%s,%s,%s) """ data_to_insert = [ ('Alice', 20, 89.5), ('Bob', 22, 78.3), ] for data in data_to_insert: try: cursor.execute(insert_data_into_table, data) connection.commit() # 提交更改以保存修改后的状态 except Exception as err: print(err) connection.rollback() # 如果发生错误则回滚事务 ``` ##### 查询现有数据 读取存储于表内的信息也是必不可少的一部分工作流程之一。SELECT语句允许用户检索特定条件下的行或列的数据集。 ```python query_all_students = "SELECT * FROM student_info;" cursor.execute(query_all_students) results = cursor.fetchall() print("All students:") for row in results: print(row) ``` ##### 更新已有记录 当某些属性发生变化时,则可能需要用到UPDATE指令更新对应的值;同时也可以利用WHERE子句限定受影响的对象范围。 ```python update_student_grade = """ UPDATE student_info SET grade=%f WHERE name='%s'; """ % (new_grade_value, target_student_name) try: cursor.execute(update_student_grade) connection.commit() except Exception as ex: print(ex) connection.rollback() ``` ##### 删除不再需要的信息 最后一点就是关于删除不想要的内容——无论是单个实体还是整个集合都可以借助DELETE命令完成此操作。 ```python delete_specific_entry = """DELETE FROM student_info WHERE name='Charlie';""" try: cursor.execute(delete_specific_entry) connection.commit() except Exception as excp: print(excp) connection.rollback() ``` 关闭资源之前记得释放所有占用的资源,比如断开数据库链接等动作。 ```python if(connection.is_connected()): cursor.close() connection.close() print("MySQL connection is closed") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值