first commit

This commit is contained in:
2025-06-12 19:37:54 +08:00
parent bb2eb010f7
commit 1c6093fa9a
87 changed files with 18432 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
-- ================================
-- 农业股票数据处理系统 - 扩展表结构
-- 用于存储Spark处理后的分析结果
-- ================================
-- 技术指标数据表
CREATE TABLE IF NOT EXISTS stock_technical_indicators (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
stock_code VARCHAR(10) NOT NULL COMMENT '股票代码',
stock_name VARCHAR(100) NOT NULL COMMENT '股票名称',
trade_date DATE NOT NULL COMMENT '交易日期',
close_price DECIMAL(10,2) COMMENT '收盘价',
ma5 DECIMAL(10,2) COMMENT '5日移动平均',
ma10 DECIMAL(10,2) COMMENT '10日移动平均',
ma20 DECIMAL(10,2) COMMENT '20日移动平均',
ma30 DECIMAL(10,2) COMMENT '30日移动平均',
rsi DECIMAL(5,2) COMMENT 'RSI相对强弱指标',
macd_dif DECIMAL(10,4) COMMENT 'MACD DIF值',
macd_dea DECIMAL(10,4) COMMENT 'MACD DEA值',
bb_upper DECIMAL(10,2) COMMENT '布林带上轨',
bb_middle DECIMAL(10,2) COMMENT '布林带中轨',
bb_lower DECIMAL(10,2) COMMENT '布林带下轨',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='股票技术指标表';
-- 创建索引
CREATE INDEX idx_technical_stock ON stock_technical_indicators(stock_code);
CREATE INDEX idx_technical_date ON stock_technical_indicators(trade_date);
CREATE INDEX idx_technical_stock_date ON stock_technical_indicators(stock_code, trade_date);
-- 行业分析表
CREATE TABLE IF NOT EXISTS industry_analysis (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
industry VARCHAR(50) NOT NULL COMMENT '行业名称',
analysis_date DATE NOT NULL COMMENT '分析日期',
stock_count INT COMMENT '股票数量',
avg_change_percent DECIMAL(5,2) COMMENT '平均涨跌幅',
total_market_cap DECIMAL(15,2) COMMENT '行业总市值',
total_volume BIGINT COMMENT '行业总成交量',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='行业分析表';
-- 创建索引
CREATE INDEX idx_industry_date ON industry_analysis(analysis_date);
CREATE INDEX idx_industry_name ON industry_analysis(industry);
CREATE INDEX idx_industry_date_name ON industry_analysis(analysis_date, industry);
-- 市场趋势表
CREATE TABLE IF NOT EXISTS market_trends (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
trade_date DATE NOT NULL COMMENT '交易日期',
avg_price DECIMAL(10,2) COMMENT '平均价格',
avg_change_percent DECIMAL(5,2) COMMENT '平均涨跌幅',
total_volume BIGINT COMMENT '总成交量',
total_turnover DECIMAL(15,2) COMMENT '总成交额',
stock_count INT COMMENT '股票数量',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='市场趋势表';
-- 创建索引
CREATE INDEX idx_trends_date ON market_trends(trade_date);
-- 为已有的market_analysis表添加唯一索引防止重复数据
CREATE UNIQUE INDEX idx_market_analysis_date ON market_analysis(analysis_date);
-- ================================
-- 示例查询语句
-- ================================
-- 查询最新的市场分析数据
-- SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1;
-- 查询特定股票的技术指标
-- SELECT * FROM stock_technical_indicators
-- WHERE stock_code = 'sz000876'
-- ORDER BY trade_date DESC LIMIT 30;
-- 查询行业表现排行
-- SELECT industry, avg_change_percent, stock_count
-- FROM industry_analysis
-- WHERE analysis_date = (SELECT MAX(analysis_date) FROM industry_analysis)
-- ORDER BY avg_change_percent DESC;
-- 查询市场趋势
-- SELECT trade_date, avg_change_percent, total_volume
-- FROM market_trends
-- ORDER BY trade_date DESC LIMIT 30;