【go】(仅思路)使用go实现一款简单的关系型数据库gosql

文章目录

  • 背景
    • 给navicate回复版本号
    • 建立连接
    • 数据库list
    • 新建数据库
    • 删除数据库
    • 删除表
    • 查询表数据
    • 总结
    • roadmap
    • navicate连接适配

背景

使用go很容易编译出一个二进制文件,已经有人用纯go实现了sqlite3的驱动(go get github.com/glebarez/sqlite),那么如果实现出一款最简单的关系型数据库gosql,需要多少行代码呢,只能让cursor帮我们写写了。

给navicate回复版本号

这个cursor似乎能搞定。
在这里插入图片描述

建立连接

报错:2013 Lost connection to server during querying
在这里插入图片描述

数据库list

在这里插入图片描述

新建数据库

这个反引号是什么操作:
在这里插入图片描述

删除数据库

1064 unsupported error
在这里插入图片描述

删除表

1051
在这里插入图片描述
1008
在这里插入图片描述

查询表数据

在这里插入图片描述

总结

有种前后端联调的感觉。

  • navicate是前端页面
  • gosql是后端接口
  • 请求参数是如 'show databases; use test; '之类的sql语句
  • 响应的内容倒是没打印看过,应该是既有json,又有非结构化的数据。

roadmap

# GoSQL 开发路线图## 已完成- [X] 基础存储引擎(内存版)
- [X] SQL 词法分析器(Lexer)
- [X] SQL 语法解析器(Parser)
- [X] SELECT 语句解析与执行
- [X] INSERT 语句解析与执行
- [X] UPDATE 语句解析(Parser)
- [X] UPDATE 语句执行(Executor)
- [X] DELETE 语句解析(Parser)
- [X] DELETE 语句执行(Executor)
- [X] WHERE 条件扩展
- [X] B+树索引实现
- [X] 主键索引支持
- [X] 查询优化器接口设计
- [X] 事务支持接口设计
- [X] 事务状态管理
- [X] 锁机制实现
- [X] 并发控制与事务隔离级别设计## 进行中/下一步- [ ] 新阶段需求或功能扩展## 技术债务1. 存储引擎- [ ] 添加持久化支持- [ ] 实现数据页管理- [ ] 添加缓存机制## 注意事项- 每个功能模块完成后需要编写完整的单元测试
- 保持代码文档的及时更新
- 遵循 Go 语言最佳实践
- 注重代码质量和性能优化

navicate连接适配

# Navicat 连接适配计划## 已完成功能- 基础 MySQL 协议握手实现
- 支持 Navicat 连接(版本 1.0.0)
- 数据库管理基础功能- 创建数据库(CREATE DATABASE)- 列出数据库(SHOW DATABASES)- 删除数据库(DROP DATABASE)- 切换数据库(USE DATABASE)- 显示数据库创建语句(SHOW CREATE DATABASE)
- 表管理功能- 显示表列表(SHOW TABLES)- 显示表结构(DESCRIBE TABLE)- 创建表(CREATE TABLE)- 删除表(DROP TABLE)- 显示表创建语句(SHOW CREATE TABLE)- 查询表数据(SELECT * FROM TABLE)- 表名大小写处理优化- 预置测试数据支持
- 数据操作功能- 插入数据(INSERT)- 更新数据(UPDATE)- 删除数据(DELETE)- 条件查询支持(WHERE 子句)
- 数据持久化功能- JSON格式数据存储- 自动数据持久化- 服务器重启数据恢复- 死锁问题修复
- 查询处理优化- 查询去重机制- 查询限流保护- 连接状态管理- 错误处理优化
- 表结构设计支持- 完整的SHOW CREATE TABLE输出- 支持多种数据类型(int, bigint, varchar, char, datetime, text)- 支持列约束(NOT NULL, PRIMARY KEY, AUTO_INCREMENT)- 支持字符集和排序规则- 支持表注释和列注释## 下一步计划- navicate操作:* 复制表* 设计表
- 高级功能- 事务支持- 索引支持- 外键约束- 数据导入导出- 查询构建器支持
- 性能优化- 查询缓存- 连接池- 查询执行计划优化- 批量操作优化
- 安全性- 用户认证- 权限管理- SQL注入防护
- 扩展功能- 更多SQL语句支持(ALTER TABLE, CREATE INDEX等)- 存储过程和函数支持- 触发器支持- 视图支持## 进度- 基础连接适配:已完成
- 数据库管理功能:已完成
- 表管理功能:已完成
- 数据操作功能:已完成
- 数据持久化功能:已完成
- 表结构设计支持:已完成
- 高级功能适配:计划中
- 性能优化:计划中
- 安全性:计划中
- 扩展功能:计划中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85047.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echarts开发 | 数据可视化 -- 第二篇 echart进阶配置项学习

文章目录 一、数据标记(markLine、markPoint)1.1 markLine(标记线)1.2 markPoint(标记点) 一、数据标记(markLine、markPoint) 支持两类标记方式 markLine 和 markPoint 分别用于标示趋势线和特定数据点,以加强数据表…

Kafka数据写入流程源码深度剖析(Broker篇)

在Kafka数据写入流程中,Broker端负责接收客户端发送的消息,并将其持久化存储,是整个流程的关键环节。本文将深入Kafka Broker的源码,详细解析消息接收、处理和存储的具体实现。 一、网络请求接收与解析 Broker通过Processor线程…

名称 深度学习(监督学习) Iteration 一次 mini-batch 前向+反向传播更新 Epoch 所有数据集训练一遍。这两个概念不一样吗?

你的问题非常专业,确实容易混淆,下面我用科研术语 通俗比喻来清晰地区分: ✅ 简明对照表:Iteration vs. Epoch(在监督学习中) 名称专业术语解释通俗理解是否属于监督学习(深度学习&#xff09…

Blender 模型下载

1.CGModel网站 https://www.cgmodel.com/ 免费模型数量多,国风类题材的模型多,中文搜索方便 2.Blender官网 3.3d溜溜网 https://3d.3d66.com/ 4.free3d.com free3d.com

Spring涉及的设计模式以及实际使用场景(含代码)

Spring涉及的设计模式以及实际使用场景(含代码) 1.工厂模式(Factory Pattern) 作用: 隐藏对象创建的细节,通过工厂类统一管理对象的实例化。 场景:Spring的BeanFactory和ApplicationContext是工厂模式的典型实现。 // 通过App…

ROM 只读存储器 随机存取

ROM(Read-Only Memory,只读存储器)的存取方式为: ✅ 随机存取方式(Random Access) 尽管“ROM”强调的是“只读”,它的数据访问方式与 RAM 类似,都是随机存取。 🔍 解释如…

opensuse解决微信无法登录的问题

思路启发 https://forum.suse.org.cn/t/topic/17183/2 实际解决 https://forum.suse.org.cn/t/topic/17204/5 解决方法 先安装 sudo zypper install execstackcd /opt/wechatsudo bash -c execstack -c ./*.so

Adixen ASM380 氦气检漏仪 阿尔卡特Mobile high performance helium leak detector

Adixen ASM380 氦气检漏仪 阿尔卡特Mobile high performance helium leak detector

堆的自动管理

由于程序员必须编写出到分配和释放存储器的明确的调用,所以用m a l l o c和f r e e完成指针的动态分配和重新分配是管理堆的手工( m a n u a l )方法。相反地,运行时栈则是由调用序列自动地( a u t o m a t i c a l l y )管理。在一种需要完全动态的运行…

智能出入库管理系统:自动化管控平台

部队装备库室智能管控系统是集智能化、集成化、网络化于一体的综合管理系统,由智慧营区库室综合管控平台、出入口控制子系统、智能QD柜子系统、装备物资管理子系统、视频监控系统、入侵报警子系统、环境监测子系统等七大核心子系统构成。各子系统通过数据自动交互&a…

归并排序:高效分治的艺术

归并排序(Merge Sort)原理详解 归并排序是一种基于分治法(Divide and Conquer)的高效排序算法,由冯诺依曼于1945年提出。它的核心思想是将大问题分解为小问题,解决小问题后再合并结果。 核心原理 1. 分治策略(Divide and Conquer) 分(Divide):将无序数组递归地拆…

知识库建设方案有哪些?全面解析

知识库建设方案主要包括本地部署方案、云端在线方案、混合部署方案。其中,云端在线方案以其灵活性、实时更新能力和低维护成本,逐渐成为大多数企业的首选方案。云端在线方案可随时随地提供实时更新的知识内容,确保企业员工和客户始终获得最新…

政务大厅智能引导系统:基于数字孪生的技术架构与实践

本文面向政务信息化开发者、系统集成工程师、智能导视领域技术人员。解析政务大厅智能引导系统的技术实现路径,提供从定位导航到数据驱动的技术方案,助力解决传统导视系统效率低下、体验不佳的技术痛点。 一、技术架构全景:从物理空间到数字映…

java设计模式[2]之创建型模式

文章目录 一 创建型模式1.1 单例模式的设计与实现1.1.1 饿汉式模式1.1.2 懒汉式单例模式1.1.3 懒汉式单例模式完善1.1.4 双重检测锁式1.1.4.1 volatile关键字1.1.4.2 在双重检查锁定中的作用 1.1.5 静态内部类式单例模式1.1.6 枚举式单例模式1.1.7 反射暴力破解解决方案1.1.8 序…

PHP设计模式实战:构建高性能API服务

在前一篇电子商务系统设计的基础上,我们将深入探讨如何运用设计模式构建高性能、可扩展的API服务。现代Web应用越来越依赖API作为前后端分离架构的核心,良好的API设计对系统性能和维护性至关重要。 仓库模式实现数据访问层 仓库模式(Repository Pattern)可以抽象数据访问逻…

ComfyUI Flux.1 ACE++ 图像编辑原理详解

关注不迷路,点赞走好运!!! ComfyUI Flux.1 ACE 图像编辑原理详解 ——从“拼图游戏”到“魔法画笔”的技术革命 目录 ACE 的核心思想:用“指令”指挥图像生成 1.1 什么是上下文感知内容填充?1.2 条件单元&…

Datawhale-爬虫

task1-初始爬虫 爬虫用python好,python库多,功能全 反爬机制和反反爬机制 顾名思义,一个是防范爬虫的,一个是应对限制爬虫的方法 好的,我们来更深入地探讨反爬机制和反反爬策略的细节,包括具体的技术手段…

双token三验证(Refresh Token 机制​)

单token存在的问题 我们都知道,token是我们在前后端数据传输的时候为了保证安全从而必须需要进行设置的东西,他的主要作用实际上就是为了保证我们的数据安全,进行身份验证和授权,并且相对于session而言更加适合如今的分布式系统&a…

青少年编程与数学 01-011 系统软件简介 22 VMware 虚拟化软件

青少年编程与数学 01-011 系统软件简介 22 VMware 虚拟化软件 一、历史沿革(一)创立阶段(1998-2003)(二)快速扩张(2004-2010)(三)云时代转型(2011…

FPGA基础 -- Verilog门级建模之奇偶校验电路

✅ 一、什么是奇偶校验(Parity Check) 📌 定义: 奇偶校验是一种错误检测编码方式,用于判断一个二进制数据在传输或存储过程中是否发生了单比特错误。 奇校验(Odd Parity):总共有奇…