使用Python做数据处理时,经常会使用MySQL做数据存储。这里介绍几种Python操作MySQL的几个库模块。
MySQL-python
MySQL-python只支持Python2,使用范围还是较广的,虽然
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
复制
Python2在2019年1月1日起将不再更新,但是企业中很多旧的项目就是用的Python2开发的,就像Windows7操作系统微软不更新了,但是使用Windows7的用户仍然占70%以上,所以这个也是有必要的了解的。
安装方法
# pip2 install MySQL-python
复制
# -*- coding:utf-8 -*-
# pip2 install MySQL-python
import MySQLdb
class MysqlClient:
def __init__(self, db, host = "localhost", user = "root", passwd = "root", charset='utf8'):
self.conn = MySQLdb.connect (host = host, user = user, passwd = passwd, db= db, charset=charset)
def insert(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
cursor.close()
self.conn.commit()
def query(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
return result
# 执行删除表,清空表操作
def execute(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
cursor.close()
self.conn.commit()
def close(self):
self.conn.close ()复制
注意:这个包,只支持Python2.
用法
def demo():
import mysql.MySQLdbClient as mysqldb
conn = mysqldb.MysqlClient(host = 'localhost', user = 'root', passwd = 'root', db= 'test')
# 查询
print('===============查询结果=============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)
# 删除
sql = 'delete from user where user_name ="bb"'
conn.execute(sql)
# 查询删除后
print('================删除后结果============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)
# 插入
sql = '''
insert into user(user_name, pass_word, email, nick_name, reg_time) values('bb', 'bb123456', 'bb@126.com', 'bb2', '2019年6月24日 下午11时26分57秒')
'''
conn.insert(sql)
# 查询插入后
print('==============插入后结果==============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)复制
执行脚本:
python mysqlDemo.py
复制
结果
********** demo() =>
===============查询结果=============
(('cc', 'cc123456', 'cc@126.com'), ('bb', 'bb123456', 'bb@126.com'))
================删除后结果============
(('cc', 'cc123456', 'cc@126.com'),)
==============插入后结果==============
(('cc', 'cc123456', 'cc@126.com'), ('bb', 'bb123456', 'bb@126.com'))复制
PyMySQL
安装方法
# pip3 install PyMySQL
复制
使用方法
# -*- coding:utf-8 -*-
# pip3 install PyMySQL
import pymysql
class MysqlClient:
def __init__(self, db, host = "localhost", user = "root", passwd = "root", charset='utf8'):
self.conn = pymysql.connect (host = host, user = user, passwd = passwd, db= db, charset=charset)
def insert(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
cursor.close()
self.conn.commit()
def query(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
return result
# 执行删除表,清空表操作
def execute(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
cursor.close()
self.conn.commit()
def close(self):
self.conn.close ()复制
用法
def demo2():
import mysql.mysqlclint as mysqlclint
conn = mysqlclint.MysqlClient(host = 'localhost', user = 'root', passwd = 'root', db= 'test')
# 查询
print('===============查询结果=============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)
# 删除
sql = 'delete from user where user_name ="bb"'
conn.execute(sql)
# 查询删除后
print('================删除后结果============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)
# 插入
sql = '''
insert into user(user_name, pass_word, email, nick_name, reg_time) values('bb', 'bb123456', 'bb@126.com', 'bb2', '2019年6月24日 下午11时26分57秒')
'''
conn.insert(sql)
# 查询插入后
print('==============插入后结果==============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)复制
执行脚本
python mysqlDemo.py
复制
结果
********** demo2() =>
===============查询结果=============
(('cc', 'cc123456', 'cc@126.com'), ('bb', 'bb123456', 'bb@126.com'))
================删除后结果============
(('cc', 'cc123456', 'cc@126.com'),)
==============插入后结果==============
(('cc', 'cc123456', 'cc@126.com'), ('bb', 'bb123456', 'bb@126.com'))复制
mysqlclient用法
# -*- coding:utf-8 -*-
# pip3 install mysqlclient
import MySQLdb
class MysqlClient:
def __init__(self, db, host = "localhost", user = "root", passwd = "root", charset='utf8'):
self.conn = MySQLdb.connect (host = host, user = user, passwd = passwd, db= db, charset=charset)
def insert(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
cursor.close()
self.conn.commit()
def query(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
return result
# 执行删除表,清空表操作
def execute(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
cursor.close()
self.conn.commit()
def close(self):
self.conn.close ()复制
用法
def demo3():
import mysql.PyMSQLClient as pymysql
conn = pymysql.MysqlClient(host = 'localhost', user = 'root', passwd = 'root', db= 'test')
# 查询
print('===============查询结果=============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)
# 删除
sql = 'delete from user where user_name ="bb"'
conn.execute(sql)
# 查询删除后
print('================删除后结果============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)
# 插入
sql = '''
insert into user(user_name, pass_word, email, nick_name, reg_time) values('bb', 'bb123456', 'bb@126.com', 'bb2', '2019年6月24日 下午11时26分57秒')
'''
conn.insert(sql)
# 查询插入后
print('==============插入后结果==============')
sql = 'select user_name,pass_word,email from user'
users = conn.query(sql)
print(users)复制
执行脚本
python mysqlDemo.py
复制
结果
********** demo3() =>
===============查询结果=============
(('cc', 'cc123456', 'cc@126.com'), ('bb', 'bb123456', 'bb@126.com'))
================删除后结果============
(('cc', 'cc123456', 'cc@126.com'),)
==============插入后结果==============
(('cc', 'cc123456', 'cc@126.com'), ('bb', 'bb123456', 'bb@126.com'))复制
程序入口
if __name__ == '__main__':
print('********** demo() => ')
demo()
print('********** demo2() => ')
demo2()
print('********** demo3() => ')
demo3()复制
猜你可能喜欢
文章转载自大数据技术派,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
MySQL数据库当前和历史事务分析
听见风的声音
377次阅读
2025-04-01 08:47:17
墨天轮个人数说知识点合集
JiekeXu
375次阅读
2025-04-01 15:56:03
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
349次阅读
2025-03-28 16:28:31
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
301次阅读
2025-04-15 14:48:05
MySQL8.0直方图功能简介
Rock Yan
278次阅读
2025-03-21 15:30:53
MySQL 有没有类似 Oracle 的索引监控功能?
JiekeXu
268次阅读
2025-03-19 23:43:22
云和恩墨杨明翰:安全生产系列之MySQL高危操作
墨天轮编辑部
262次阅读
2025-03-27 16:45:26
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
254次阅读
2025-04-15 23:49:58
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
247次阅读
2025-04-07 12:14:29
PG vs MySQL 执行计划解读的异同点
进击的CJR
169次阅读
2025-03-21 10:50:08