PostgreSQL_数据表结构设计并创建

发布于:2025-03-22 ⋅ 阅读:(22) ⋅ 点赞:(0)

目录

前置:

1 数据表设计思路

2 数据表格SQL

3 创建

3.1 创建数据库 db_stock

3.2 在 pgAdmin4 中创建表


前置:

本博文是一个系列。在本人“数据库专栏”-》“PostgreSQL_”开头的博文

1 数据表设计思路

1 日数据来自优矿,优矿的数据可以通过csv导出,但要注意每日只能下载30M

2 日数据的使用主要包括两个方面,一个是查询一只股票的历史数据(在这里理解为纵向数据),一个是查询某日或某段时间所有股票的数据(在这里理解为横向数据)

3 考虑到复权数据的特性,数据库中保存未复权数据。需要使用复权数据时再通过复权因子计算。所以需要有单独保存复权因子的地方(本实例只考虑前复权的情况)。

基于以上三点,本项目需要以下表格:

1 表格 t_stock_daily 用于存储纵向数据

2 表格 t_daily 用于存储横向数据

3 表格 t_ticker_adj_factor 用于存储纵向数据的前复权因子

4 表格 t_date_adj_factor 用于存储横数据的向前复权因子

本实例将数据库命名为 db_stock

2 数据表格SQL

表格 SQL语句
t_stock_daily
create table t_stock_daily(
ticker varchar ,
tradeDate varchar[],
openPrice real[],
highestPrice real[],
lowestPrice real[],
closePrice real[],
turnoverVol real[],
turnoverValue real[],
dealAmount real[],
turnoverRate real[],
negMarketValue double precision[],
marketValue double precision[],
chgPct real[],
PE real[],
PE1 real[],
PB real[],
isOpen smallint[],
vwap real[]
)
t_daily
create table t_daily(
tradeDate varchar ,
tradeDateOj date,
ticker varchar[],
openPrice real[],
highestPrice real[],
lowestPrice real[],
closePrice real[],
turnoverVol real[],
turnoverValue real[],
dealAmount real[],
turnoverRate real[],
negMarketValue double precision[],
marketValue double precision[],
chgPct real[],
PE real[],
PE1 real[],
PB real[],
isOpen smallint[],
vwap real[]
)
t_ticker_adj_factor
create table t_ticker_adj_factor(
ticker varchar,
tradeDate varchar[],
accumAdjFactor real[]
)
t_date_adj_factor
create table t_date_adj_factor(
tradeDate varchar,
ticker varchar[],
accumAdjFactor real[]
)

字段名和优矿中一样,要知道具体含义可以看优矿官网  https://uqer.datayes.com/ 中的数据研究

3 创建

3.1 创建数据库 db_stock

创建数据库有多种方式,本项目直接用命令行创建

1) 打开cmd

2) cd 到 PostgreSQL安装目录里的bin目录下

3)执行  

createdb -U postgres -h 127.0.0.1 -p 5432 db_stock

3.2 在 pgAdmin4 中创建表

 

 Tools -> Query Tool

那现在就开始愉快地创建表格吧