当前位置: 首页 > news >正文

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

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

http://www.dtcms.com/a/81849.html

相关文章:

  • Unity将运行时Mesh导出为fbx
  • Nordic nRF 蓝牙的 Direct Test Mode (DTM) 测试介绍
  • 强大的AI网站推荐(第二集)—— V0.dev
  • 第六篇:Setup:组件渲染前的初始化过程是怎样的?
  • 【网络安全】从浏览器到服务端讲JavaScript安全
  • 星型拓扑网络发生网络风暴
  • 鸿蒙ArkTS+ArkUI实现五子棋游戏
  • C++ 异常 【无敌详细版】
  • 用逻辑分析仪分析Usart波形
  • 如何使用ncurses库并在Linux上编译?
  • C++Primer学习(13.1 拷贝、赋值与销毁)
  • OSPF-8 OSPF特殊区域NSSA
  • 基于 FPGA的HLS技术与应用
  • 『 C++ 』多线程编程中的参数传递技巧
  • 23 种设计模式中的访问者模式
  • 【大模型算法工程】大模型应用工具化、忠诚度以及知识库场景下PDF双栏解析问题的讨论
  • 视点游动生成光照贴图
  • 3.21学习总结 Java字符串+Static关键字
  • AI Agent开发大全第一课-AI是什么以及如何使用AI
  • Unity代码中修改动画速度
  • Python 面向对象三大特性深度解析
  • C#与西门子PLC的六大通信库
  • VSCode中搜索插件显示“提取扩展时出错。Failed to fetch”问题解决!
  • java基础--序列化与反序列化的概念是什么?
  • 大数据学习(80)-数仓分层
  • Spring 三级缓存能不能解决循环依赖?
  • 概率预测之NGBoost(Natural Gradient Boosting)回归和分位数(Quantile Regression)回归
  • KNN算法
  • Spring Boot中接口数据字段为 Long 类型时,前端number精度丢失问题解决方案
  • Vue入门