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 @ 2019-08-03 21:13  赏尔  阅读(3694)  评论(2编辑  收藏  举报