Skip to content

SQL在线学习网站 - 面向银行数据库SQL分析的教学系统

Notifications You must be signed in to change notification settings

knightc2020/sql-learning-web

Repository files navigation

SQL在线学习平台 - 前端实现

项目概述

面向国际金融公司新入职研究生的SQL学习平台,提供银行数据分析相关的SQL知识学习和实践环境。

目标用户

  • 具备金融业务知识
  • 有数据分析基础
  • 需要学习SQL和银行数据库操作

课程内容

1. SQL基础知识

  • 数据库基本概念
    • 关系型数据库介绍
    • 表、字段、记录的概念
    • 主键和外键的作用
    • 数据库设计基础
  • SQL语言简介
    • SQL语言的发展历史
    • SQL语句类型(DDL, DML, DQL)
    • SQL语法规则和书写规范
  • 数据类型和表结构
    • 常用数据类型详解
    • 字段属性和约束条件
    • 表结构设计最佳实践
  • 基本查询语句(SELECT)
    • SELECT语句基本语法
    • 字段选择和别名设置
    • 常用函数使用方法
  • 条件筛选(WHERE)
    • 比较运算符使用
    • 逻辑运算符(AND, OR, NOT)
    • 模糊匹配(LIKE)
    • IN和BETWEEN运算符
  • 排序和分组
    • ORDER BY单字段排序
    • 多字段组合排序
    • GROUP BY分组统计
    • HAVING过滤条件
  • 聚合函数应用
    • COUNT统计记录数
    • SUM求和运算
    • AVG平均值计算
    • MAX/MIN最值查找
    • 分组聚合实践

2. 银行数据分析实战

  • 客户信息分析
    • 客户画像查询
      • 基础信息统计
      • 年龄段分布分析
      • 职业类型占比
      • 收入水平分布
    • 客户分类统计
      • VIP客户筛选
      • 客户等级分布
      • 开户时间分析
      • 账户活跃度评估
    • 客户行为分析
      • 交易频次统计
      • 产品偏好分析
      • 渠道使用习惯
      • 风险行为识别
  • 交易数据处理
    • 日常交易统计
      • 交易量趋势分析
      • 交易金额分布
      • 交易类型占比
      • 高频交易时段识别
    • 异常交易识别
      • 大额交易筛选
      • 频繁交易监控
      • 可疑模式识别
      • 风险评分计算
    • 交易趋势分析
      • 日环比计算
      • 月度趋势对比
      • 季节性波动分析
      • 年度增长预测
  • 信贷业务分析
    • 贷款数据查询
      • 贷款类型分布
      • 期限结构分析
      • 利率水平统计
      • 担保方式占比
    • 风险评估指标
      • 逾期率计算
      • 违约概率分析
      • 损失率估算
      • 风险等级划分
    • 还款情况统计
      • 按时还款率
      • 提前还款分析
      • 逾期天数统计
      • 坏账率计算

3. 高级查询技巧

  • 多表联接
    • INNER JOIN内连接
    • LEFT/RIGHT JOIN外连接
    • FULL JOIN全连接
    • 多表联接优化技巧
  • 子查询和嵌套查询
    • 单行子查询
    • 多行子查询
    • 相关子查询
    • 子查询性能优化
  • 窗口函数应用
    • ROW_NUMBER()排序
    • RANK()和DENSE_RANK()
    • LAG/LEAD前后值获取
    • 移动平均计算
  • 时间序列分析
    • 日期函数使用
    • 时间区间计算
    • 时序数据统计
    • 周期性分析方法
  • 条件表达式
    • CASE WHEN基础用法
    • 多条件判断
    • 条件分支处理
    • 空值处理方案

4. 数据质量控制

  • 数据完整性检查
    • 必填字段验证
    • 数据格式检查
    • 业务规则验证
    • 参照完整性检查
  • 重复数据处理
    • 重复记录识别
    • 去重方法比较
    • 保留规则设定
    • 历史数据清理
  • 空值处理方法
    • NULL值识别
    • 默认值设置
    • 条件替换处理
    • 统计值填充
  • 数据一致性验证
    • 跨表数据核对
    • 汇总数据验证
    • 业务逻辑检查
    • 数据修复方案

5. 常用分析场景

  • 月度业务报表
    • 业务量统计
    • 收入分析
    • 客户增长
    • 产品表现
  • 客户流失预警
    • 活跃度分析
    • 交易频次监控
    • 产品使用率
    • 流失风险评估
  • 产品销售分析
    • 销售额统计
    • 产品占比
    • 客群分布
    • 渠道贡献
  • 营收趋势分析
    • 收入构成
    • 增长率计算
    • 季节性分析
    • 预测模型
  • 风险监控指标
    • 信用风险
    • 市场风险
    • 操作风险
    • 流动性风险

6. 最佳实践

  • 查询性能优化
    • 索引使用技巧
    • 查询计划分析
    • 大数据量处理
    • 缓存策略运用
  • 代码规范和风格
    • SQL编写规范
    • 命名约定
    • 注释规范
    • 版本控制
  • 常见错误避免
    • 语法错误预防
    • 逻辑错误检查
    • 性能陷阱规避
    • 调试技巧
  • 安全性考虑
    • 权限管理
    • SQL注入防范
    • 敏感数据保护
    • 审计日志

学习路径建议

  1. 入门阶段(1-2周)

    • 完成SQL基础知识模块
    • 掌握基本查询语句
    • 练习简单数据筛选
  2. 进阶阶段(2-4周)

    • 学习高级查询技巧
    • 实践多表联接操作
    • 掌握子查询使用
  3. 实战阶段(4-8周)

    • 银行数据分析案例实践
    • 常用分析场景演练
    • 数据质量控制方法应用
  4. 提高阶段(8周以后)

    • 性能优化技巧
    • 最佳实践应用
    • 实际业务问题解决

练习建议

  • 每个知识点配备3-5个练习题
  • 提供实际业务场景的案例
  • 定期进行综合能力测试
  • 鼓励学员互相讨论和分享

已实现功能

  • ✅ 用户认证系统
    • 用户登录
    • Token 基于认证
    • 会话管理
    • 安全退出
  • ✅ SQL查询功能
    • 实时SQL查询执行
    • 查询结果表格展示
    • 分页显示
    • 错误提示
  • ✅ 代码编辑器
    • SQL语法高亮
    • 自动补全提示
    • 智能错误检测

使用说明

  1. 登录系统

    • 访问登录页面
    • 输入用户名和密码
    • 登录成功后自动跳转到查询页面
  2. 执行SQL查询

    • 在SQL编辑器中输入SELECT查询语句
    • 点击"执行查询"按钮
    • 查看查询结果
    • 注意:目前仅支持SELECT语句,且不支持SQL注释
  3. 查看结果

    • 结果以表格形式展示
    • 支持分页浏览
    • 显示查询错误提示
  4. 注意事项

    • 仅支持SELECT查询语句
    • 不要在查询中包含SQL注释
    • 确保查询语句格式正确

技术栈

  • 框架: Next.js + TypeScript
  • UI组件: TailwindCSS
  • 状态管理: React Context
  • 代码编辑器: CodeMirror
  • 数据可视化: React-Table
  • API集成: REST API
  • 部署: Vercel

开发环境设置

  1. 安装依赖
npm install
  1. 配置环境变量 创建 .env.local 文件并设置:
NEXT_PUBLIC_API_URL=http://127.0.0.1:8080
  1. 启动开发服务器
npm run dev
  1. 访问应用 打开浏览器访问 http://localhost:3000

后续开发计划

  1. 功能增强

    • 添加查询历史记录
    • 支持导出查询结果
    • 添加更多数据库操作示例
  2. 用户体验优化

    • 优化错误提示
    • 添加加载动画
    • 改进响应式设计
  3. 安全性改进

    • 增加请求限流
    • 完善错误处理
    • 加强输入验证

贡献指南

  1. Fork 项目
  2. 创建功能分支
  3. 提交更改
  4. 发起 Pull Request

许可证

MIT License

About

SQL在线学习网站 - 面向银行数据库SQL分析的教学系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages