阅读文本大概需要 6 分钟

前言

基础写了十篇,以后会继续更,这是第二篇进阶,文末会放上链接,进阶分成另一个系列,柠檬有时间会整理好菜单栏让大家更方便的阅读基础和进阶,柠檬会把自己在当时做的项目写到进阶里面来,总体来说就是更接地气的学Python,因为我们所学的书本知识离真正的做项目还是有一定的距离的,希望进阶篇能让大家对工作中的Python用法有更深的认识。

项目介绍

还是先简单介绍下最近在做的项目,大概就是将MySql格式的数据用Python读取然后清洗格式,放到算法中跑了以后将输出整理成MySql格式再打包给其他公司。

听起来不难,但实际做起来就能感觉到更加的接地气了,就像以前柠檬说的一定要把切片学好,因为当我们接触到实际的代码的时候就会发现到处都是冒号(切片),只有比较好的代码基本功才能不黑人脸。

先解释下什么是更接地气,举个栗子,这次柠檬拿到的是MySql格式的数据,数量倒是不多,也就八十多万条,分两个,一个是字段解释,一个是数据包。每条数据大概有32个字段,也就是80w * 32的矩阵。虽然数据量不是很大,但是这就涉及到Python和数据库的连接了。我相信大多数人在本科都应该是学过Sql的,柠檬也能看得懂甚至是能写Sql语句的,但是如果真正的要做项目那就不止是要会Sql语句了,而是要知道怎么用Python去操作数据库了。

所以你看,我们以为自己会,甚至敢在简历上写熟练掌握MySql或者熟练掌握SQLServer,但其实我们会吗?我们不会。

但是值得担心吗?不值得。

为什么?因为看完这篇文章以后你就会了 (炫耀Mac的表情(手动狗头脸))。

Mac操作MySql

为什么选择MySql?记得柠檬说的选择语言吗?我们现在学习的是Python,但语言不重要,下面是小米的机器学习算法工程师的招聘要求,里面也写了对数据库的要求,柠檬已经把它框出来了,大家可以看到,精通一门就可以了,语言永远是工具,千万别本末倒置。稳定,免费这两个理由就够了,下面就来看看Mac如何操作MySql。

下载安装太基本柠檬就不说了,如果有不懂的请找柠檬就行了:https://www.google.com.hk/。

安装以后在系统设置中找到MySql打开连接,如下图。

打开终端,切到MySql的安装位置,然后输入mysql -uXXX -pXXX,-u后面是用户名,-p后面是密码,如果显示下面的信息就说明已经连接成功了。

这个时候我们就可以做一些基础操作了,如下图柠檬显示了所有的已存在的数据库,然后切换到BC数据库,可以看到两条语句都操作成功了。

但我们不能一直用终端来操作,不然现在也直接用终端去写Python而不是Pycharm了,柠檬给大家推荐一款非常好用的数据库可视化操作软件:DBveaver。具体如下图,下载安装柠檬就不说了,今天的主题是如何操作数据库,下面就开工。

DBeaver界面

用Python操作MySql

终于要开始今天的主题了,用Python操作MySql很方便,其实港真Python操作什么都不太难,这也是依靠着Python那强大的库资源,所以柠檬才这么喜欢用Python优雅的搬砖。(再次手动狗头)

今天的代码主要是依靠一个库:pymysql。没错,就一个库就可以完成所有的sql操作,是不是很优雅,下面就来看看具体操作吧。

首先我们用DBaver创建一个叫MyDB的数据库,然后用Python来操作它。

创建MyDB数据库

创建table

大家可以看到,我们首先获取一个游标,之后就用它来执行sql语句,注意在中间我们执行了一条sql语句:

cursor.execute("DROP TABLE IF EXISTS Student")

它是确保我们在建立Student表的时候不会跟数据库中以前存在的Student表起冲突。后面的语句就很容易理解了,如果有数据库的同学应该很容易就能读懂它的意思:创建表Student,里面有三个字段:ID, Name, Grade,前两个字段是字符型而后面的Grade字段则是整数类型,并且ID字段是不能为NULL的。

是不是很简单?就这么八行代码,就创建了一个我们所需要的表结构。下面就让我们一起来操作这个表吧。

插入数据

还是先看代码。

插入数据

总体来说跟上面的创建数据库差不多,非常好理解,但是我们要注意一下在执行完了sql语句以后还需要加上一个comit()方法,这是跟创建表的代码的最大的区别。

还有一个小细节大家可以注意下,那就是柠檬会在出现异常的时候输出一句“插入数据失败!”并且用roollback()方法给回撤,这不是必要的,但可以让自己写出来的代码更优雅、更具有鲁棒性。相信大家也不想因为插入的格式不对而出现稀奇古怪的页面然后又重新去找错误吧。(第三次手动狗头)

查询语句

查询和删除语句跟其他语句都差不多,都挺简单的,但如果涉及到实际项目的话可能就更接地气些,柠檬想查询所有eval_index_code为030301的数据,实际代码如下。

结果

大概三十多万条我们要找的数据,柠檬后面要做的就是将这些数据整理成自己想要的格式然后放到模型里面去跑来跑去、跑来跑去。。。开个玩笑,放到模型里面跑然后将结果发到对口的公司即可。

总结

今天我们一起学习了如何用Python操作MySql数据库,是不是很接地气,柠檬在考虑要不要在写完文章以后将练习的代码放出来,如果有需要的童鞋可以在后台call柠檬,柠檬会给你发,如果人多的话以后柠檬会在文末附上源码,不知不觉已深夜,关电脑,晚安。

关联文章:

python进阶与数据操控_零基础机器学习Python进阶:Python操作MySql相关推荐

  1. python学会爬虫要多久_零基础三天学会Python爬虫(第二天)

    一.Python与urllib2 现在已经迫不及待的想尝试一下url和网络爬虫的配合关系了.我们上一届已经介绍过了,爬虫就是把URL地址中的网络资源读取出来,然后处理(保存到本地,或者打印等等).本篇 ...

  2. python怎么做表格_零基础小白怎么用Python做表格?

    用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件.本文用Python3!在给大家分享之前呢,小编推荐一下一个挺不错的交流宝地,里面都是一群热爱并在学 ...

  3. 零基础如何入门python语言_零基础如何开始学习 Python

    Python是一门简单优雅的计算机程序设计语言,相比于C语言.Java语言,Python编程具有以下特点: 1. Python语法简单,代码可读性高,容易入门: 2. Python代码具有一定的规范性 ...

  4. python多久能找到工作_零基础自学Python多久可以找工作?

    零基础自学Python多久可以找工作?零基础自学3个月很难找到工作.如果全职学习Python的话,学习6个的时间,不一定能达到找到工作的水平,掌握项目经验还需要更久,达到企业需要的岗位要求还需要多练习 ...

  5. 0基础学python做什么工作好-转行零基础该如何学习python?很庆幸,三年前的我选对了...

    这似乎是一个如荼如火的行业,对于一直在思考着转行的我,提供了一个不错的方向. 这个行业当然就是python程序员,真正开始决定转行是在24岁的时候,到现在已经有三年多了,我从零开始,每天用业余两个小时 ...

  6. python制作软件很复杂_零基础学Python难吗,或者有什么其他数据加工软件推荐?...

    之前因为一个问题的回答:零基础想系统的学习金融学.量化投资.数据分析.Python,需要哪些课程和书籍.获赞1000+.大概整理一下之前的答案,回答下这个问题. 金融领域的量化分析如今是很受重视的,所 ...

  7. python数据参数_零基础学习python数据分析——函数的参数

    原标题:零基础学习python数据分析--函数的参数 上一节课中我们讲了python的函数定义,Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数 ...

  8. 零基础轻松学python pdf 小码哥_零基础轻松学Python

    零基础轻松学Python电子书 Python之父Guido van Rossum力荐的Python门书.本书以通俗易懂的语言.好玩有趣的案例让读者轻轻松松.循序渐地从零始掌握Python 3 编程.本 ...

  9. python实现表格_零基础小白怎么用Python做表格?

    用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件.本文用Python3!在给大家分享之前呢,小编推荐一下一个挺不错的交流宝地,里面都是一群热爱并在学 ...

最新文章

  1. P1377 [TJOI2011]树的序 笛卡尔树优化建树
  2. 为什么需要消息队列MQ
  3. 前端利用CryptoJS进行AES对称加解密(16进制编码)
  4. 2019阿里云618大促主会场全攻略
  5. python operator __gt___Python operator.gt方法代码示例
  6. web标准三个要素 此标准的好处
  7. 一阶电路暂态响应的结果分析。_【2020考研】南京邮电大学813《电路分析》考试大纲...
  8. bzoj1211: prufer序列 | [HNOI2004]树的计数
  9. 小米商城php源码安装教程,搭建小米商城 框架div
  10. Android App 免杀教程
  11. 计算机数学ppt,数学工具 PPT版
  12. 阿里巴巴高级技术专家:如何成为优秀的技术主管(下篇)
  13. 动力下肢矫形器和外骨骼辅助策略综述
  14. django 框架模型之models常用的Field,这些Field的参数、及常见错误原因及处理方案。
  15. pyhanlp机构名识别时动态添加自定义词表(CustomDictionary)
  16. 苹果服务器维护时间表2019,ios 内购详解(2019)
  17. Lifeograph 0.7.3发布 基于gtkmm的轻量电子日记本
  18. ICME2021:基于VVC的角度加权预测
  19. 电信3G天翼宽带与SP1冲突导致WIN7桌面AERO半透明效果无法开启
  20. 在Vue中如何下载各种文件类型(excel、doc、docx)

热门文章

  1. 面试中遇到这 3 个SQL问题,最容易掉坑里!
  2. 云漫圈 | 写给对 ”游戏开发” 感兴趣的朋友们
  3. android 自定义控件viewgroup,Android自定义控件ViewGroup
  4. neon浮点运算_ARM 浮点运算详解
  5. 动态后台获取_后台管理系统的权限以及vue处理权限的思路
  6. Java实现首字母大写、驼峰命名与、划线转换,校验null
  7. IntelliJ IDEA 2020.1 瞬间定位文件夹、文件
  8. linux 查看shell脚本执行了多长时间
  9. SpringBoot入门到精通_第2篇 _1分钟实战需求项目
  10. 企业实战_12_MyCat水平扩展_分库分表