前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python mysql连接操作(增删改查)

python mysql连接操作(增删改查)

原创
作者头像
织幻妖
修改2021-02-18 17:36:22
2K0
修改2021-02-18 17:36:22
举报
文章被收录于专栏:用户7552167的专栏

mysql是当下最流行的关系型数据库之一,今天用python连接操作下mysql

一.准备工作

1.安装 mysql-connector

mysql-connectorMySQL提供的驱动器,是用来连接mysql的

2.修改mysql的配置文件

在 MySQL 8.0 中验证插件和密码加密方式发生了变化,要让它使用“mysql_native_password”插件认证方式,所以需要在mysql的配置文件my.ini中[mysqld]下添加一下内容,并重启mysql

代码语言:javascript
复制
[mysqld]
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

二.连接数据库

代码如下:需要准确的输入数据库的主机地址,用户名,密码

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",   #数据库主机地址
    user="root",        #数据库用户名
    passwd="Aa123",     #数据库密码
    auth_plugin='mysql_native_password'    #使用插件验证
)
print(mydb)

三.使用CREATE DATABASE创建数据库

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",   #数据库主机地址
    user="root",        #数据库用户名
    passwd="Aa123",     #数据库密码
    auth_plugin='mysql_native_password'    #使用插件验证
)
mycursor = mydb.cursor()
#使用CREATE DATABASE 创建student_db库
mycursor.execute("CREATE DATABASE student_db")

执行上面语句,就可以看到navicate中多了一个student_db库

四.使用CREATE TABLE创建数据表

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",   #数据库主机地址
    user="root",        #数据库用户名
    passwd="Aa123",     #数据库密码
    auth_plugin='mysql_native_password',   #使用插件验证
    database="student_db"   #指定连接student_db库
)
mycursor = mydb.cursor()
#使用CREATE TABLE 创建student表
mycursor.execute("CREATE TABLE student (name VARCHAR(255), score int(10))")

执行语句,效果如下

五.使用SHOW TABLES查看数据表是否存在

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 数据库主机地址
    user="root",  # 数据库用户名
    passwd="Aa123",  # 数据库密码
    auth_plugin='mysql_native_password',  # 使用插件验证
    database="student_db"  # 指定连接student_db库
)
mycursor = mydb.cursor()
mycursor.execute("SHOW TABLES")

for x in mycursor:
    print(x)

结果如下

代码语言:javascript
复制
('student',)

六.使用INSERT INTO插入数据

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",   #数据库主机地址
    user="root",        #数据库用户名
    passwd="Aa123",     #数据库密码
    auth_plugin='mysql_native_password',   #使用插件验证
    database="student_db"   #指定连接student_db库
)
mycursor = mydb.cursor()
sql = "INSERT INTO student (name, score) VALUES (%s, %s)"
val = ("唐三", 33)
mycursor.execute(sql, val)

mydb.commit()  # 数据表内容有更新,必须使用到该语句

print(mycursor.rowcount, "记录插入成功。")

执行代码

代码语言:javascript
复制
1
记录插入成功。

数据库如下:

七.使用executemany批量插入

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 数据库主机地址
    user="root",  # 数据库用户名
    passwd="Aa123",  # 数据库密码
    auth_plugin='mysql_native_password',  # 使用插件验证
    database="student_db"  # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "INSERT INTO student (name, score) VALUES (%s, %s)"
val = [
    ('小舞', 55),
    ('马六', 46),
    ('赵四', 24)
]

mycursor.executemany(sql, val)

mydb.commit()  # 数据表内容有更新,必须使用到该语句

print(mycursor.rowcount, "记录插入成功。")

执行语句:

代码语言:javascript
复制
3 记录插入成功。

数据库

八.使用SELECT查询数据

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 数据库主机地址
    user="root",  # 数据库用户名
    passwd="Aa123",  # 数据库密码
    auth_plugin='mysql_native_password',  # 使用插件验证
    database="student_db"  # 指定连接student_db库
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM student")

myresult = mycursor.fetchall()  # fetchall() 获取所有记录

for x in myresult:
    print(x)

执行效果如下

代码语言:javascript
复制
('唐三', 33)
('小舞', 55)
('马六', 46)
('赵四', 24)

九.使用ALTER TABLE来给表添加主键

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",   #数据库主机地址
    user="root",        #数据库用户名
    passwd="Aa123",     #数据库密码
    auth_plugin='mysql_native_password',   #使用插件验证
    database="student_db"   #指定连接student_db库
)
mycursor = mydb.cursor()
mycursor.execute("ALTER TABLE student ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")

执行效果:

十.使用where 条件语句查询

按照分数score升序

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 数据库主机地址
    user="root",  # 数据库用户名
    passwd="Aa123",  # 数据库密码
    auth_plugin='mysql_native_password',  # 使用插件验证
    database="student_db"  # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "SELECT * FROM student WHERE name LIKE '%三%'"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
    print(x)

执行效果:

代码语言:javascript
复制
('唐三', 33, 1)

十一.使用ORDER BY排序

查询结果排序可以使用ORDER BY语句,默认的排序方式为升序,关键字为ASC,如果要设置降序排序,可以设置关键字DESC

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 数据库主机地址
    user="root",  # 数据库用户名
    passwd="Aa123",  # 数据库密码
    auth_plugin='mysql_native_password',  # 使用插件验证
    database="student_db"  # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "SELECT * FROM student ORDER BY score"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
    print(x)

执行效果:

代码语言:javascript
复制
('赵四', 24, 4)
('唐三', 33, 1)
('马六', 46, 3)
('小舞', 55, 2)

十二.使用DELETE FROM删除数据

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 数据库主机地址
    user="root",  # 数据库用户名
    passwd="Aa123",  # 数据库密码
    auth_plugin='mysql_native_password',  # 使用插件验证
    database="student_db"  # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "DELETE FROM student WHERE name = '赵四'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, " 条记录删除")

执行结果:

代码语言:javascript
复制
1  条记录删除

十三.使用UPDATE更新数据

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 数据库主机地址
    user="root",  # 数据库用户名
    passwd="Aa123",  # 数据库密码
    auth_plugin='mysql_native_password',  # 使用插件验证
    database="student_db"  # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "UPDATE student SET name ='小五' WHERE name = '小舞'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, " 条记录被修改")

执行效果:

代码语言:javascript
复制
1  条记录被修改

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.准备工作
    • 1.安装 mysql-connector 库
      • 2.修改mysql的配置文件
      • 二.连接数据库
      • 三.使用CREATE DATABASE创建数据库
      • 四.使用CREATE TABLE创建数据表
      • 五.使用SHOW TABLES查看数据表是否存在
      • 六.使用INSERT INTO插入数据
      • 七.使用executemany批量插入
      • 八.使用SELECT查询数据
      • 九.使用ALTER TABLE来给表添加主键
      • 十.使用where 条件语句查询
      • 十一.使用ORDER BY排序
      • 十二.使用DELETE FROM删除数据
      • 十三.使用UPDATE更新数据
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档