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() # 查看当前数据库中的所有数据表
非学无以广才,非志无以成学。