python——mysql在sql语句中添加引擎

本文详细对比了MySQL中的两种数据表引擎:InnoDB和MyISAM。InnoDB支持事务,确保数据操作的原子性,适用于需要数据完整性的场景;而MyISAM虽不支持事务,但在读取密集型应用中因支持全局索引而表现更佳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

create table test(id int, name char(10)) engine = innodb defalut charset=utf8;

上面语句中的engine = innodb 就是往表test添加引擎,是为了保障数据表的原子性,此引擎支持事物。

原子性是指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。

可采用“A向B转账”这个例子来说明解释

在DBMS中,默认情况下一条SQL就是一个单独事务,事务是自动提交的。只有显式的使用start transaction开启一个事务,才能将一个代码块放在事务中执行。

 

还有一种引擎是myisam,此引擎不支持事物,但可设置全局索引,相对来说,存储速度略快。

 

defalut charset=utf8是设置表的编码为utf8.

 

### 如何使用Python操作MySQLSQL语句 要通过Python执行MySQL中的SQL语句,通常会借助`pymysql`库或其他类似的数据库驱动程序来完成。以下是实现这一功能的具体方法: #### 1. 安装必要的依赖 为了能够连接到MySQL并执行SQL语句,需要安装`PyMySQL`库。可以通过以下命令安装该库: ```bash pip install PyMySQL ``` #### 2. 连接到MySQL数据库 在建立与MySQL数据库的连接时,需提供主机名、端口号、用户名、密码以及目标数据库名称等信息。下面是一个典型的连接示例[^4]: ```python import pymysql conn = pymysql.Connect( host='localhost', port=3306, user='root', password='root', db='test_db', charset='utf8' ) ``` 在此过程中还可以设置自动提交事务的功能以简化流程。 #### 3. 创建游标对象 一旦建立了数据库连接,则可通过创建游标的实例来进行具体的SQL指令发送工作。如果希望接收的结果是以字典的形式展现出来的话,在初始化阶段就需要指定相应的参数: ```python cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) ``` #### 4. 编写并执行SQL语句 构建好所需的SQL字符串之后就可以调用游标的`execute()`函数去实际运行它了。这里给出一个简单的查询案例: ```python sql_query = 'SELECT * FROM users WHERE age > %s;' params = (25,) cursor.execute(sql_query, params) results = cursor.fetchall() for row in results: print(f"name={row['name']}, age={row['age']}") ``` #### 5. 提交更改(针对修改型SQL) 对于像INSERT、UPDATE或者DELETE这样的操作而言,除了正常地执行之外还需要记得手动确认这些变动被保存下来: ```python insert_sql = "INSERT INTO employees (first_name, last_name, hire_date) VALUES (%s, %s, NOW())" data_to_insert = ('John', 'Doe') try: cursor.execute(insert_sql, data_to_insert) conn.commit() # Ensure changes are saved. except Exception as e: conn.rollback() raise e finally: cursor.close() ``` #### 6. 断开连接 最后一步就是妥善处理资源释放的问题——即关闭游标和断开端口链接: ```python cursor.close() conn.close() ``` 以上便是利用Python操控MySQL数据库的一般步骤概述及其对应代码片段展示。 ### 注意事项 - SQL关键字虽然理论上不区分大小写,但在书写习惯上建议保持一致以便阅读理解方便[^1]。 - 对于较为复杂的业务逻辑可能涉及到事务管理机制的应用场景下,请务必合理规划错误捕捉策略从而保障数据一致性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值