Explicação detalhada do pymysql para programação de banco de dados Python


prefácio

Antes de aprender, certifique-se de instalar o MySQL e iniciar os serviços relacionados. Para o método de instalação do MySQL e verificar a senha inicial, consulte a primeira parte do artigo vinculado abaixo:

https://blog.csdn.net/youngwyj/article/details/124293362?spm=1001.2014.3001.5502


1. Instalação do pymsql

Use o seguinte comando diretamente no ambiente python3:

pip install pymsql
#或者
pip3 install pymysql

Após a conclusão da instalação, você pode usar o seguinte comando para visualizar:

pip list | grep PyMySQL 
#注意大小写

O resultado é o seguinte:
insira a descrição da imagem aqui


Dois, conecte-se ao banco de dados

pymysql usa a função pymsql.connect() para se conectar ao banco de dados, e seus parâmetros comuns são os seguintes:

parâmetro ilustrar
dsn Nome da fonte de dados, dado que este parâmetro indica a dependência do banco de dados
host=Nenhum Endereço de conexão do banco de dados
usuário=Nenhum nome de usuário do banco de dados
senha='' senha do usuário do banco de dados
banco de dados=Nenhum O nome do banco de dados ao qual se conectar
porta=3306 Número da porta, o padrão é 3306
conjunto de caracteres ='' A codificação de caracteres do banco de dados a ser conectado (você pode usar \s para visualizá-lo após fazer login no mysql no terminal, conforme a figura abaixo)
connect_timeout=10 O tempo limite de conexão com o banco de dados, o padrão é 10
porta=3306 Número da porta, o padrão é 3306

insira a descrição da imagem aqui
Depois de se conectar ao banco de dados, você precisa criar um objeto de cursor. O módulo executará a instrução sql e obterá os resultados da consulta por meio do objeto de cursor e exibirá diretamente cada método por meio do código.
Exemplo:

import pymysql

db = pymysql.connect(
    host="localhost", 
    port=3306,
    user='root',    #在这里输入用户名
    password='888888',     #在这里输入密码
    charset='utf8mb4' 
    ) #连接数据库

cursor = db.cursor() #创建游标对象

sql = 'show databases' #sql语句

cursor.execute(sql)  #执行sql语句

one = cursor.fetchone()  #获取一条数据
print('one:',one)

many = cursor.fetchmany(3) #获取指定条数的数据,不写默认为1
print('many:',many)

all = cursor.fetchall() #获取全部数据
print('all:',all)

cursor.close()  
db.close()  #关闭数据库的连接

resultado da operação:

one: ('coldbox',)
many: (('coldboxtest',), ('db_student',), ('information_schema',))
all: (('mysql',), ('performance_schema',), ('sys',), ('test',), ('wan',))

Pode ser visto nos resultados que os valores de retorno de fetchone(), fetchmany(size) e fetchall() são tuplas, mas fetchone() retorna uma única tupla e as outras duas retornam tuplas.


3. Criar e gerenciar banco de dados

Exemplos de instruções SQL que usam objetos de cursor para executar a criação e exclusão do banco de dados:

import pymysql

db = pymysql.connect(
    host="localhost", 
    port=3306,
    user='root',    #在这里输入用户名
    password='888888',     #在这里输入密码
    charset='utf8mb4' 
    )

cursor = db.cursor() #创建游标对象

try:

    sql = 'show databases' 
    cursor.execute(sql)
    print('未创建数据库前:',cursor.fetchall()) #获取创建数据库前全部数据库

    dbname = 'justtest'
    sql = 'create database if not exists %s'%(dbname) #创建数据库
    cursor.execute(sql)
    sql = 'show databases' 
    cursor.execute(sql)
    print('创建新的数据库后:',cursor.fetchall()) #获取创建数据库后全部数据库

    sql = 'drop database if exists %s'%(dbname) #删除数据库
    cursor.execute(sql)
    sql = 'show databases' 
    cursor.execute(sql)
    print('删除新的数据库后:',cursor.fetchall()) #获取删除数据库后全部数据库

except Exception as e:
    print(e)
    db.rollback()  #回滚事务

finally:
    cursor.close() 
    db.close()  #关闭数据库连接

resultado da operação:

未创建数据库前: (('coldbox',), ('coldboxtest',), ('db_student',), ('information_schema',), ('mysql',), ('performance_schema',), ('sys',), ('test',), ('wan',))
创建新的数据库后: (('coldbox',), ('coldboxtest',), ('db_student',), ('information_schema',), ('justtest',), ('mysql',), ('performance_schema',), ('sys',), ('test',), ('wan',))
删除新的数据库后: (('coldbox',), ('coldboxtest',), ('db_student',), ('information_schema',), ('mysql',), ('performance_schema',), ('sys',), ('test',), ('wan',))

Quarto, crie e gerencie tabelas

Exemplos de instruções SQL que usam objetos de cursor para executar a criação e gerenciamento de tabelas:

import pymysql

db = pymysql.connect(
    host="localhost", 
    port=3306,
    user='root',    #在这里输入用户名
    password='888888',     #在这里输入密码
    charset='utf8mb4',
    database='justtest'     #指定操作的数据库
    )

cursor = db.cursor() #创建游标对象

try:

    tableName = 'user'
    sql = 'create table  %s (id varchar(20) not null, name varchar(20) not null, primary key(id))'%(tableName) 
    cursor.execute(sql)     #执行sql语句,创建表

    sql = 'show tables'
    cursor.execute(sql)
    print('显示创建的表:',cursor.fetchall())  #显示创建的表


    sql = 'desc %s'%(tableName) 
    cursor.execute(sql)
    print('显示表结构:',cursor.fetchall())  #显示表结构

except Exception as e:
    print(e)
    db.rollback()  #回滚事务

finally:
    cursor.close() 
    db.close()  #关闭数据库连接

resultado da operação:

显示创建的表: (('user',),)
显示表结构: (('id', 'varchar(20)', 'NO', 'PRI', None, ''), ('name', 'varchar(20)', 'NO', '', None, ''))

Resumir

Para operações como modificar a estrutura da tabela, inserir, consultar e excluir dados, é aproximadamente o mesmo que as operações acima, principalmente para a escrita de instruções sql, que não serão descritas aqui.
Processo geral:
conectar ao banco de dados -> criar objeto de cursor -> escrever instrução sql -> executar instrução sql -> obter resultado -> fechar conexão com o banco de dados

Parâmetros comuns da função Connect():

parâmetro ilustrar
dsn Nome da fonte de dados, dado que este parâmetro indica a dependência do banco de dados
host=Nenhum Endereço de conexão do banco de dados
usuário=Nenhum nome de usuário do banco de dados
senha='' senha do usuário do banco de dados
banco de dados=Nenhum O nome do banco de dados ao qual se conectar
porta=3306 Número da porta, o padrão é 3306
conjunto de caracteres ='' A codificação de caracteres do banco de dados a ser conectado (você pode usar \s para visualizá-lo após fazer login no mysql no terminal, conforme a figura abaixo)
connect_timeout=10 O tempo limite de conexão com o banco de dados, o padrão é 10
porta=3306 Número da porta, o padrão é 3306

Um resumo dos métodos do objeto de conexão retornado pela função connect():

nome do método ilustrar
fechar() Feche a conexão com o banco de dados
comprometer-se() cometer transação
reverter() transação de reversão
cursor() Obtenha o objeto cursor, opere o banco de dados, como executar operações DML, chamar procedimentos armazenados, etc.

Métodos do objeto cursor:

nome do método ilustrar
callproc(procname,[,parâmetros]) Chamar procedimentos armazenados requer suporte de banco de dados
fechar() fechar o cursor atual
execute(operação,[,parâmetros]) Execute operações de banco de dados, instruções sql ou comandos de banco de dados
executemany(operação, seq_of_params) para operações em massa
buscar () Obtenha o próximo registro no conjunto de resultados da consulta
buscar muitos (tamanho) Obter o número especificado de registros
buscarall() Obter todos os registros no conjunto de resultados da consulta
próximo conjunto () Pular para o próximo conjunto de dados disponível
tamanho da matriz Especifica o número de linhas buscadas usando fetchmany(), o padrão é 1
setinputsizes(tamanho) Defina o tamanho da área de memória alocada quando o método execute*() é chamado
setoutputsizes(tamanho) Defina o tamanho do buffer da coluna, especialmente útil para grandes colunas de dados

Acho que você gosta

Origin blog.csdn.net/youngwyj/article/details/124699636
Recomendado
Clasificación