mac usa python para operar mysql

instalación de mac mysql reference (2023) instalación de mac mysql_Vermouth_00's blog - CSDN blog

Recientemente, estoy mirando la base de datos y tratando de usar python para operar mysql. Primero, necesito instalar mysql en la computadora, luego instalar la biblioteca pymysql en python, usar pycharm para conectarme a mysql, crear una base de datos y una tabla e insertar datos, y finalmente puedo usar python para agregar, eliminar, modificar y consultar la base de datos.

1. Instale el controlador

Las bibliotecas mysql comunes para python son:

MySQLdb(mysqlclient), mysql-conector-python, pymysql

La diferencia entre MySQLdb y mysqlclient:

         MySQLdb solo admite la versión python 2.x, mysqlclient es una rama de MySQLdb, que resuelve el problema de compatibilidad de python 3.x.

cliente mysql

        1) Es un módulo de extensión C, la compilación y la instalación pueden causar que se informen varios errores, obviamente no tan convenientes como pymysql;

        2) Velocidad rápida;

pymysql

        1) Implementado en Python puro, fácil de instalar (instalación pip directa);

        2) Dado que está implementado en Python puro, se puede combinar bien con el marco gevent;

mysql-connector-python también es python puro, que es el controlador oficial de msql. La eficiencia y la portabilidad de pymysql son teóricamente similares a las de mysql-connector-python.

En resumen, elija pymysql.

Instalar pymysql

Terminal ejecutar pip3 instalar pymysql3

Si se le solicita: Operación no permitida, agregue sudo delante del comando para indicar que el administrador tiene permiso para ejecutar este comando.

No hay ningún error al importar pymysql en pycharm, lo que indica que la instalación se realizó correctamente.

Dos, pycharm se conecta a mysql

 Abra la base de datos en el lado derecho de pycharm, haga clic en el signo + para agregar una base de datos y seleccione mysql;

En el cuadro de diálogo que aparece, hay varios elementos que deben completarse: usuario, contraseña, base de datos.Si el controlador no está instalado como se muestra a continuación, debe descargar el controlador y, finalmente, puede probar si la conexión es exitosa.

a. Usuario: nombre de usuario de Mysql

b. Contraseña: contraseña de Mysql

c. Base de datos: nombre de la base de datos

D. Descargar automáticamente los controladores que faltan

E. Conexión de prueba: prueba si la conexión es exitosa

Cabe señalar que el nombre de usuario es el usuario de la base de datos, el nombre de usuario y la contraseña deben ser correctos, el usuario debe tener autoridad de acceso remoto, el servicio mysql en segundo plano debe iniciarse normalmente, el puerto 3306 no está ocupado, la versión del controlador mysql debe coincidir con la versión de mysql instalada en la computadora y la conexión de prueba solo puede tener éxito si se cumplen estas condiciones. 

Si la conexión de prueba informa un error aquí, puede consultar este artículo para solucionar el problema: El hoyo encontrado por Pycharm al conectarse a mysql, el error Acceso denegado para el blog del usuario 'root'_Vermouth_00-CSDN Blog

Después de que la conexión de prueba sea exitosa, haga clic en Aplicar y luego haga clic en Aceptar.

3. Crear base de datos y tablas

1. Crea una base de datos

create database StudentSystem;

show databases;

2. Crea una tabla

use StudentSystem;

CREATE TABLE test_student (

id int(10) unsigned NOT NULL AUTO_INCREMENT,

name varchar(20) DEFAULT NULL,

description varchar(20) DEFAULT NULL,

sex varchar(2) DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

这里遇到报错ERROR 1064 (42000): Tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de 'desc varchar(20) DEFAULT NULL,sex varchar(2) DEFAULT NULL,PRIMARY KEY (id)' en la línea 4

El error se informa porque desc es una palabra clave, simplemente reemplácela con descripción;

Ejecutar de nuevo, aprobado, pero hay advertencias

show warnings;

ver advertencias

Desde MySQL 8.0.17, no se recomienda especificar el ancho de visualización para int y esta regla se eliminará en futuras versiones.

Actualmente es un alias para el conjunto de caracteres utf8mb3, pero será un alias para utf8mb4 en una versión futura. Considere usar utf8mb4 para que no sea ambiguo.

El utf8 en MySQL es utf8mb3, que es compatible con caracteres Unicode de tres bytes como máximo. MySQL ha agregado la codificación utf8mb4 después de la versión 5.5.3, y mb4 significa la mayoría de los bytes 4, que se usa especialmente para ser compatible con caracteres Unicode de cuatro bytes .

show tables;

3. Insertar datos

INSERTAR EN el nombre de la tabla (campo 1, campo 2, ...) VALORES (valor 1, valor 2, ...);

insert into test_student values( 1120233310 , '小何' , '软件工程' , '女' );

insert into test_student values( 1120232394 , '小张' , '计算机科学与技术' , '男' );

insert into test_student values( 1120232764 , '姚姚' , '物联网' , '女' );

Cuarto, python opera la base de datos

ejecutar solo acepta una cadena sql como parámetro

  • Si ejecutar es una operación de adición, eliminación o modificación, devuelve el número de filas afectadas

  • ejecutar es una operación de consulta, que devuelve el número total de datos encontrados

Un cursor es un mecanismo para atravesar datos en la base de datos, lo que nos permite ejecutar consultas en la base de datos y recorrer el conjunto de resultados.

(1) Operación de consulta

import pymysql

#连接数据库
conn = pymysql.connect(
    host='localhost',
    user='test',
    password='hejiahuan04',
    database='StudentSystem'
)
#创建游标对象:cursor
cursor = conn.cursor()

#查询语句
sql = 'select * from test_student'
#执行
cursor.execute(sql)
# 获得全部结果
result = cursor.fetchall()
print(result)
# #另一种方式
# result = cursor.execute(sql)
# for i in range(result):
#     print(cursor.fetchone())
#result可以返回我们操作的行数。fetchone()可以返回记录,一条一条输出。

# 关闭连接
cursor.close()
conn.close()

 data = cursor.fetchall() # data es un objeto iterable, el valor interno se puede obtener recorriendo, data es una tupla y los elementos de la tupla también son subtuplas uno por uno.

(2) Operación de inserción

A excepción de la operación de consulta que no necesita escribir conn.commit(), es necesario escribir otras operaciones; de lo contrario, no se puede completar.

def insert_sql():
    #插入
    sql_insert = "insert into test_student values (1120231126,'飞飞','土木工程','女')"
    cursor.execute(sql_insert)
    conn.commit()

(3) Operación de eliminación

def delete_sql():
    #删除
    sql_delete = "delete from test_student where name='飞飞'"
    cursor.execute(sql_delete)
    conn.commit()

(4) Operación de actualización

def update_sql():
    #更新,把飞飞的性别改成男
    sql_update = "update test_student set sex='男' where name='飞飞'"
    cursor.execute(sql_update)
    conn.commit()

(5) Inserción de lotes

Executemany se puede utilizar para realizar inserciones por lotes.

def insert_many():
    #批量插入
    # SQL 插入语句
    sql_insert_many = "insert into test_student(id,name,description,sex) values (%s,%s,%s,%s)"
    # 一个tuple或者list
    T = ((1120230039, '小李', '国贸', '男'),(1120230520, '小王', '数据分析', '女'),(1120231202, '小陈', '法律', '女'))
    try:
        cursor.executemany(sql_insert_many,T)
        conn.commit()
    except:
        # 如果发生错误则回滚
        conn.rollback()

Supongo que te gusta

Origin blog.csdn.net/Vermouth_00/article/details/131008234
Recomendado
Clasificación