第一次提交,数据库创建,初始化项目
This commit is contained in:
@@ -0,0 +1,576 @@
|
||||
-- ============================================================
|
||||
-- 量化投资数据库 Schema
|
||||
-- PostgreSQL (Docker: 192.168.27.15:12345)
|
||||
-- 数据来源:Tushare
|
||||
-- ============================================================
|
||||
|
||||
-- 先创建数据库(需要超级用户权限,在 psql 中手动执行):
|
||||
-- CREATE DATABASE quant_db ENCODING 'UTF8';
|
||||
|
||||
-- ============================================================
|
||||
-- 1. 股票基本信息表 (stock_basic)
|
||||
-- tushare接口: stock_basic
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS stock_basic (
|
||||
ts_code VARCHAR(20) PRIMARY KEY, -- 股票代码 (如 000001.SZ)
|
||||
symbol VARCHAR(10) NOT NULL, -- 股票代码 (如 000001)
|
||||
name VARCHAR(50) NOT NULL, -- 股票名称
|
||||
area VARCHAR(30), -- 地区
|
||||
industry VARCHAR(50), -- 行业
|
||||
market VARCHAR(10), -- 市场类型 (主板/中小板/创业板/科创板)
|
||||
list_date DATE, -- 上市日期
|
||||
list_status CHAR(1) DEFAULT 'L', -- 上市状态 L上市 D退市 P暂停上市
|
||||
is_hs VARCHAR(5), -- 是否沪深港通标的
|
||||
act_name VARCHAR(100), -- 实控人名称
|
||||
act_ent_type VARCHAR(50), -- 实控人企业性质
|
||||
updated_at TIMESTAMP DEFAULT NOW() -- 记录更新时间
|
||||
);
|
||||
|
||||
COMMENT ON TABLE stock_basic IS '股票基本信息表 (Tushare: stock_basic)';
|
||||
|
||||
-- 索引
|
||||
CREATE INDEX IF NOT EXISTS idx_stock_basic_industry ON stock_basic(industry);
|
||||
CREATE INDEX IF NOT EXISTS idx_stock_basic_area ON stock_basic(area);
|
||||
CREATE INDEX IF NOT EXISTS idx_stock_basic_list_status ON stock_basic(list_status);
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 2. 日线行情表 (daily) - 按年份分区
|
||||
-- tushare接口: daily / pro_bar
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS daily (
|
||||
id BIGSERIAL, -- 自增主键
|
||||
ts_code VARCHAR(20) NOT NULL, -- 股票代码
|
||||
trade_date DATE NOT NULL, -- 交易日期
|
||||
open NUMERIC(12,3), -- 开盘价
|
||||
high NUMERIC(12,3), -- 最高价
|
||||
low NUMERIC(12,3), -- 最低价
|
||||
close NUMERIC(12,3), -- 收盘价
|
||||
pre_close NUMERIC(12,3), -- 昨收价
|
||||
change NUMERIC(12,3), -- 涨跌额
|
||||
pct_chg NUMERIC(10,4), -- 涨跌幅 (%)
|
||||
vol NUMERIC(20,2), -- 成交量 (手)
|
||||
amount NUMERIC(20,4), -- 成交额 (千元)
|
||||
turnover_rate NUMERIC(10,4), -- 换手率 (%)
|
||||
volume_ratio NUMERIC(10,4), -- 量比
|
||||
ma5 NUMERIC(12,3), -- 5日均价
|
||||
ma10 NUMERIC(12,3), -- 10日均价
|
||||
ma20 NUMERIC(12,3), -- 20日均价
|
||||
ma_v_5 NUMERIC(20,2), -- 5日均量
|
||||
ma_v_10 NUMERIC(20,2), -- 10日均量
|
||||
ma_v_20 NUMERIC(20,2), -- 20日均量
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, trade_date)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE daily IS '日线行情表 (Tushare: daily)';
|
||||
|
||||
-- 核心索引
|
||||
CREATE INDEX IF NOT EXISTS idx_daily_trade_date ON daily(trade_date);
|
||||
CREATE INDEX IF NOT EXISTS idx_daily_ts_code ON daily(ts_code);
|
||||
CREATE INDEX IF NOT EXISTS idx_daily_ts_code_date ON daily(ts_code, trade_date);
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 3. 日线行情表 - 按年份分区子表(优化查询性能)
|
||||
-- PostgreSQL 原生分区表 (PG 10+)
|
||||
-- 如果版本不支持,可以跳过,直接使用 daily 表
|
||||
-- ============================================================
|
||||
|
||||
-- 仅 PG 10+ 支持以下语法,如果报错请删除分区表相关语句
|
||||
-- CREATE TABLE daily_partitioned (
|
||||
-- id BIGSERIAL,
|
||||
-- ts_code VARCHAR(20) NOT NULL,
|
||||
-- trade_date DATE NOT NULL,
|
||||
-- open NUMERIC(12,3),
|
||||
-- high NUMERIC(12,3),
|
||||
-- low NUMERIC(12,3),
|
||||
-- close NUMERIC(12,3),
|
||||
-- pre_close NUMERIC(12,3),
|
||||
-- change NUMERIC(12,3),
|
||||
-- pct_chg NUMERIC(10,4),
|
||||
-- vol NUMERIC(20,2),
|
||||
-- amount NUMERIC(20,4),
|
||||
-- turnover_rate NUMERIC(10,4),
|
||||
-- volume_ratio NUMERIC(10,4),
|
||||
-- ma5 NUMERIC(12,3),
|
||||
-- ma10 NUMERIC(12,3),
|
||||
-- ma20 NUMERIC(12,3),
|
||||
-- ma_v_5 NUMERIC(20,2),
|
||||
-- ma_v_10 NUMERIC(20,2),
|
||||
-- ma_v_20 NUMERIC(20,2),
|
||||
-- updated_at TIMESTAMP DEFAULT NOW(),
|
||||
-- PRIMARY KEY (ts_code, trade_date, trade_date) -- 分区键必须包含在主键中
|
||||
-- ) PARTITION BY RANGE (trade_date);
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 4. 复权因子表 (adj_factor)
|
||||
-- tushare接口: adj_factor
|
||||
-- 用于计算前复权/后复权价格
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS adj_factor (
|
||||
ts_code VARCHAR(20) NOT NULL,
|
||||
trade_date DATE NOT NULL,
|
||||
adj_factor NUMERIC(16,8), -- 复权因子
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, trade_date)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE adj_factor IS '复权因子表 (Tushare: adj_factor)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 5. 个股资金流向表 (moneyflow)
|
||||
-- tushare接口: moneyflow
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS moneyflow (
|
||||
ts_code VARCHAR(20) NOT NULL,
|
||||
trade_date DATE NOT NULL,
|
||||
buy_sm_vol NUMERIC(20,2), -- 小单买入量(手)
|
||||
buy_sm_amount NUMERIC(20,4), -- 小单买入金额(万元)
|
||||
sell_sm_vol NUMERIC(20,2), -- 小单卖出量(手)
|
||||
sell_sm_amount NUMERIC(20,4), -- 小单卖出金额(万元)
|
||||
buy_md_vol NUMERIC(20,2), -- 中单买入量(手)
|
||||
buy_md_amount NUMERIC(20,4), -- 中单买入金额(万元)
|
||||
sell_md_vol NUMERIC(20,2), -- 中单卖出量(手)
|
||||
sell_md_amount NUMERIC(20,4), -- 中单卖出金额(万元)
|
||||
buy_lg_vol NUMERIC(20,2), -- 大单买入量(手)
|
||||
buy_lg_amount NUMERIC(20,4), -- 大单买入金额(万元)
|
||||
sell_lg_vol NUMERIC(20,2), -- 大单卖出量(手)
|
||||
sell_lg_amount NUMERIC(20,4), -- 大单卖出金额(万元)
|
||||
buy_elg_vol NUMERIC(20,2), -- 特大单买入量(手)
|
||||
buy_elg_amount NUMERIC(20,4), -- 特大单买入金额(万元)
|
||||
sell_elg_vol NUMERIC(20,2), -- 特大单卖出量(手)
|
||||
sell_elg_amount NUMERIC(20,4), -- 特大单卖出金额(万元)
|
||||
net_mf_vol NUMERIC(20,2), -- 净流入量(手)
|
||||
net_mf_amount NUMERIC(20,4), -- 净流入额(万元)
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, trade_date)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE moneyflow IS '个股资金流向表 (Tushare: moneyflow)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 6. 每日指标表 (daily_basic) - 包含基本面/估值数据
|
||||
-- tushare接口: daily_basic
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS daily_basic (
|
||||
ts_code VARCHAR(20) NOT NULL,
|
||||
trade_date DATE NOT NULL,
|
||||
close NUMERIC(12,3), -- 收盘价
|
||||
turnover_rate NUMERIC(10,4), -- 换手率(%)
|
||||
turnover_rate_f NUMERIC(10,4), -- 自由流通股换手率(%)
|
||||
volume_ratio NUMERIC(10,4), -- 量比
|
||||
pe NUMERIC(16,4), -- 市盈率(PE)
|
||||
pe_ttm NUMERIC(16,4), -- 市盈率(TTM)
|
||||
pb NUMERIC(16,4), -- 市净率(PB)
|
||||
ps NUMERIC(16,4), -- 市销率(PS)
|
||||
ps_ttm NUMERIC(16,4), -- 市销率(TTM)
|
||||
dv_ratio NUMERIC(10,4), -- 股息率(%)
|
||||
dv_ttm NUMERIC(10,4), -- 股息率(TTM)(%)
|
||||
total_share NUMERIC(20,4), -- 总股本(万股)
|
||||
float_share NUMERIC(20,4), -- 流通股本(万股)
|
||||
free_share NUMERIC(20,4), -- 自由流通股本(万股)
|
||||
total_mv NUMERIC(20,4), -- 总市值(万元)
|
||||
circ_mv NUMERIC(20,4), -- 流通市值(万元)
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, trade_date)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE daily_basic IS '每日指标表/基本面估值表 (Tushare: daily_basic)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 7. 利润表 (income)
|
||||
-- tushare接口: income
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS income (
|
||||
ts_code VARCHAR(20) NOT NULL,
|
||||
ann_date DATE, -- 公告日期
|
||||
f_ann_date DATE, -- 实际公告日期
|
||||
end_date DATE NOT NULL, -- 报告期
|
||||
report_type VARCHAR(10), -- 报告类型
|
||||
comp_type CHAR(1), -- 公司类型
|
||||
end_type VARCHAR(10), -- 报告期类型
|
||||
basic_eps NUMERIC(16,4), -- 基本每股收益
|
||||
diluted_eps NUMERIC(16,4), -- 稀释每股收益
|
||||
total_revenue NUMERIC(20,4), -- 营业总收入(元)
|
||||
revenue NUMERIC(20,4), -- 营业收入(元)
|
||||
int_income NUMERIC(20,4), -- 利息收入
|
||||
prem_earned NUMERIC(20,4), -- 已赚保费
|
||||
comm_income NUMERIC(20,4), -- 手续费及佣金收入
|
||||
n_commis_income NUMERIC(20,4), -- 手续费及佣金净收入
|
||||
n_oth_income NUMERIC(20,4), -- 其他经营净收益
|
||||
n_oth_b_income NUMERIC(20,4), -- 加:其他业务净收益
|
||||
prem_income NUMERIC(20,4), -- 保险业务收入
|
||||
out_prem NUMERIC(20,4), -- 减:分出保费
|
||||
une_prem_reser NUMERIC(20,4), -- 提取未到期责任准备金
|
||||
reins_income NUMERIC(20,4), -- 其中:分保费收入
|
||||
n_sec_tb_income NUMERIC(20,4), -- 代理买卖证券业务净收入
|
||||
n_sec_uw_income NUMERIC(20,4), -- 证券承销业务净收入
|
||||
n_asset_mg_income NUMERIC(20,4), -- 受托客户资产管理业务净收入
|
||||
oth_b_income NUMERIC(20,4), -- 其他业务收入
|
||||
fv_value_chg NUMERIC(20,4), -- 加:公允价值变动净收益
|
||||
invest_income NUMERIC(20,4), -- 加:投资净收益
|
||||
ass_invest_income NUMERIC(20,4), -- 其中:对联营企业和合营企业的投资收益
|
||||
forex_gain NUMERIC(20,4), -- 加:汇兑净收益
|
||||
total_cogs NUMERIC(20,4), -- 营业总成本
|
||||
oper_cost NUMERIC(20,4), -- 减:营业成本
|
||||
int_exp NUMERIC(20,4), -- 减:利息支出
|
||||
comm_exp NUMERIC(20,4), -- 减:手续费及佣金支出
|
||||
biz_tax_surchg NUMERIC(20,4), -- 减:营业税金及附加
|
||||
sell_exp NUMERIC(20,4), -- 减:销售费用
|
||||
admin_exp NUMERIC(20,4), -- 减:管理费用
|
||||
fin_exp NUMERIC(20,4), -- 减:财务费用
|
||||
assets_impair_loss NUMERIC(20,4), -- 减:资产减值损失
|
||||
prem_refund NUMERIC(20,4), -- 退保金
|
||||
compens_payout NUMERIC(20,4), -- 赔付总支出
|
||||
reser_insur_liab NUMERIC(20,4), -- 提取保险责任准备金
|
||||
div_payt NUMERIC(20,4), -- 保户红利支出
|
||||
reins_exp NUMERIC(20,4), -- 分保费用
|
||||
oper_exp NUMERIC(20,4), -- 营业支出
|
||||
compens_payout_refu NUMERIC(20,4), -- 减:摊回赔付支出
|
||||
insur_reser_refu NUMERIC(20,4), -- 减:摊回保险责任准备金
|
||||
reins_cost_refund NUMERIC(20,4), -- 减:摊回分保费用
|
||||
other_bus_cost NUMERIC(20,4), -- 其他业务成本
|
||||
operate_profit NUMERIC(20,4), -- 营业利润
|
||||
non_oper_income NUMERIC(20,4), -- 加:营业外收入
|
||||
non_oper_exp NUMERIC(20,4), -- 减:营业外支出
|
||||
nca_disploss NUMERIC(20,4), -- 其中:减:非流动资产处置净损失
|
||||
total_profit NUMERIC(20,4), -- 利润总额
|
||||
income_tax NUMERIC(20,4), -- 所得税费用
|
||||
n_income NUMERIC(20,4), -- 净利润(含少数股东损益)
|
||||
n_income_attr_p NUMERIC(20,4), -- 净利润(不含少数股东损益)
|
||||
minority_gain NUMERIC(20,4), -- 少数股东损益
|
||||
oth_compre_income NUMERIC(20,4), -- 其他综合收益
|
||||
total_compre_income NUMERIC(20,4), -- 综合收益总额
|
||||
comp_pre_inc_attr_p NUMERIC(20,4), -- 归属于母公司(或股东)的综合收益总额
|
||||
comp_inc_attr_m_s NUMERIC(20,4), -- 归属于少数股东的综合收益总额
|
||||
ebit NUMERIC(20,4), -- 息税前利润
|
||||
ebitda NUMERIC(20,4), -- 息税折旧摊销前利润
|
||||
insurance_exp NUMERIC(20,4), -- 保险业务支出
|
||||
undist_profit NUMERIC(20,4), -- 年初未分配利润
|
||||
distable_profit NUMERIC(20,4), -- 可分配利润
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, end_date, report_type)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE income IS '利润表 (Tushare: income)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 8. 资产负债表 (balancesheet)
|
||||
-- tushare接口: balancesheet
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS balancesheet (
|
||||
ts_code VARCHAR(20) NOT NULL,
|
||||
ann_date DATE,
|
||||
f_ann_date DATE,
|
||||
end_date DATE NOT NULL, -- 报告期
|
||||
report_type VARCHAR(10),
|
||||
comp_type CHAR(1),
|
||||
end_type VARCHAR(10),
|
||||
|
||||
-- 资产
|
||||
total_hldr_eqy_exc_min_int NUMERIC(20,4), -- 股东权益合计(不含少数股东权益)
|
||||
total_hldr_eqy_inc_min_int NUMERIC(20,4), -- 股东权益合计(含少数股东权益)
|
||||
total_assets NUMERIC(20,4), -- 资产总计
|
||||
total_cur_assets NUMERIC(20,4), -- 流动资产合计
|
||||
total_nca NUMERIC(20,4), -- 非流动资产合计
|
||||
money_cap NUMERIC(20,4), -- 货币资金
|
||||
trad_asset NUMERIC(20,4), -- 交易性金融资产
|
||||
notes_receiv NUMERIC(20,4), -- 应收票据
|
||||
account_receiv NUMERIC(20,4), -- 应收账款
|
||||
oth_receiv NUMERIC(20,4), -- 其他应收款
|
||||
prepayment NUMERIC(20,4), -- 预付款项
|
||||
div_receiv NUMERIC(20,4), -- 应收股利
|
||||
int_receiv NUMERIC(20,4), -- 应收利息
|
||||
inventories NUMERIC(20,4), -- 存货
|
||||
amor_exp NUMERIC(20,4), -- 待摊费用
|
||||
nca_within_1y NUMERIC(20,4), -- 一年内到期的非流动资产
|
||||
sett_rsrv NUMERIC(20,4), -- 结算备付金
|
||||
loanto_oth_bank_fi NUMERIC(20,4), -- 拆出资金
|
||||
premium_receiv NUMERIC(20,4), -- 应收保费
|
||||
reinsur_receiv NUMERIC(20,4), -- 应收分保账款
|
||||
reinsur_res_receiv NUMERIC(20,4), -- 应收分保合同准备金
|
||||
pur_resale_fa NUMERIC(20,4), -- 买入返售金融资产
|
||||
oth_cur_assets NUMERIC(20,4), -- 其他流动资产
|
||||
|
||||
-- 非流动资产
|
||||
fa_avail_for_sale NUMERIC(20,4), -- 可供出售金融资产
|
||||
htm_invest NUMERIC(20,4), -- 持有至到期投资
|
||||
lt_eqt_invest NUMERIC(20,4), -- 长期股权投资
|
||||
invest_real_estate NUMERIC(20,4), -- 投资性房地产
|
||||
time_deposits NUMERIC(20,4), -- 定期存款
|
||||
oth_assets NUMERIC(20,4), -- 其他资产
|
||||
lt_rec NUMERIC(20,4), -- 长期应收款
|
||||
fix_assets NUMERIC(20,4), -- 固定资产
|
||||
cip NUMERIC(20,4), -- 在建工程
|
||||
const_materials NUMERIC(20,4), -- 工程物资
|
||||
fixed_assets_disp NUMERIC(20,4), -- 固定资产清理
|
||||
produc_bio_assets NUMERIC(20,4), -- 生产性生物资产
|
||||
oil_and_gas_assets NUMERIC(20,4), -- 油气资产
|
||||
intan_assets NUMERIC(20,4), -- 无形资产
|
||||
r_and_d NUMERIC(20,4), -- 研发支出
|
||||
goodwill NUMERIC(20,4), -- 商誉
|
||||
lt_amor_exp NUMERIC(20,4), -- 长期待摊费用
|
||||
defer_tax_assets NUMERIC(20,4), -- 递延所得税资产
|
||||
decr_in_disbur NUMERIC(20,4), -- 待处理流动资产损益
|
||||
oth_nca NUMERIC(20,4), -- 其他非流动资产
|
||||
|
||||
-- 负债
|
||||
total_liab NUMERIC(20,4), -- 负债合计
|
||||
total_cur_liab NUMERIC(20,4), -- 流动负债合计
|
||||
total_ncl NUMERIC(20,4), -- 非流动负债合计
|
||||
short_borr NUMERIC(20,4), -- 短期借款
|
||||
lt_borr NUMERIC(20,4), -- 长期借款
|
||||
st_notes_payable NUMERIC(20,4), -- 应付票据
|
||||
acct_payable NUMERIC(20,4), -- 应付账款
|
||||
adv_receipts NUMERIC(20,4), -- 预收款项
|
||||
bonds_payable NUMERIC(20,4), -- 应付债券
|
||||
oth_payable NUMERIC(20,4), -- 其他应付款
|
||||
div_payable NUMERIC(20,4), -- 应付股利
|
||||
int_payable NUMERIC(20,4), -- 应付利息
|
||||
lt_payable NUMERIC(20,4), -- 长期应付款
|
||||
special_payable NUMERIC(20,4), -- 专项应付款
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, end_date, report_type)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE balancesheet IS '资产负债表 (Tushare: balancesheet)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 9. 现金流量表 (cashflow)
|
||||
-- tushare接口: cashflow
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS cashflow (
|
||||
ts_code VARCHAR(20) NOT NULL,
|
||||
ann_date DATE,
|
||||
f_ann_date DATE,
|
||||
end_date DATE NOT NULL, -- 报告期
|
||||
report_type VARCHAR(10),
|
||||
comp_type CHAR(1),
|
||||
end_type VARCHAR(10),
|
||||
|
||||
-- 经营活动
|
||||
net_profit NUMERIC(20,4), -- 净利润
|
||||
fin_exp NUMERIC(20,4), -- 财务费用
|
||||
c_fr_sale_sg NUMERIC(20,4), -- 销售商品、提供劳务收到的现金
|
||||
recp_tax_rends NUMERIC(20,4), -- 收到的税费返还
|
||||
n_depos_incr_fi NUMERIC(20,4), -- 客户存款和同业存放款项净增加额
|
||||
n_incr_loans_cb NUMERIC(20,4), -- 向中央银行借款净增加额
|
||||
n_incr_borr_oth_fi NUMERIC(20,4), -- 向其他金融机构拆入资金净增加额
|
||||
prem_fr_orig_contr NUMERIC(20,4), -- 收到原保险合同保费取得的现金
|
||||
n_incr_insured_dep NUMERIC(20,4), -- 保户储金净增加额
|
||||
n_reinsur_prem NUMERIC(20,4), -- 收到再保业务现金净额
|
||||
n_incr_disp_tfa NUMERIC(20,4), -- 处置交易性金融资产净增加额
|
||||
ifc_cash_incr NUMERIC(20,4), -- 收取利息、手续费及佣金的现金
|
||||
n_incr_disp_faas NUMERIC(20,4), -- 处置可供出售金融资产净增加额
|
||||
n_incr_loans_oth_bank NUMERIC(20,4), -- 拆入资金净增加额
|
||||
dcr_cash_paym NUMERIC(20,4), -- 回购业务资金净增加额
|
||||
oth_cash_recp_ral_oper_act NUMERIC(20,4), -- 收到其他与经营活动有关的现金
|
||||
st_cash_out_act NUMERIC(20,4), -- 经营活动现金流出小计
|
||||
n_cashflow_act NUMERIC(20,4), -- 经营活动产生的现金流量净额
|
||||
|
||||
-- 投资活动
|
||||
c_inf_fr_invest_act NUMERIC(20,4), -- 投资活动现金流入小计
|
||||
c_out_invest_act NUMERIC(20,4), -- 投资活动现金流出小计
|
||||
n_cashflow_inv_act NUMERIC(20,4), -- 投资活动产生的现金流量净额
|
||||
|
||||
-- 筹资活动
|
||||
c_inf_fr_fin_act NUMERIC(20,4), -- 筹资活动现金流入小计
|
||||
st_cash_out_fin_act NUMERIC(20,4), -- 筹资活动现金流出小计
|
||||
n_cash_flows_fin_act NUMERIC(20,4), -- 筹资活动产生的现金流量净额
|
||||
eff_fx_flu_cash NUMERIC(20,4), -- 汇率变动对现金的影响
|
||||
n_incr_cash_cash_equ NUMERIC(20,4), -- 现金及现金等价物净增加额
|
||||
c_cash_equ_beg_period NUMERIC(20,4), -- 期初现金及现金等价物余额
|
||||
c_cash_equ_end_period NUMERIC(20,4), -- 期末现金及现金等价物余额
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, end_date, report_type)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE cashflow IS '现金流量表 (Tushare: cashflow)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 10. 财务指标表 (fina_indicator) - 核心基本面指标
|
||||
-- tushare接口: fina_indicator
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS fina_indicator (
|
||||
ts_code VARCHAR(20) NOT NULL,
|
||||
ann_date DATE,
|
||||
end_date DATE NOT NULL, -- 报告期
|
||||
-- 每股指标
|
||||
eps NUMERIC(16,4), -- 每股收益
|
||||
dt_eps NUMERIC(16,4), -- 稀释每股收益
|
||||
total_revenue_ps NUMERIC(16,4), -- 每股营业总收入
|
||||
revenue_ps NUMERIC(16,4), -- 每股营业收入
|
||||
capital_rese_ps NUMERIC(16,4), -- 每股资本公积
|
||||
surplus_rese_ps NUMERIC(16,4), -- 每股盈余公积
|
||||
undist_profit_ps NUMERIC(16,4), -- 每股未分配利润
|
||||
extra_item NUMERIC(16,4), -- 非经常性损益
|
||||
profit_dedt NUMERIC(16,4), -- 扣除非经常性损益后的净利润(扣非净利润)
|
||||
-- 成长能力
|
||||
gross_margin NUMERIC(16,4), -- 毛利
|
||||
current_ratio NUMERIC(16,4), -- 流动比率
|
||||
quick_ratio NUMERIC(16,4), -- 速动比率
|
||||
cash_ratio NUMERIC(16,4), -- 保守速动比率
|
||||
invturn_days NUMERIC(16,4), -- 存货周转天数
|
||||
arturn_days NUMERIC(16,4), -- 应收账款周转天数
|
||||
inv_turn NUMERIC(16,4), -- 存货周转率
|
||||
ar_turn NUMERIC(16,4), -- 应收账款周转率
|
||||
assets_turn NUMERIC(16,4), -- 总资产周转率
|
||||
-- 盈利能力
|
||||
roe NUMERIC(16,4), -- 净资产收益率
|
||||
roe_dt NUMERIC(16,4), -- 净资产收益率(扣除非经常损益)
|
||||
roa NUMERIC(16,4), -- 总资产净利率
|
||||
roa2 NUMERIC(16,4), -- 总资产报酬率
|
||||
roic NUMERIC(16,4), -- 投入资本回报率
|
||||
-- 杠杆/偿债
|
||||
longdeb_to_debt NUMERIC(16,4), -- 长期借款与资产总计之比
|
||||
debt_to_assets NUMERIC(16,4), -- 资产负债率
|
||||
ncfm NUMERIC(16,4), -- 销售商品提供劳务收到的现金/营业收入
|
||||
-- 收益质量
|
||||
profit_to_op NUMERIC(16,4), -- 经营活动净收益/利润总额
|
||||
cfo_to_or NUMERIC(16,4), -- 经营活动现金流净额/营业收入
|
||||
ocf_to_or NUMERIC(16,4), -- 经营现金净流量/营业总收入
|
||||
-- 杜邦分析
|
||||
dupont_roe NUMERIC(16,4), -- 净资产收益率(杜邦)
|
||||
dupont_assets_turn NUMERIC(16,4), -- 资产周转率(杜邦)
|
||||
dupont_equity_multi NUMERIC(16,4), -- 权益乘数(杜邦)
|
||||
dupont_net_profit_margin NUMERIC(16,4), -- 销售净利率(杜邦)
|
||||
-- 分红
|
||||
div_rec NUMERIC(16,4), -- 每股股利(税前)
|
||||
-- 其他
|
||||
ocfps NUMERIC(16,4), -- 每股经营活动产生的现金流量净额
|
||||
cfps NUMERIC(16,4), -- 每股现金流量净额
|
||||
ebit_ps NUMERIC(16,4), -- 每股息税前利润
|
||||
fcff_ps NUMERIC(16,4), -- 每股企业自由现金流量
|
||||
fcfe_ps NUMERIC(16,4), -- 每股股东自由现金流量
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, end_date)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE fina_indicator IS '财务指标表 (Tushare: fina_indicator)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 11. 交易日历表 (trade_cal)
|
||||
-- tushare接口: trade_cal
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS trade_cal (
|
||||
exchange VARCHAR(10) NOT NULL, -- 交易所 SSE上交所 SZSE深交所
|
||||
cal_date DATE NOT NULL, -- 日历日期
|
||||
is_open INTEGER NOT NULL, -- 是否交易 0休市 1交易
|
||||
pretrade_date DATE, -- 上一个交易日
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (exchange, cal_date)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE trade_cal IS '交易日历表 (Tushare: trade_cal)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 12. 指数日线行情表 (index_daily)
|
||||
-- tushare接口: index_daily
|
||||
-- 用于记录主要指数(沪深300、中证500等)的日线行情
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS index_daily (
|
||||
ts_code VARCHAR(20) NOT NULL, -- 指数代码 (如 000300.SH)
|
||||
trade_date DATE NOT NULL,
|
||||
close NUMERIC(12,4),
|
||||
open NUMERIC(12,4),
|
||||
high NUMERIC(12,4),
|
||||
low NUMERIC(12,4),
|
||||
pre_close NUMERIC(12,4),
|
||||
change NUMERIC(12,4),
|
||||
pct_chg NUMERIC(10,4),
|
||||
vol NUMERIC(20,2),
|
||||
amount NUMERIC(20,4),
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
PRIMARY KEY (ts_code, trade_date)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE index_daily IS '指数日线行情表 (Tushare: index_daily)';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 常用查询视图
|
||||
-- ============================================================
|
||||
|
||||
-- 视图1: 日线行情 + 估值指标联合查询
|
||||
CREATE OR REPLACE VIEW v_daily_with_valuation AS
|
||||
SELECT
|
||||
d.ts_code,
|
||||
d.trade_date,
|
||||
b.name,
|
||||
b.industry,
|
||||
b.area,
|
||||
d.open,
|
||||
d.high,
|
||||
d.low,
|
||||
d.close,
|
||||
d.pre_close,
|
||||
d.pct_chg,
|
||||
d.vol,
|
||||
d.amount,
|
||||
d.turnover_rate,
|
||||
db.pe,
|
||||
db.pe_ttm,
|
||||
db.pb,
|
||||
db.ps,
|
||||
db.ps_ttm,
|
||||
db.total_mv,
|
||||
db.circ_mv,
|
||||
db.dv_ratio,
|
||||
db.dv_ttm
|
||||
FROM daily d
|
||||
LEFT JOIN stock_basic b ON d.ts_code = b.ts_code
|
||||
LEFT JOIN daily_basic db ON d.ts_code = db.ts_code AND d.trade_date = db.trade_date;
|
||||
|
||||
COMMENT ON VIEW v_daily_with_valuation IS '日线行情+估值联合查询视图';
|
||||
|
||||
|
||||
-- 视图2: 最新财务指标 + 股票基本信息
|
||||
CREATE OR REPLACE VIEW v_latest_financials AS
|
||||
SELECT DISTINCT ON (f.ts_code)
|
||||
f.ts_code,
|
||||
b.name,
|
||||
b.industry,
|
||||
b.area,
|
||||
b.list_date,
|
||||
f.end_date AS report_date,
|
||||
f.eps,
|
||||
f.roe,
|
||||
f.roa,
|
||||
f.roic,
|
||||
f.current_ratio,
|
||||
f.quick_ratio,
|
||||
f.debt_to_assets,
|
||||
f.gross_margin,
|
||||
f.assets_turn,
|
||||
f.cfps,
|
||||
f.ocfps,
|
||||
f.div_rec
|
||||
FROM fina_indicator f
|
||||
JOIN stock_basic b ON f.ts_code = b.ts_code
|
||||
ORDER BY f.ts_code, f.end_date DESC;
|
||||
|
||||
COMMENT ON VIEW v_latest_financials IS '最新财务指标+股票信息';
|
||||
|
||||
-- ============================================================
|
||||
-- 完成
|
||||
-- ============================================================
|
||||
Reference in New Issue
Block a user