pymysql 操作mysql和数据库同步

╰半橙微兮° 2022-05-30 23:23 360阅读 0赞

嘻嘻,我又来写博客了~作为一名菜鸟,我非常喜欢写博客,记录下自己的成长,然后也是一些总结

  • 本次学习要点

    • sql语句练习-procedure对数据进行更新
    • pycharm添加mysql数据源
    • pymysql调用过程
    • pymysql解决数据同步
    • 总结

本次学习要点

sql语句练习-procedure对数据进行更新。

  1. create database laboratory;
  2. use laboratory;
  3. create table salary( id int, name varchar(50), salary decimal(8,2), primary key (id) );
  4. describe salary;
  5. -- 学习一下更改这个表里面column属性的一些信息 反引号!很重要!stackoverflow上讲的!很重要!
  6. alter table salary change `name` `name` varchar(50)not null, change `salary` `salary` decimal(8,2)not null;
  7. -- 再次查看表名的属性等
  8. describe salary;
  9. insert into salary values(1,'zhangsan',5500);
  10. insert into salary values(2,'lisi',5000);
  11. insert into salary values(3,'wangwu',7000);
  12. -- 构建更新过程
  13. -- 给工资低于a的人涨x%
  14. delimiter \\
  15. create procedure add_salary( in a decimal(8,2), in b int )comment 'add salary,optionnally below a' begin update salary set salary = salary*(1+b/100) where salary < a;
  16. end\\ delimiter ;
  17. -- 调用过程
  18. call add_salary(6000,5);
  19. select * from salary;

因为自己写纯种sql语句的次数很少,很陌生于是我就从一开始建表,到修改表,然后建立存储过程,到调用,再次过一遍,多练几次就熟悉了嘛~OK,原生态sql语句,写好了,然后也调用成功了,得到了结果:如下


pycharm添加mysql数据源

在pycharm里面写数据的时候,总是出现报错,说数据没绑定,可能搜不到,然后我就在pycharm里面绑定了数据源

  • 右上角搜索,database
  • 然后添加自己的mysql,用户,密码等信息
  • 记得在下面把驱动装一下,下面会提示,你没有那个驱动,然后就可以点test connection 测试了

然后发现,pycharm的这个数据源功能真滴强大,并且检索数据不会卡。我之前在VS上用的sql server的时候卡的我。。。还可以在上面各种操作,写sql语句等。蛮好用的
这里写图片描述

pymysql调用过程

然后兴高采烈地去pycharm上一展身手

  1. import pymysql
  2. conn = pymysql.connect(
  3. host='localhost',
  4. user='root',
  5. password='lyy1314520',
  6. db='laboratory'
  7. )
  8. cur = conn.cursor()
  9. cur.callproc('add_salary', (6000, 5))
  10. sq1 = ''' select * from salary '''
  11. cur.execute(sq1)
  12. result = cur.fetchall()
  13. for i in result:
  14. print(i)
  15. cur.close()
  16. conn.close()

来看看结果:(因为我已经在mysql里面执行过一次,所以这是在其基础上又执行了一次)

(1, ‘zhangsan’, Decimal(‘6063.75’))
(2, ‘lisi’, Decimal(‘5512.50’))

哈哈哈~当时满脸笑嘻嘻,谁知mmp,原始数据库没改!没改啊!没同步啊?这和我之前在别的地方玩的时候不一样啊!
这里写图片描述

pymysql解决数据同步

通过在网上查找, 问题与MySQL的存储引擎对事务的支持有关。 MySQL中有多种类型的存储引擎, 例如: MyISAM, InnoDB等。 MyISAM不支持事务处理, 而InnoDB是事务型数据库, 支持事务。 我的MySQL的默认存储引擎就是InnoDB, 所以对数据库数据的操作会在事先分配的缓存中进行, 只有在commit之后, 数据库的数据才会改变。这和mysql里面的设置有关系,然后我就乖乖在最后面加了一句

conn.commit( )

问题解决~

总结

今天的话也没干啥,大概就是解决了几个小问题,然后试了下remarkdown,写了几遍过程,解决了2014 错误码,还有pymysql,事务提交。其实一开始写的时候很生疏。。多写几遍就熟练了,所以动手写很重要!看一遍真的会了吗?答案是tan90,骗自己。路漫漫其修远兮~加油啊~啦啦啦。贼喜欢写博客了。。给自己增加点观众,感觉挺好的。也是个很好的总结过程。都是自己一个字一个字写的,所以收获很大的!!

发表评论

表情:
评论列表 (有 0 条评论,360人围观)

还没有评论,来说两句吧...

相关阅读