Python连接Mysql进行增删改查

Python连接Mysql

1.安装对应的库

使用Python连接Mysql数据库需要安装相应的库

以管理员身份运行cmd,输入命令

pip install mysql-connector

安装完成后建立
test.py
写入
import mysql.connector
保存后运行
python test.py
用以测试模块库是否安装完成,如果不报错,说明安装完成

2.进行连接测试

编写connectTest.py文件
文件内容:

import mysql.connector


connect = mysql.connector.connect(
    host="127.0.0.1",       # 数据库主机地址
    user="root",            # 数据库用户名
    passwd="root",          # 数据库密码
    database="mysql"  # 要连接的数据库
)
#关闭连接
connect.close()

运行文件python connectTest.py如果没有报错提示说明连接成功,如果报错提示在这里插入图片描述
说明连接失败,请检查账户、密码以及数据库是否正确,查看数据库是否开机

3.执行sql命令

3.1创建表

import mysql.connector


connect = mysql.connector.connect(
    host="127.0.0.1",       # 数据库主机地址
    user="root",            # 数据库用户名
    passwd="root",          # 数据库密码
    database="test"  		# 要连接的数据库
)

#数据库建表指令
sql = """CREATE TABLE `test`.`testtable`  (
        `id` int NOT NULL,
        `name` varchar(255) NULL,
        `age` int NULL,
        `address` varchar(255) NULL,
        PRIMARY KEY (`id`)
        );"""
#获取数据库操作游标
myCursor=connect.cursor()
#执行sql语句
myCursor.execute(sql)
#提交给数据库执行命令
connect.commit()

connect.close()

执行后会创建一个名为testtabe的表
在这里插入图片描述

3.2插入数据

在这里插入图片描述

import mysql.connector


connect = mysql.connector.connect(
    host="127.0.0.1",       # 数据库主机地址
    user="root",            # 数据库用户名
    passwd="root",          # 数据库密码
    database="test"         # 要连接的数据库
)

# 数据库插入指令,待定字符无论是数值还是文字,都需要用%s
sql = "INSERT INTO `test`.`testtable`(`id`, `name`, `age`, `address`) VALUES (%s,%s,%s,%s)"

var = (1, 'windSnowLi', 20, '中国')


# 获取数据库操作游标
myCursor = connect.cursor()
try:
    # 执行sql语句
    myCursor.execute(sql, var)
    # 提交给数据库执行命令
    connect.commit()
except :
    #回滚,以防出现错误
    connect.rollback()

connect.close()

随后检查数据库
在这里插入图片描述

3.3查询语句

import mysql.connector


connect = mysql.connector.connect(
    host="127.0.0.1",       # 数据库主机地址
    user="root",            # 数据库用户名
    passwd="root",          # 数据库密码
    database="test"         # 要连接的数据库
)

# 数据库查询指令
sql = "select * from testtable"


# 获取数据库操作游标
myCursor = connect.cursor()
try:
    # 执行sql语句
    myCursor.execute(sql)
    results = myCursor.fetchall()
    print(results)
except :
   print("查询失败")

connect.close()

在这里插入图片描述

3.4更新数据

import mysql.connector


connect = mysql.connector.connect(
    host="127.0.0.1",       # 数据库主机地址
    user="root",            # 数据库用户名
    passwd="root",          # 数据库密码
    database="test"         # 要连接的数据库
)

# 数据库更新指令
sql = "UPDATE `test`.`testtable` SET `id` = 2, `name` = 'mirror', `age` = 19, `address` = '祖国' WHERE `id` = 1"

# 获取数据库操作游标
myCursor = connect.cursor()
try:
    # 执行sql语句
    myCursor.execute(sql)
    # 提交给数据库执行命令
    connect.commit()
except :
    #回滚,以防出现错误
    connect.rollback()

connect.close()

在这里插入图片描述

3.5删除数据

import mysql.connector


connect = mysql.connector.connect(
    host="127.0.0.1",       # 数据库主机地址
    user="root",            # 数据库用户名
    passwd="root",          # 数据库密码
    database="test"         # 要连接的数据库
)

# 数据库删除指令
sql = "DELETE FROM `test`.`testtable` WHERE `id` = 1"

# 获取数据库操作游标
myCursor = connect.cursor()
try:
    # 执行sql语句
    myCursor.execute(sql)
    # 提交给数据库执行命令
    connect.commit()
except :
    #回滚,以防出现错误
    connect.rollback()

connect.close()

在这里插入图片描述

4.说明

sql语句中如果有待定字符,则都可以通过

sql = "INSERT INTO `test`.`testtable`(`id`, `name`, `age`, `address`) VALUES (%s,%s,%s,%s)"

var = (1, 'windSnowLi', 20, '中国')

这种方式拼接,不过执行时需要
myCursor.execute(sql, var)将参数也同步传入

猜你喜欢

转载自blog.csdn.net/qq_44575789/article/details/107597038