Python3 MySQL 数据库连接

python3使用mysql作为数据库,安装pymysql作为驱动,然后安装sqlalchemy框架

PyMySQL 驱动

安装:

$ python3 -m pip install PyMySQL

历史:python mysql各类驱动简介

python版本早期用jmysqlLdb或叫做mysql-python,但年久失修。

于是出现了:mysqlclient,完全兼容mysqlldb,支持python3和2。

又出现了pymysql,是纯python打造,接口和pyhon-mysql兼容,并且安装方便,支持2,3。git✨5.6k

上一章讲解了创建用户和授权。本章根据参考教程,了解如何用python的包连接mysql数据库,并对数据进行操作。

前提:

创建了用户testuser, 并授权。

创建了testdb数据库。并创建了表employee

EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。

⚠️需要安装pymysql包:  $ python3 -m pip install PyMySQL

mysql>create table employee(

-> first_name varchar(20),

-> last_name varchar(20),

-> age int,

-> sex enum("man", 'woman'), -> income decimal(10,2));

创建临时文件linshi.py,  下面的代码演示了如何打开数据库,关闭数据库。

import pymysql

db = pymysql.connect(host='localhost',user= 'testuser', password="", db='testdb')

# 创建一个游标对象

cursor =db.cursor()

cursor.execute("select version();")

data =cursor.fetchone() print("database version %s" %data) db.close()

执行脚本输出: database version 8.0.18

下面的代码演示了如何创建数据库表

(使用原生sql语句)

import pymysql

db = pymysql.connect(host='localhost',user= 'testuser', password="", db='testdb')

# 创建一个游标对象

cursor =db.cursor()

cursor.execute("drop table if exists employee;")

sql = """CREATE TABLE EMPLOYEE (

FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) cursor.execute("desc employee") data =cursor.fetchall() for i in range(0, len(data)): print(data[i]) db.close()

⚠️:

cursor对象的方法有很多fetchall()返回一个tuple。

一定要关闭数据库。

SQLAlchemy框架

前提知识:

我们使用python对数据库的数据进行处理,有3种写sql语句的方法:

raw sql:  纯sql

sql expression language

orm框架

sql expression language API可以建立sql queries, 通过使用python object和operators。它是纯sql的抽象。

orm框架(对象关系映射):代表了用户定义的类的一系列方法。它是基于sql expression language的。

周边:各类ORM框架:

因为,原生的sql写起来麻烦所以诞生了很多封装wrapper包和orm框架。提高了写代码的速度,同时兼容多类数据库,付出的代价是性能上的一些损失。

例如:

sqlalchemy, 在编程领域使用广泛,借助pymysql等第三方库。因此既支持原生sql也支持orm。git✨只1.7k, 开发活跃

组件

Engine连接。

任何sqlalchemy程序的开始点。是数据库和它的api的抽象。把sql声明从sqlalchemy传递到database

使用 create_engine()函数创建一个engine, 它被用于直接连接数据库,或被传递给一个Session对象,然后和orm框架配合操作。

create_engine()格式

dialect+driver://username:password@host:port/database

dialect是指sqlite, mysql,oracle等。

driver是DBAPI的名字。用于连接数据库的。

url中的密码需要url encoded。文档中有编码的例子使用urllib模块。

# PyMySQL

engine= create_engine('mysql+pymysql://scott:tiger@localhost/foo')

例子:

import pandas aspd

import sqlalchemy

#进入根数据库,密码是123456,然后进入数据库test1

engine= sqlalchemy.create_engine('mysql+pymysql://root:123456@localhost:3306/test1')

#pandas包有一个read_sql命令

pd.read_sql('select * from orderinfo', engine)

# 从一个文件读取数据,然后写入到数据库:

df= pd.read_csv('order_info_utf.csv',names=['orderid','userid','ispaid','price','paidtime'])

# 还有参数if_exists,表示有则插入

df.to_sql('orderinfo',engine,index=False,if_exists='append')

python3数据库框架_Python3 MySQL 数据库连接:安装pymysql(mysql数据库驱动), sqlalchemy(ORM框架)。...相关推荐

  1. vb 通过php连接mysql数据库连接_PHP连接MySQL数据库的几种方法

    1.最简单的方式-mysql(面向过程) $con = mysql_connect("localhost","root","password" ...

  2. MySQL(一)——安装、创建数据库表、DML语言

    文章目录 1. 简述 2. 安装教程 3. 操作数据库 3.1 操作数据库的基本命令 3.2 数据库的列类型 3.3 数据库的字段属性(重点) 3.4 创建数据库表(重点) 3.5 数据表的类型 3. ...

  3. python数据库实例_Python3.6简单的操作Mysql数据库的三个实例

    安装pymysql 参考:https://github.com/PyMySQL/PyMySQL/ pip install pymsql 实例一 import pymysql # 创建连接 # 参数依次 ...

  4. MySQL自动化安装部署(数据库参数可自适应 DBA 推荐)

    适用于 CentOS 系统下,标准安装 MySQL 5.7 & 8.0 可以自适应部分数据库参数,安全.快捷.稳定. 一.前言 太久没有更新 CSDN 博客了,今天介绍的是我自己写的一个 My ...

  5. MySql学习【一】mysql的安装,操作数据库/表/查询表中数据/mysql日期计算

    1.安装和连接数据库的注意事项 1.在mac电脑上安装mysql,官网下载即可. 2.mysql返回的执行行数和时间,时间并不精确.其中时间是指挂钟时间 [返回进程启动到调用函数时所经过的CPU时钟计 ...

  6. 主从复制MySQL的安装和用数据库中间件MyCat实现分库分表、读写分离

    1.MySql主从复制 1.1.安装mysql 1.1.1.下载 下载地址:https://dev.mysql.com/downloads/mysql/ 1.1.2.卸载预装mysql #查看已安装: ...

  7. iis配置mysql数据库连接_iis配置mysql数据库

    [php] 实战配置 IIS PHP MYSQL 前言:网上很多 IIS PHP MYSQL 教程安装完都会出现不支持 MYSQL 的问题,因为 那些教程都不是实际操作,而这里本教程经过实际操作,.. ...

  8. mysql数据库用doc命令,myMySQL数据库怎么使用dos命令安装? MySQL数据库使用教程

    方法:1.在mysql官网下载MySQL压缩包并解压:2.配置环境变量:3.在mysql路径下新建my.ini文件,并进行配置:4.管理员运行cmd命令行,输入"mysqld install ...

  9. mysql数据库连接javaweb_javaweb中mysql数据库连接方法

    一.直接连接,不封装到工具类中,主要步骤: 先导包:mysql-connector-java-5.0.8-bin.jar(点击跳转到下载界面),放在WebRoot/WEB-INF/lib/下 1.加载 ...

最新文章

  1. python【蓝桥杯vip练习题库】ALGO-201大等于n的最小完全平方数
  2. Python3网络爬虫开发实战分析Ajax爬取今日头条街拍美图
  3. php.ini 302,302使用nginx和WordPress重定向循环
  4. python学生信息管理系统
  5. idea上安卓 Android SDK的安装
  6. U盘一键直接安装原版win7
  7. yunu.php,1.1 本地安装云优
  8. 1980-2010的87个国家/地区的一些经济和金融发展指标简单归纳和解释以及如何套动态面板公式计算
  9. 【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现
  10. ZigBee的应用场景
  11. 2019全球IT行业薪酬报告:平均年薪超70万!最高薪职位竟是...
  12. 使用Codemirror的markdown编辑器和使用showdown的Vue.js预览器
  13. GSEA介绍--鹏鹏原创,必是精品
  14. 滴滴是互联网届“最失败的垄断者”?
  15. JAVA实现纳税算法
  16. 任天堂国行 Switch OLED 版 评测
  17. Shell脚本实现自动检测/配置/开启/关闭redis后台服务
  18. web前端工具(配色图片图标)
  19. 2019GPLT L2-032 彩虹瓶 (25 分)
  20. java-非对称(RSA)签名加密(springboot框架)

热门文章

  1. WinForm二三事(一)消息循环
  2. 2021大同高考成绩查询,大同高考分数查询(查询方法+入口)
  3. linux 常用压缩命令,Linux常用的压缩及解压缩命令
  4. python考勤管理系统_python基础教程:face++与python实现人脸识别签到(考勤)功能...
  5. python对csv文件中的数据进行分类_python 数据处理 对csv文件进行数据处理
  6. python tkinter计算器实例_python库的tkinter带你进入GUI世界(计算器简单功能)
  7. Ubuntu18.04开机自启动脚本(systemctl方式)
  8. NDK-r17c编译FFmpeg4.3(支持硬编解码与neon)(七)
  9. Emacs一个键绑定多个命令
  10. C++普通类继承模版类demo