码迷,mamicode.com
首页 > 数据库 > 详细

Python连接mysql数据库

时间:2019-08-29 23:52:59      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:cut   mamicode   sel   class   border   syn   ado   lte   个数   

 

  尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发、亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的几种方式。

 

方法二、通过sqlalchemy连接数据库(推荐

 

1、连接数据库

from sqlalchemy import create_engine
engine = create_engine(‘mysql+pymysql://tblauopr:tblauopr@47.92.118.81:3306/tableau?charset=utf8‘)

通过create_engine创建一个mysql连接器,其格式为:mysql+pymysql://用户名:数据库密码@IP地址:端口号/数据库名称?charset=编码

 

 

2、对数据库进行操作

       创建好mysql连接器后,就可以利用pandas中的函数对数据库进行操作了,注意添加参数 con = engine

  • pd.read_sql(推荐)——>可以查询表清单、直接返回整个表、或用dql语句返回部分列
# 查看数据库中的数据表
formlist = pd.read_sql(‘show tables‘, con = engine)


# 通过表名返回整个表 data = pd.read_sql(‘tbl_orders‘,con = engine)

# 数据框取数 data = pd.read_sql(‘select * from tbl_orders‘, con = engine)

 

  • pd.read_sql_query
import pandas as pd
# 使用read_sql_query查看数据库中的数据表
formlist = pd.read_sql_query(‘show tables‘, con = engine)

# 取数操作,返回一个数据框
get_data_sql = "select * from tbl_orders"
data = pd.read_sql_query(get_data_sql, con = engine)

 

  • pd.read_sql_table
# 使用read_sql_table 直接读取订单详情表,通过表名返回整个表
usarrest = pd.read_sql_table(‘tbl_orders‘, con = engine)

 

 

 

 

方法二、通过pymysql进行连接

        数据库的访问无非是"建立数据库连接–>>执行操作–>>关闭连接"这样的过程,用pymysql也是如此。

1、建立连接

import pymsql
conn = pymysql.connect(host="47.92.118.81",port=3306,user="tblauopr",passwd="tblauopr",db="tableau",charset="utf8")

其中参数:

host是主机名或者IP地址;

port是端口号,一般为3306,

user为用户名,passwd为连接密码,

db为该连接下的数据库,charset为字符编码。 这些字段都可以在MySQL的连接信息中找到,如下图:
技术图片

 

2、对数据库进行操作

2.1、数据查询语言DQL

       数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块,只需先通过 cur = conn.cursor() 获取操作游标,再通过 .execute() 来执行需要完成的SQL语句即可。

# 获取操作游标
cur = conn.cursor()
sql = "select * from tbl_orders limit 10"

# 执行语句
cur.execute(sql)

# 通过fetchall获取数据
data = cur.fetchall()

# 关闭游标和连接
cur.close()
conn.close()

注意:

(1)执行sql语句后需通过.fetchall()返回,且返回的是 元组 形式的数据(如下图),而不是数据框;

(2)对数据库操作完毕之后需关闭游标与链接

 技术图片

 

2.2、数据操纵语言DML

数据操纵语言DML是对表数据的增、删、改,主要有三种形式:

(1) 插入:INSERT

(2) 更新:UPDATE

(3) 删除:DELETE

 

2.3、数据定义语言DDL

数据定义语言DDL用来创建、删除、更改数据库中的各种对象:表、视图、索引、同义词、聚簇等

(1)创建表:create table

(2)删除表:drop table

(3)修改表:alter table

 

如:CREATE TABLE/VIEW/INDEX/SYN/CLUSTER

       进行此类操作时,步骤与DQL相同,但是多了一个 提交 的步骤: .commit() ,只有在提交之后才能被执行。

# 获取操作游标
cur = conn.cursor()
sql = " create table test select * from tbl_orders "

# 执行语句
cur.execute(sql)
# 提交
conn.commit()

# 关闭游标和连接
cur.close()
conn.close()

 

 

 

 

Python连接mysql数据库

标签:cut   mamicode   sel   class   border   syn   ado   lte   个数   

原文地址:https://www.cnblogs.com/zwt20120701/p/11432235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!