Python连接mysql数据库
Posted zwt20120701
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python连接mysql数据库相关的知识,希望对你有一定的参考价值。
尽管很多 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数据库的主要内容,如果未能解决你的问题,请参考以下文章