【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
英文地址,請注明出處:http://en.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):總共有奇…