首先我们的目标不是做一个商业的数据库,而是让一个软件开发的初学者能自己写一个数据库,并能按照自己的想法不断完善,达到提升编程能力的目标。
相信大部分人看到这个标题的时候都觉得不可能或这并不简单。为了能更好的说服大家,我们已经完成了一个很基本数据库原型的搭建MyBase 并且已经开源,https://github.com/zhangqhn/mybase 这个系列文章将会复盘MyBase的开发过程,尽量完整的呈现所有的内容。
为了达到让初学者能在很短的时间内学会MyBase,在开发过程中我们尽量以最简单的逻辑去实现,最后以大约4000行c++代码完成了整个项目,而且代码简洁、没有晦涩的语法。模块划分清晰能快速添加新的功能。
虽然,MyBase很简单、代码量很低,但是也包含了丰富的功能:
打印帮助信息
help
清屏
clear
退出
eixt
执行外部的SQL文件
source <sql-file-path>
显示所有的表
show tables
显示指定表的列信息
show columns from <tab-name>
创建表
支持 int, double, string 数据类型
create table <tab-name> (<col-name> int|double|string, ...)
删除表
drop table <tab-name>
插入数据
insert into <tab-name> (<col-name-list>) values(<val-list>)
查询数据
支持max,min,sum,avg,count聚合函数
select <target-list> from <tab-name> [where-expr] [group-by-expr] [limit-expr]
删除数据
delete from <tab-name> [where-expr]
如果你是一个计算机专业的在校生,MyBase能让你将计算机基础课有一个实践的平台,让你在课余可以做一些有意思的事。或许,在两年、三年后,你能在MyBase上做一个你自己的数据库。虽然这个数据库不会成为商业数据库,但是在你的职业生涯中想必也是难忘的。
动手去做一个数据库,其实并不难。
网友评论