当前位置: 首页 > article >正文

Python高级之操作Mysql

Python高级

文章目录
  • Python高级
    • python操作数据库mysql-connector
      • demo_mysql_test.py:
    • pyMysql

python操作数据库mysql-connector

本章节为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql-connectorMySQL 官方提供的驱动器。

可以使用 pip 命令来安装 mysql-connector

python -m pip install mysql-connector

使用以下代码测试 mysql-connector 是否安装成功:

demo_mysql_test.py:

import mysql.connector

执行以上代码,如果没有产生错误,表明安装成功。

注**意:**如果你的 MySQL 是 8.0 版本,密码插件验证方式发生了变化,早期版本为 mysql_native_password,8.0 版本为 caching_sha2_password,所以需要做些改变:

先修改 my.ini 配置:

[mysqld]
default_authentication_plugin=mysql_native_password

然后在 mysql 下执行以下命令来修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

# mysql-connect test

import mysql.connector

mysqlDb = mysql.connector.connect(
    host='localhost',
    user='root',
    password='Lh_198571',
    database = 'db_python'
)


# 创建数据库
def createDb(mysqlDb):
    cursor = mysqlDb.cursor()
    cursor.execute("create database db_python2")
    print('数据库创建成功')


# createDb(mysqlDb)

# 查看数据库
def showDb(mysqlDb):
    cursor = mysqlDb.cursor()
    cursor.execute("SHOW DATABASES")
    for i in cursor:
        print(i)

# showDb(mysqlDb)

# 创建表
# 创建表必须选中数据库才能创建,因此在创建表时,必须在connect中添加database指定数据库
def createTable(mysqlDb):
    cursor = mysqlDb.cursor()
    cursor.execute("CREATE TABLE tb_user(id int not null primary key auto_increment,name varchar(20),sex int)")

# createTable(mysqlDb)

# 执行insert语句
def insert(mysqlDb):
    cursor = mysqlDb.cursor()
    try:
        cursor.execute("INSERT INTO tb_user(name,sex) values('sofwin2',0)")
        print('insert成功')
    except:
        print('插入异常')
    finally:
        mysqlDb.commit()

# insert(mysqlDb)

# 查询语句

def query(mysqlDb):
    cursor = mysqlDb.cursor()
    cursor.execute("select * from tb_user")
    users = cursor.fetchall()
    for user in users:
        print(user[0])
        print(user[1])
        print(user[2])

query(mysqlDb)

# 将查询语结果封装到list中,每个标位为dict

def queryAll(mysqlDb):
    cursor = mysqlDb.cursor()
    cursor.execute("select * from tb_user")
    users = cursor.fetchall()
    userList=[]
    for user in users:
        u = {}
        u['id'] = user[0]
        u['name'] = user[1]
        u['sex'] = user[2]
        userList.append(u)
    print(userList)

queryAll(mysqlDb)

# 定义user对象

class User:
    id = 0
    name = ''
    sex = 0
    def __init__(self,id, name, sex):
        self.id = id
        self.name = name
        self.sex = sex
    def __str__(self):
        print('用户id:'+ str(self.id)+',name:'+self.name+',sex:'+ str(self.sex))

# list中封装User对象
def queryAll2(mysqlDb):
    cursor = mysqlDb.cursor()
    cursor.execute("select * from tb_user")
    users = cursor.fetchall()
    userList=[]
    for x in users:
        u  = User(x[0],x[1],x[2])
        userList.append(u)
    print(userList.__str__())

queryAll2(mysqlDb)

# 修改

def update(mysqlDb):
    cursor = mysqlDb.cursor()
    try:
        cursor.execute("update tb_user set name='helloWorld' where id = 2")
    finally:
        mysqlDb.commit()


update(mysqlDb)


# delete语句
def delete(mysqlDb):
    cursor = mysqlDb.cursor()
    try:
        cursor.execute("delete from tb_user where id = 3")
    finally:
        mysqlDb.commit()


delete(mysqlDb)

queryAll(mysqlDb)

pyMysql

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

$ pip install PyMySQL


# pyMysql

import pymysql

db = pymysql.connect(
    host='localhost',
    user='root',
    password='Lh_198571',
    database='db_python'
)


# 查询
def query():
    # 创建游标对象
    cursor = db.cursor()
    # 执行查询方法
    cursor.execute("select * from tb_user")
    # 获取到元组
    result = cursor.fetchall()
    print(type(result))
    print(result)


# 插入 第一个参数不能为默认参数
def insert(name, sex, mdb=db):
    cursor = mdb.cursor()
    try:
        print("insert into tb_user(name,sex) values('" + name + "'," + str(sex) + ")")
        cursor.execute("insert into tb_user(name,sex) values('" + name + "'," + str(sex) + ")")
    finally:
        mdb.commit()


insert('a1', 10)


# 删除

def delete(id, mdb=db):
    cursor = mdb.cursor()
    try:
        cursor.execute("delete from tb_user where id = 5")
    finally:
        mdb.commit()


delete(5)


# 修改
def update(id, mdb=db):
    cursor = mdb.cursor()
    try:
        cursor.execute("update tb_user set name ='aaaaa' where id=" + str(id))
    finally:
        mdb.commit()

# 根据id 查询一调数据
def getOne(id, mdb = db):
    cursor = mdb.cursor()
    cursor.execute("select * from tb_user where id=" + str(id))
    result = cursor.fetchone()
    # tuple 元组
    print(type(result))
    print(result)

getOne(4)


update(6)
query()

http://www.kler.cn/a/581323.html

相关文章:

  • 华为OD机试 - 平均像素值-贪心算法(Java 2024 E卷 100分)
  • 【区块链+ 医疗健康】基于区块链和AI 技术的儿童近视防控大数据平台 | FISCO BCOS 应用案例
  • iTextSharp-PDF批量导出
  • 3.3.2 用仿真图实现点灯效果
  • 软考高级信息系统项目管理师笔记-第22章组织通用治理
  • nginx的使用
  • Ubuntu22.04修改root用户并安装cuda
  • 网络安全之命令
  • 发展史 | 深度学习 / 云计算
  • Vue.js探秘:从基础到高级教程
  • Spring Boot笔记(上)
  • Leetcode 刷题笔记1 动态规划part10
  • Spark性能优化深度剖析:十大实战策略与案例解析
  • Smart contract -- 自毁合约
  • 【MySQL基础-2】使用 Docker 搭建 MySQL:配置文件详解与实战案例
  • FerretDB 2.0:开源 MongoDB 替代品的安装与使用指南
  • 笔记:代码随想录算法训练营day41:LeetCode121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III
  • SpringBoot基础Kafka示例
  • 第4章 Function 语意学3: 函数效能、Member Functions、inline
  • 调试正常 ≠ 运行正常:Keil5中MicroLIB的“量子态BUG”破解实录