【Tushare转存SQL】可转债数据(待续)

建立Mysql数据库和表

原本是想创建几个表,将数据分批传进去,后来发现个更粗暴简单的方法,虽然默认字段设置不够科学合理,小规模数据简单使用是没有问题的。

1、需要新安装个数据库引擎

pip install sqlalchemy

2、

import pymysql
import pandas as pd
import tushare as ts
from sqlalchemy import create_engine
# 初始化pro接口
pro = ts.pro_api('API接口')
# 拉取数据
df = pro.cb_basic(**{
    "ts_code": "",
    "list_date": "",
    "exchange": "",
    "limit": "",
    "offset": ""
}, fields=[
    "ts_code",
    "bond_full_name",
    "bond_short_name",
    "stk_code",
    "stk_short_name",
    "maturity",
    "par",
    "issue_price",
    "issue_size",
    "remain_size",
    "value_date",
    "maturity_date",
    "add_rate",
    "pay_per_year",
    "list_date",
    "delist_date",
    "exchange",
    "conv_start_date",
    "conv_end_date",
    "first_conv_price",
    "conv_price",
    "rate_clause",
    "put_clause",
    "maturity_put_price",
    "call_clause"
])
print(df)
con1 = 'mysql+pymysql://root:123456@localhost:3306/bonds_tushare'
df.to_sql(name="cb_001",con=con1,if_exists='replace',index=False)
df1=pd.read_sql("select ts_code,bond_short_name,stk_code,stk_short_name from bonds_tushare.cb_001",con=con1)
print(df1)

《这个可以不用了》====
1、创建数据库

CREATE DATABASE bonds_tushare;
USE bonds_tushare;
'\C # 遇到mysql>错误卡死时跳出的命令

2、创建对应的表,cb_basic,cb_daily,stock_daily,cb_call,cb_price_chg

  1. cb_basic表
# 创建cb_basic表
create table if not exists cb_basic(
    ts_code varchar(32) not null comment '转债代码',
    bond_full_name varchar(128) null comment '转债名称',
    bond_short_name varchar(32) not null comment '转债简称',
    stk_code varchar(32) not null comment '正股代码',
    stk_short_name varchar(32) not null comment '正股简称',
    maturity float not null comment '发行期限年',
    par float not null comment '面值',
    issue_price float null comment '发行价格',
    issue_size float not null comment '发行总额元',
    remain_size float null comment '债券余额元',
    value_date varchar(32) null comment '起息日期',
    maturity_date varchar(32) null comment '到期日期',
    add_rate float null comment '补偿利率',
    pay_per_year int null comment '年付息次数',
    list_date varchar(32) null comment '上市日期',
    delist_date varchar(32) null comment '摘牌日',
    exchange varchar(32) not null comment '上市地点',
    conv_start_date varchar(32) null comment '转股起始日',
    conv_end_date varchar(32) null comment '转股截止日',
    first_conv_price float null comment '初始转股价',
    conv_price float null comment '最新转股价',
    rate_clause varchar(2048) null comment '利率说明',
    put_clause varchar(2048) null comment '赎回条款',
    maturity_put_price float null comment '到期赎回价格',
    call_clause varchar(2048) null comment '赎回条款',
    primary key(ts_code)
) engine=MyISAM default charset=utf8;

单行直接在mysql执行

create table if not exists cb_basic(ts_code varchar(32) not null comment '转债代码',bond_full_name varchar(128) null comment '转债名称',bond_short_name varchar(32) not null comment '转债简称',stk_code varchar(32) not null comment '正股代码',stk_short_name varchar(32) not null comment '正股简称',maturity float not null comment '发行期限年',par float not null comment '面值',issue_price float null comment '发行价格',issue_size float not null comment '发行总额元',remain_size float null comment '债券余额元',value_date varchar(32) null comment '起息日期',maturity_date varchar(32) null comment '到期日期',add_rate float null comment '补偿利率',pay_per_year int null comment '年付息次数',list_date varchar(32) null comment '上市日期',delist_date varchar(32) null comment '摘牌日',exchange varchar(32) not null comment '上市地点',conv_start_date varchar(32) null comment '转股起始日',conv_end_date varchar(32) null comment '转股截止日',first_conv_price float null comment '初始转股价',conv_price float null comment '最新转股价',rate_clause varchar(2048) null comment '利率说明',put_clause varchar(2048) null comment '赎回条款',maturity_put_price float null comment '到期赎回价格',call_clause varchar(2048) null comment '赎回条款',primary key(ts_code)) engine=MyISAM default charset=utf8;
  1. 创建cb_daily表
create table if not exists cb_daily(
    ts_code varchar(32) not null comment '转债代码',
    trade_date varchar(32) not null comment '交易日期',
    pre_close float null comment '昨收盘价',
    open float null comment '开盘价',
    high float null comment '最高价',
    low float null comment '最低价',
    close float not null comment '收盘价',
    changes float null comment '涨跌元',
    pct_chg float null comment '涨跌幅',
    vol float null comment '成交量手',
    amount float null comment '成交金额万元',
    primary key(ts_code,trade_date)
) engine=MyISAM default charset=utf8;

单行直接在mysql执行

create table if not exists cb_daily(ts_code varchar(32) not null comment '转债代码',trade_date varchar(32) not null comment '交易日期',pre_close float null comment '昨收盘价',open float null comment '开盘价',high float null comment '最高价',low float null comment '最低价',close float not null comment '收盘价',changes float null comment '涨跌元',pct_chg float null comment '涨跌幅',vol float null comment '成交量手',amount float null comment '成交金额万元',primary key(ts_code,trade_date)) engine=MyISAM default charset=utf8;
  1. 创建stock_daily表
create table if not exists stock_daily(
    ts_code varchar(32) not null comment '股票代码',
    trade_date varchar(32) not null comment '交易日期',
    pre_close float null comment '昨收盘价',
    open float null comment '开盘价',
    high float null comment '最高价',
    low float null comment '最低价',
    close float not null comment '收盘价',
    changes float null comment '涨跌元',
    pct_chg float null comment '涨跌幅',
    adj_factor float null comment '复权因子',
    vol float null comment '成交量手',
    amount float null comment '成交金额万元',
    primary key(ts_code,trade_date)
) engine=MyISAM default charset=utf8;

单行直接在mysql执行

create table if not exists stock_daily(ts_code varchar(32) not null comment '股票代码',trade_date varchar(32) not null comment '交易日期',pre_close float null comment '昨收盘价',open float null comment '开盘价',high float null comment '最高价',low float null comment '最低价',close float not null comment '收盘价',changes float null comment '涨跌元',pct_chg float null comment '涨跌幅',adj_factor float null comment '复权因子',vol float null comment '成交量手',amount float null comment '成交金额万元',primary key(ts_code,trade_date)) engine=MyISAM default charset=utf8;
  1. 创建cb_call表
create table if not exists cb_call(
    ts_code varchar(32) not null comment '转债代码',
    call_type varchar(32) not null comment '赎回类型:到赎、强赎',
    is_call varchar(32) not null comment '是否赎回:公告到期赎回、公告强赎、公告不强赎',
    ann_date varchar(32) not null comment '公告日期',
    call_date varchar(32) null comment '赎回日期',
    call_price float null comment '赎回价格含税',
    call_price_tax float null comment '赎回价格扣税',
    call_vol float null comment '赎回债券数量张',
    call_amount float null comment '赎回金额万元',
    payment_date varchar(32) null comment '行权后款项到账日',
    call_reg_date varchar(32) null comment '赎回登记日',
    primary key(ts_code,ann_date)
) engine=MyISAM default charset=utf8;

单行直接在mysql执行

create table if not exists cb_call(ts_code varchar(32) not null comment '转债代码',call_type varchar(32) not null comment '赎回类型:到赎、强赎',is_call varchar(32) not null comment '是否赎回:公告到期赎回、公告强赎、公告不强赎',ann_date varchar(32) not null comment '公告日期',call_date varchar(32) null comment '赎回日期',call_price float null comment '赎回价格含税',call_price_tax float null comment '赎回价格扣税',call_vol float null comment '赎回债券数量张',call_amount float null comment '赎回金额万元',payment_date varchar(32) null comment '行权后款项到账日',call_reg_date varchar(32) null comment '赎回登记日',primary key(ts_code,ann_date)) engine=MyISAM default charset=utf8;
  1. 创建cb_price_chg表
create table if not exists cb_price_chg(
    ts_code varchar(32) not null comment '转债代码',
    bond_short_name varchar(32) not null comment '转债简称',
    publish_date varchar(32) not null comment '公告日期',
    change_date varchar(32) null comment '变动日期',
    convert_price_initial float null comment '初始转股价格',
    convertprice_bef float null comment '修正前转股价格',
    convertprice_aft float null comment '修正后转股价格',
    primary key(ts_code,publish_date)
) engine=MyISAM default charset=utf8;

单行直接在mysql执行

create table if not exists cb_price_chg(ts_code varchar(32) not null comment '转债代码',bond_short_name varchar(32) not null comment '转债简称',publish_date varchar(32) not null comment '公告日期',change_date varchar(32) null comment '变动日期',convert_price_initial float null comment '初始转股价格',convertprice_bef float null comment '修正前转股价格',convertprice_aft float null comment '修正后转股价格',primary key(ts_code,publish_date)) engine=MyISAM default charset=utf8;

你可能感兴趣的:(Mysql相关,sql,数据库,mysql)