0


Python 连接 mysql 详解(mysql-connector-python)

文章目录

1 概述

1.1 第三方库:mysql-connector-python

pip install mysql-connector-python

1.2 可视化工具:navicat

在这里插入图片描述

1.3 创建测试数据库

在这里插入图片描述

-- 创建数据库createdatabase python_demo DEFAULTCHARSET utf8 COLLATE utf8_general_ci;-- 创建测试表createtable python_demo.student(
  sno      intunsignedauto_incrementcomment'学号',
    sname    varchar(30)notnullcomment'姓名',
    age      intcomment'年龄',
    birthday datecomment'出生日期',primarykey(sno))engine=innodbdefaultcharset=utf8 comment'学生信息表';

2 连接 mysql 数据库

2.1 创建一个连接

import mysql.connector

# 配置连接信息
conn = mysql.connector.connect(
    host='127.0.0.1',
    port='3306',
    user='root',
    password='12345',
    database='python_demo')# 当前 mysql 版本号print(conn.get_server_version())

2.2 捕获连接异常

import mysql.connector
from mysql.connector import errorcode

try:# 配置连接信息
    conn = mysql.connector.connect(
        host='127.0.0.1',
        port='3306',
        user='root',
        password='12345',
        database='python_demo')# 当前 mysql 版本号print(conn.get_server_version())# 捕获异常except mysql.connector.Error as err:if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:print('账号或密码错误!')elif err.errno == errorcode.ER_BAD_DB_ERROR:print('数据库不存在!')else:print(err)else:# 关闭连接
    conn.close()

2.3 从配置文件中获取连接信息

目录结构:
在这里插入图片描述

config.ini:

[mysql]
host =127.0.0.1
port =3306user= root
password =12345database= python_demo

m1.py:

import mysql.connector
from mysql.connector import errorcode
import configparser

# 创建配置解析器对象
config = configparser.ConfigParser()# 读取配置文件
config.read('config.ini')try:# 配置连接信息
    conn = mysql.connector.connect(
        host=config.get('mysql','host'),
        port=config.get('mysql','port'),
        user=config.get('mysql','user'),
        password=config.get('mysql','password'),
        database=config.get('mysql','database'))# 当前 mysql 版本号print(conn.get_server_version())# 捕获异常except mysql.connector.Error as err:if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:print('账号或密码错误!')elif err.errno == errorcode.ER_BAD_DB_ERROR:print('数据库不存在!')else:print(err)else:# 关闭连接
    conn.close()

3 执行 sql 语句

3.1 插入、更新、删除

  • execute():用来执行 sql 语句,如:增删改查,存储过程等
  • commit():用来提交事务
import mysql.connector

# 配置连接信息
conn = mysql.connector.connect(
    host='127.0.0.1',
    port='3306',
    user='root',
    password='12345',
    database='python_demo')# 创建游标对象
cursor = conn.cursor()# 操作数据:插入、修改、删除 同理,注:数据类型均可用 %s# 操作一条数据
sql ='insert into student(sname, age, birthday) values(%s, %s, %s);'
param =('张三','18','1994-12-08')
cursor.execute(sql, param)# 操作多条数据
sql ='insert into student(sname, age, birthday) values(%s, %s, %s);'
param =[('李四','20','1992-10-05'),('王五','16','1996-05-26'),('赵六','08','1994-05-26')]
cursor.executemany(sql, param)# 提交数据
conn.commit()# 关闭游标和数据库连接
cursor.close()
conn.close()

3.2 查询

import mysql.connector

# 配置连接信息
conn = mysql.connector.connect(
    host='127.0.0.1',
    port='3306',
    user='root',
    password='12345',
    database='python_demo')# 创建游标对象
cursor = conn.cursor()# 查询数据
sql ='select sno, sname, age, birthday from student where sno >= %s'
param =(1,)

cursor.execute(sql, param)
result = cursor.fetchall()# 打印结果for row in result:print(row)# 关闭游标和数据库连接
cursor.close()
conn.close()
标签: python mysql

本文转载自: https://blog.csdn.net/qq_34745941/article/details/136017429
版权归原作者 鱼丸丶粗面 所有, 如有侵权,请联系我们删除。

“Python 连接 mysql 详解(mysql-connector-python)”的评论:

还没有评论