Práctica diaria de Python: sexto nivel de almacenamiento de datos: funcionamiento de la base de datos MySQL

La sexta pregunta de la entrevista:

Parte 1 - Sitio de prueba:

Operar la base de datos MySQL:

  1. Crear tabla de datos MySQL;
  2. insertar registros en la tabla;
  3. Otras operaciones de base de datos.

Parte 2 - Preguntas de la entrevista:

1. Pregunta de la entrevista 1: ¿Cómo crear una tabla de datos MySQL?

2. Pregunta de la entrevista 2: ¿Cómo insertar datos en la tabla MySQL?

3. Pregunta de la entrevista 3: ¿Cómo consultar datos en MySQL?


Parte 3 - Análisis:

Una de las preguntas de la entrevista para crear una tabla de datos MySQL:

# coding=utf-8
# _author__ = 孤寒者

from pymysql import *

def connectDB():
    '''
    连接本地MySQL数据库,指定连接的库为test库。
    :return:
    '''
    db = connect(host='localhost', user='root', password='123456', port=3306, db='test')
    return db
db = connectDB()
print(type(db))

def createTable(db):
    c = db.cursor()
    try:
        c.execute('''create table persons
                    (id int primary key not null,
                    name text not null,
                    age int not null,
                    address char(100),
                    salary real);''')
        db.commit()
        db.commit()
        return True
    except:
        db.rollback()
    return False
if createTable(db):
    print('create table success')
else:
    print('create table failed')

inserte la descripción de la imagen aquí
Utilice la herramienta de navegación para ver:
inserte la descripción de la imagen aquí

Pregunta de la entrevista 2 insertando datos en la tabla MySQL:

# coding=utf-8
# _author__ = 孤寒者

from pymysql import *

def connectDB():
    '''
    连接本地MySQL数据库,指定连接的库为test库。
    :return:
    '''
    db = connect(host='localhost', user='root', password='123456', port=3306, db='test')
    return db
db = connectDB()
print(type(db))


def insertRecords(db):
    cursor = db.cursor()
    try:
        cursor.execute("delete from persons")
        cursor.execute('''
        insert into persons(id,name,age,address,salary)
        values(1, 'GuHanZhe', 18, 'China', 9999)
        ''')
        cursor.execute('''
        insert into persons(id,name,age,address,salary)
        values(2, 'XiaoZhang', 55, 'China', 9)
        ''')
        db.commit()
        return True
    except Exception as e:
        print(e)
        db.rollback()
    return False

if insertRecords(db):
    print("成功插入记录")
else:
    print("插入记录失败")

inserte la descripción de la imagen aquí

Utilice la herramienta de navegación para ver:

inserte la descripción de la imagen aquí

Pregunta de entrevista 3: Consulta de datos en MySQL:

# coding=utf-8
# _author__ = 孤寒者
from pymysql import *

def connectDB():
    '''
    连接本地MySQL数据库,指定连接的库为test库。
    :return:
    '''
    db = connect(host='localhost', user='root', password='123456', port=3306, db='test')
    return db
db = connectDB()


def selectRecords(db):
    cursor = db.cursor()
    sql = 'select name,age,salary from persons order by age desc'
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)
    print(type(results))    # 打印发现是元组类型

selectRecords(db)
db.close()

inserte la descripción de la imagen aquí

  • Encontramos que el tipo de salida de los datos de la consulta es un tipo de tupla ¿Qué debemos hacer si queremos emparejar el nombre del campo con los datos consultados?
  • Aquí necesitamos usar dos funciones muy utilizadas, dict() y zip(), de la siguiente manera:
# coding=utf-8
# _author__ = 孤寒者
import json

from pymysql import *

def connectDB():
    '''
    连接本地MySQL数据库,指定连接的库为test库。
    :return:
    '''
    db = connect(host='localhost', user='root', password='123456', port=3306, db='test')
    return db
db = connectDB()


def selectRecords(db):
    cursor = db.cursor()
    sql = 'select name,age,salary from persons order by age desc'
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)
    print(type(results))    # 打印发现是元组类型

    # 将字段名和查询结果整合在一起
    fields = ['name', 'age', 'salary']
    records = []
    for row in results:
        records.append(dict(zip(fields, row)))
    return json.dumps(records)      # 输出类型为JSON字符串


endresults = selectRecords(db)
print(endresults)
db.close()

inserte la descripción de la imagen aquí


Parte 4 - Conclusión:

  • Nota: Usamos la API en el módulo pymysql para operar la base de datos MySQL, este módulo debe instalarse por separado ~

Supongo que te gusta

Origin blog.csdn.net/qq_44907926/article/details/123019201
Recomendado
Clasificación