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

阅读文本大概需要 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柠檬,柠檬会给你发,如果人多的话以后柠檬会在文末附上源码,不知不觉已深夜,关电脑,晚安。

关联文章:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言每条代码的含义,为我解释一下,代码的意思。谢谢了。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #define LEN sizeof(struct student)struct student{long num;intscore;struct student *next;};struct student lista,listb;int n,sum0;int main(){struct student *creat(void);struct student *insert(struc…

ios时间相差多少天_iOS 计算某个时间到现在是多少月/天/时

直接上代码,传入一个NSString类型的日期格式如newsDate "2013-08-09 17:01";或者newsDate "2013/08/09 17:01";返回如果有一个月,就不返回天,依次类推。-(NSString *)getUTCFormateDate:(NSString *)newsDate{// newsD…

calender获取日期前几月_java获取当前时间和前一天日期(实现代码)

String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/";Date dNow new Date(); //当前时间Date dBefore new Date();Calendar calendar Calendar.getInstance(); //得到日历calendar.setTim…

二级c语言题型分数,计算机二级C语言题型和评分标准

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼全国计算机二级考试大题把题目给定程序删除了,正确运行,这样会不会给分?50、请编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据, 按列的顺序依次放到一维数组中。函数fun中给出的语句仅供…

python矩阵乘法菜鸟_Python中的几种矩阵乘法(转)

一. np.dot()1.同线性代数中矩阵乘法的定义。np.dot(A, B)表示:对二维矩阵,计算真正意义上的矩阵乘积。对于一维矩阵,计算两者的内积。2.代码【code】import numpy as np# 2-D array: 2 x 3two_dim_matrix_one np.array([[1, 2, 3], [4, 5,…

W ndows找不到explorer,windows找不到explorer.exe的处理教程

很多网友入手windows过程里找不到explorer.exe,很是烦恼,为了帮助大家排忧解难,这里小编就分享了windows找不到explorer.exe的处理教程,希望可以帮助到大家。windows找不到explorer.exe的处理教程1、按winr打开运行窗口&#xff0…

vue2实践揭秘pdf_《Vue2实践揭秘》源码

todos 组件源码:{{title}}keyup.13"addItem"placeholder"快写下您要我记住的事吧"autofocus"true"/>{{index1}}.{{todo.value}}{{todo.created|date}}import ./assets/todos.lessimport moment from momentimport moment/locale/z…

c语言设计四路彩灯显示系统,四路彩灯控制器设计方案.doc

四路彩灯控制器设计方案1 前言1.1序言随着经济的发展,城市之间的灯光系统花样越来越多,用中规模集成电路设计并制作一个四路彩灯显示系统,可用于节日庆典,医院病房等多处地方,同用单片机控制相比,它具有准确…

python django restful框架_Django RESTful API 实例带你快速上手开发

1. Django 是什么Django 是基于 Python 的一个 Web 开发框架,一般和 Flask Tornado 被称为 Python Web 三大框架,Django 是其中最成熟、稳定、完善的。非常适合企业级应用。Django 是一个基于 MVC 架构的框架,但在 Django 中是模型(Model)、模…

c语言 复杂指针声明,C指针复杂声明

对于这种复杂的声明格式,可以采用替换的形式来看明白。比如char (*(*x())[])();这个, 你可以找个 a代替括号里面的,然后逐步代替。char (*(*x())[])();// 用a 代替 (*x())[]char (*a)();// 上面的a的意思就是一个函数指针,空参&am…

echarts地图api series_echarts学习(4)——地图实现

本文记录两点:1.地图实现;2.各省份地图数据。地图实现都开始做地图了,echarts怎么也有点了解了吧,所以前两句初始化就不多说了,不清楚的可以翻翻我以前的随笔。代码:var china document.getElementById(&q…

android如何阻塞主线程,Android-Android如何避免阻塞主线程

Android的Handler和AsyncTask,可以避免阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的。AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单。不需要借助线程和Handler即可实现。获取…

易源数据_易源接口-互联网API入口

提交网址推广网站请加QQ群159729064昆明秀派科技有限公司在2015年成立,以领先的API数据服务及系列产品为用户提供基于大数据的API服务,帮助用户快速获得API数据,解决API数据买卖双方缺乏交易场所、技术标准、财务流程、第三方担保、运营维护、…

极光推送 android 最新,Android——快速集成极光推送-Go语言中文社区

集成极光推送1,首先肯定是注册,添加应用2,开始自动集成比手动集成简单第一步 在 build.gradledefaultConfig {multiDexEnabledtrueapplicationId rootProject.ext.cfg.applicationIdminSdkVersionrootProject.ext.cfg.minSdkVersiontargetSdk…

raft2020年更新_ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型

计算机视觉三大国际顶级会议之一的 ECCV 2020 已经召开。今年 ECCV 共收到有效投稿 5025 篇,是 ECCV 2018 论文投稿数量的二倍还要多,接收论文1361 篇,接收率为 27%,相比上届会议下降了约 5%。在接收论文中,oral论文数…

android从服务检查,android开发分享Android:你如何检查是否启用了特定的AccessibilityService...

我最后自己做了这个:public boolean isAccessibilityEnabled(){ int accessibilityEnabled 0; final String LIGHTFLOW_ACCESSIBILITY_SERVICE "com.example.test/com.example.text.ccessibilityService"; boolean accessibilityFound false; try { ac…

华为云服务怎么弄金卡会员_万科牵手华为终端云服务,共建松山湖智慧商圈

12月18日,坐落在东莞松山湖南华为旁的44000㎡的开放式商业mall——滨湖万科里正式启幕。现场华为终端云服务部还与万科南方区域商业事业部签署了战略合作协议,开启共建智慧商圈的新版图。值得一提的是,这也是华为终端云服务与万科在商业板块的…

cad2014打开文件崩溃_CAD玩的再牛,崩溃了咋办?

导读前几天,一入职新人晚上加班画完的图纸在最后一刻CAD崩溃了!好在最后在临时保存文件夹中找到了完整的图纸。这才免于通宵。CAD崩溃是我们画图中经常遇到的问题。对于CAD崩溃后的处理,相信老司机都已经游刃有余。但也有防不胜防的时候&…

android 弹窗ui,Android 弹出窗口与对话框 UI设计

左图: Android 自带的日期选择弹窗; 右图: Android 自带的时间选择弹窗.左图: Android 日历中的重复选择; 右图: Chrome 中的打印.干净简洁的布局与有趣儿又引人注目的交互让操作变得轻松而愉快, 尤其是那在时间选择器中出现的双环.同样的, 也有很多人试图在自己的应用中给他们…

staruml透明_第05组 团队项目-需求分析报告

组队后的团队项目的整体计划安排(1 2分)序号持续时间主要任务是否完成一9.28组队√二10.1-10.21制作团队选题报告√三10.22-10.27制作团队需求分析报告√四10.28-11.2团队编程准备与制作五10.28-11.11alpha冲刺准备六11.12-11.22进行alpha冲刺,并发布alpha版本七11.…