使用Python怎么操作MySQL数据库
短信预约 -IT技能 免费直播动态提醒
本篇文章给大家分享的是有关使用Python怎么操作MySQL数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
MySQL 建表
建表的时候,遇到一些坑,没有解决,如修改 MySQL 的默认引擎,default-storage-engine=InnoDB;
执行报错 。。。无奈
use mybatistable;drop table Test;-- INNODB 支持事务 -- Mysql 默认的引擎是 MyISAM ,不支持事务操作-- 在创建 mysql 表时,最好指定表使用的引擎 -- 或者直接修改Mysql 默认的数据库引擎为 InnoDB-- default-storage-engine=InnoDB; 执行报错 。。。无奈create table Test( id int(10) not null auto_increment, name varchar(20) not null, password varchar(30) not null, constraint pk_id primary key(id), constraint uk_name unique(name))engine=InnoDB charset=utf8;-- 查看表的引擎show create table Test;-- 更新表的引擎 ,执行报错-- alter table Test type = InnoDB; insert into Test values(default,'小红',123);insert into Test values(default,'小李',123);insert into Test values(default,'小赵',123);insert into Test values(default,'小军',123);insert into Test values(default,'小方',123);select * from Test;
python 操作 MySQL
import pymysql''' 连接 mysql 数据库的步骤 fetchall 接受全部的返回结果行 PS:只有 innodb 类型的表才可以设置 autocommit;'''def connectMySql(): host = '127.0.0.1' username = 'root' password = 'root' # dbName = 'MyBatistable' # 获得数据库连接对象 conn = pymysql.connect(host,username,password) #关闭数据库的自动提交事务 conn.autocommit(False) # 选择要操作的数据库 conn.select_db('MyBatistable') #覆盖之前操作的数据库名 # 获得游标 cursor = conn.cursor() #定义 SQL 语句 sql = 'select * from Test' sql1 = 'insert into test values(default,"小锅","120")' sql2 = 'update test set name="小库2" where id = 2' sql3 = 'delete from test where id = 2' #执行 SQL 语句 # row = cursor._query(sql) #执行 execute 方法,返回影响的行数 row = cursor.execute(sql1) print('row type:',type(row)) print('受影响的行数为:',row) if row > 0: conn.commit() # 提交事务 print('SUCCESS') else: conn.rollback() # 回滚事务 print('Failure') #使用DQL ,返回结果集,以元组的形式 nums = cursor.fetchall() print('nums Type:',type(nums)) #处理结果集 if nums != () : for num in nums: print('--',num)if __name__ == '__main__': connectMySql()
以上就是使用Python怎么操作MySQL数据库,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341