python 用 pymysql 新建数据库、表,通过 pandas 查看结果

一、加载库,定义通用函数

复制代码
import pandas as pd
import pymysql

def mycursor(db_name=None):
    '''连接数据库,创建游标'''
    config = dict(zip(['host', 'user', 'port', 'password'],
                      ['192.168.137.155', 'shanger', 3306, '0123']))
    config.update(database=db_name)
    connection = pymysql.connect(**config)
    cursor = connection.cursor()
    return cursor

def use(db_name):
    '''切换数据库,返回游标'''
    return mycursor(db_name)

def create_database(db_name):
    '''新建数据库'''
    sql = f'create database if not exists {db_name};'
    cursor.execute(sql)
    
def create_table(tbl_name):
    '''新建数据库'''
    sql = f'create table if not exists {tbl_name};'
    cursor.execute(sql) 
    
def drop_database(db_name):
    '''删除数据库'''
    sql = f'drop database if exists {db_name};'
    cursor.execute(sql)
       
def drop_table(tbl_name):
    '''删除数据库'''
    sql = f'drop table if exists {tbl_name};'
    cursor.execute(sql)

def query(sql):
    '''以数据框形式返回查询据结果'''
    cursor.execute(sql)
    data = cursor.fetchall()  # 以元组形式返回查询数据
    header = [t[0] for t in cursor.description]
    df = pd.DataFrame(list(data), columns=header)  # pd.DataFrem 对列表具有更好的兼容性
    return df

def show_databases():
    '''查看服务器上的所有数据库'''
    sql = 'show databases;'
    return query(sql)

def select_database():
    '''查看当前数据库'''
    sql = 'select database();'
    return query(sql)

def show_tables():
    '''查看当前数据库中所有的表'''
    sql = 'show tables;'
    return query(sql)
复制代码

二 、新建数据库

1、新建前所有数据库

cursor = mycursor()
show_databases()

结果:

 

 2 新建数据库 sql123

cursor = mycursor()
create_database('sql123') # 新建库

show_databases()  # 查看结果

 

 三、新建数据表

1、切换数据库

cursor = use('sql123')

select_database()  # 查询当前数据库

 

 查询其中的所有数据表

 

 2 、新建数据表

复制代码
sql = '''
create table poptbl
(pref_name varchar(32) primary key,
 population integer not null);
'''

create_table(sql)

show_tables() # 查看当前数据库中的所有数据表
复制代码

 

 

 

 

posted @   赏尔  阅读(3767)  评论(2编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示