一、加載庫,定義通用函數
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() # 查看當前數據庫中的所有數據表