一文以Python连接 MySQL为例操作数据库

已收录   阅读次数: 690
2021-10-0723:30:11 发表评论
摘要

前一篇文章使用Nodejs链接MySQL实现操作数据库,具体可以参看下方的前情提要,伯衡君受到了启发,那么用其他编程语言自然也能链接操作数据库啦,于是伯衡君想到了最为熟悉的Python来进行同样的操作,自然也是可以实现的,而且似乎还更为简洁,整理一番以做个总结,使用Python来链接MySQL以操作数据库……

分享至:
一文以Python连接 MySQL为例操作数据库

开篇寄语

前一篇文章使用Nodejs链接MySQL实现操作数据库,具体可以参看下方的前情提要,伯衡君受到了启发,那么用其他编程语言自然也能链接操作数据库啦,于是伯衡君想到了最为熟悉的Python来进行同样的操作,自然也是可以实现的,而且似乎还更为简洁,整理一番以做个总结,使用Python来链接MySQL以操作数据库……

前情提要

准备要素

  • 本机安装Python3(以此为例),并用pip install mysql命令安装此包
  • 安装Mysql数据库到本机,同时建议安装MySQLWorkbench应用,并有一些数据库基础知识

内容详情

以上前提准备都已经做好后,就可以进行下一步骤啦,在此之前,先在本地数据库sys建立一个表格,伯衡君建立了一个名为tutorials_tbl的表格,同时新建了一些数据放进表格,如下图所示:

一文以Python连接 MySQL为例操作数据库

要想让Node.js链接数据库,而不出现‘NodeJS MySQL Client does not support authentication protocol’错误,请在MySQLWorkbench,输入以下两条命令分别执行即可:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your new password'; 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your new password';

如下图所示:

一文以Python连接 MySQL为例操作数据库

图中的'your new password'是指的自定义密码,待会链接的时候会用到。

接下来,打开VScode(伯衡君用的是此编辑器,还有其他可以根据需要自行选择),在其中新建一个py文件, 之后输入以下代码:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="your password"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE DATABASE mydatabase")

新建了一个数据库名为“database”后,之后就可以在mydb中加入这个参数了,如下代码所示:

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="your password",
  database="mydatabase"
)

相对应的,数据库也出现了该库,如下图所示:

一文以Python连接 MySQL为例操作数据库

之后,用python往里面放入一个表格table,(伯衡君使用的是VScode,新建了一个py文件)代码如下:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="your password",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")

运行后,数据库就会在mydatabase多出一个名为customers的表格,如下图所示:

一文以Python连接 MySQL为例操作数据库

如果想插入数据,请用以下代码:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="your password",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("Zhang Boheng", "Singapore")

#批量添加可以用以下方式
```
val = [
  ('Peter', 'Lowstreet 4'),
  ('Amy', 'Apple st 652'),
  ('Hannah', 'Mountain 21'),
  ('Michael', 'Valley 345'),
  ('Sandy', 'Ocean blvd 2'),
  ('Betty', 'Green Grass 1'),
  ('Richard', 'Sky st 331'),
  ('Susan', 'One way 98'),
  ('Vicky', 'Yellow Garden 2'),
  ('Ben', 'Park Lane 38'),
  ('William', 'Central st 954'),
  ('Chuck', 'Main Road 989'),
  ('Viola', 'Sideway 1633')
]
```
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

运行后,就会在表格中体现,如下图所示:

一文以Python连接 MySQL为例操作数据库

如果想删除这条数据,则利用以下代码:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="your password",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "DELETE FROM customers WHERE name='{0}';".format("Zhang Boheng")
mycursor.execute(sql)

mydb.commit()

这样操作后,那条数据就没了,如下图所示:

一文以Python连接 MySQL为例操作数据库

以上两例及足够了,更多示例可以自行用数据库命令自行演示。

  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: