PostgreSQL_数据表结构设计并创建
目录
前置:
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
那现在就开始愉快地创建表格吧