python中mysql管理模块mysql-connector使用

一.  安装第三方管理模块
首先安装第三方mysql管理模块:pip install mysql-connector.如果安装过程中出现
WARNING: You are using pip version 21.3; however, version 21.3.1 is available.
You should consider upgrading via the 'C:\Program Files\python3.9\python.exe -m pip install --upgrade pip' command.
说明pip的版本有新的了,可以升级一下,命令:python.exe -m pip install --upgrade pip
如果直接用官方的源安装速度太慢的话可以使用清华或者阿里的源,更改方法如下:
a. 临时使用镜像源下载Python包:
以numpy为例:pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
其他镜像源地址:
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
b. 永久更改镜像源:
在"C:\Users\用户名"文件夹下,添加pip文件夹,文件夹内新建pip.ini文件,内容为:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后可以,在交互式界面直接import测试看一下,导入的模块import mysql.connector 注意是点不是横杠。
二. 创建数据库连接
语法:connect(host,user,passwd,database,auth_plugin = "mysql_native_password")auth_plugin为mysql密码加密认证方式,
如果认证方式报错,出现如下提示:
mysql Authentication plugin ‘caching_sha2_password’ is not supported问题
是因为在MySQL 8.0以后,默认的密码加密方式是caching_sha2_password而不是mysql_native_password。
解决方法:
1.登录mysql数据库 mysql -u root -p
2.更新身份认证方式 alter user root@localhost identified with mysql_native_password by '密码';
3.查看修改结果:
use mysql;
select * from user\G;
4.修改后的加密方式:
engine = create_engine(
"mysql+mysqlconnector://username:password@host:port/database?auth_plugin=mysql_native_password"
)
数据库连接成功后,可以打印输出mysql.connector对象的地址!
三. 数据库的操作
A.单条插入语句;
生成一个cursor对象:(mysql.connector对象).cursor();例如:
con=mysql.connector.connect(host="mysql地址",user="用户名",passwd="密码",database="数据库名“,auth_plugin = "mysql_native_password")
my_cursor=con.cursor()
编写sql语句
sql="insert into 表名(字段1,字段2...) values (%s,%s....)" 在一个表里添加数据,%s只是一个占位符
val=(具体数值1,具体数值2....)
执行sql语句
my_cursor.execute(sql,val)
提交
con.commit()
print(my_cursor.rowcount(插入记录统计),"插入记录成功!")
B.批量插入数据;
批量插入数据操作步骤:
获取连接对象-->获取cursor对象-->编写sql语句-->使用列表赋值-->调用executemany()执行sql语句-->提交事务 例
# 获取连接对象
con=mysql.connector.connect(host='localhost',user='root',passwd='123',database='test01',auth_plugin = "mysql_native_password")
# print(con)
# 获取cursor对象
my_cursor=con.cursor()
#编写sql语句
sql="insert into ss(name,classroom,yuwen,shuxue) values (%s,%s,%s,%s)"
# 使用列表赋值
vals=[
('赵大','10班',90,92),
('赵二','11班',87,89),
('赵三','10班',93,23),
('赵四','11班',80,90),
('赵五','11班',70,0),
]
#调用executemany()执行sql语句
my_cursor.executemany(sql,vals)
#提交事务
con.commit()
print(my_cursor.rowcount,"条记录插入成功!")
C.更新和删除数据的操作
更新删除数据操作步骤:获取连接对象-->获取cursor对象-->编写sql语句-->调用executemany()执行sql语句-->提交事务
# 获取连接对象
con=mysql.connector.connect(host='localhost',user='root',passwd='123',database='test01',auth_plugin = "mysql_native_password")
# print(con)
# 获取cursor对象
my_cursor=con.cursor()
#编写sql语句
sql="update ss set name='刘飞' where num=13" 更新数据
sql='delete from ss where num=12' #删除语句
#调用executemany()执行sql语句
my_cursor.execute(sql)
#提交事务
con.commit()
print(my_cursor.rowcount,"条记录修改成功!")
D.查询操作
查询数据操作步骤:获取连接对象-->获取cursor对象-->编写sql语句-->调用executemany()执行sql语句-->提交事务--执行fetchall方法获取返回结果
结果为列表类型,遍历列表数据 例题:
import mysql.connector
# 获取连接对象
con=mysql.connector.connect(host='localhost',user='root',passwd='123',database='test01',auth_plugin = "mysql_native_password")
# print(con)
# 获取cursor对象
my_cursor=con.cursor()
#编写sql#编写sql语句
sql='select * from ss where yuwen>70'
my_cursor.execute(sql)
my_re=my_cursor.fetchall()
print(type(my_re))
for i in my_re:
print(i)
posted @ 2021-10-30 18:56  菜鸟阿呆  阅读(1040)  评论(0编辑  收藏  举报