利用python操作mysql数据库用法简单,环境配置容易,本文将实现对库增、删、改、查的简易封装!
1. 环境配置
安装第三方包 ,导入模块 mysql.connector
pip install mysql-connector
2.使用说明
本文将提供add,delete,update,query以及connect五种方法,下边将详述使用参数:
方法名 | 描述 | 传入参数 | return |
connect |
创建链接数据库* |
opt:用户可传入自定义数据库链接信息
{'host':'','user':'','password':'','port':'','database':'','charset':''} |
返回链接connect |
add |
插入 |
mydb:创建的链接connent; # sql = "INSERT INTO sites (name, url) VALUES (%s, %s)" # sql = "UPDATE sites SET name = %s WHERE name = %s" val:插入、更新的值 # val = ("RUNOOB", "https://www.runoob.com") # val = ("Zhihu", "ZH") |
无 |
update | 更新 | ||
delete | 删除 |
mydb,sql |
|
query | 查询 | list |
说明:首先建立链接,其次再将获取到的链接进行数据库增删改查
3.源代码
# coding=utf-8
import mysql.connector #先安装mysql-connector-python-1.0.12-py3.3,再引入包 pip install mysql-connector #创建链接数据库
def connect(opt):
config={'host':opt['host'] or '127.0.0.1',#默认127.0.0.1
'user':opt['user'] or 'root',
'password':opt['password'] or 'root',
'port':opt['port'] or 3306,#默认即为3306
'database':opt['database'] or 'hibernate',
'charset':opt['charset'] or 'utf8'#默认即为utf8
}
try:
mydb=mysql.connector.connect(**config)#connect方法加载config的配置进行数据库的连接,完成后用一个变量进行接收
except mysql.connector.Error as e:
print('数据库链接失败!',str(e))
else:#try没有异常的时候才会执行
print("数据库连接sucessfully!")
return mydb # 插入
# sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
# val = ("RUNOOB", "https://www.runoob.com")
def add(mydb,sql,val):
mycursor = mydb.cursor()
mycursor.execute(sql, val)
mydb.commit() # 数据表内容有更新,必须使用到该语句
print(mycursor.rowcount, "记录插入成功。") # 更新
# sql = "UPDATE sites SET name = %s WHERE name = %s"
# val = ("Zhihu", "ZH")
def update(mydb,sql,val):
mycursor = mydb.cursor()
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, " 条记录被修改") # 查询
# sql="SELECT * FROM sites"
def query(mydb,sql):
mycursor = mydb.cursor()
mycursor.execute(sql)
myresult = mycursor.fetchall() # fetchall() 获取所有记录
for x in myresult:
print(x)
return myresult # 删除
# sql = "DELETE FROM sites WHERE name = '*'"
def delete(mydb,sql):
mycursor = mydb.cursor()
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, " 条记录删除")