# Clone this repository
git clone https://github.com/ssine/MiniDB.git
# Go into the repository
cd MiniDB
# Install dependencies
npm install
# Generate SQL Parser
npm run cc
# Run the app
npm start
All the input beginning with .
is a system command:
所有以 .
开头的输入均为系统指令:
.exit | 退出
.file filename | 将文件内容作为输入
.createdb database_name | 创建数据库
.dropdb database_name | 删除数据库
.usedb database_name | 使用数据库
.showdb | 显示所有数据库
.showtb | 显示当前数据库所有表
.planon | 显示 SELECT 语句执行计划
.planoff | 不显示 SELECT 语句执行计划
All the SQL statements are ended by ;
, supported statements:
所有 SQL 语句输入以 ;
结尾,目前支持的 SQL 语句:
CREATE TABLE tbl_name (
prop1 number,
prop2 string
);
DROP TABLE tbl_name;
SELECT col_name_1, col_name_2
FROM tbl_name_1
INNER JOIN tbl_name_2 ON expression
INNER JOIN ...
WHERE expression;
INSERT INTO tbl_name VALUES
(val_1, val_2),
(val_1, val_2)
;
DELETE FROM tbl_name WHERE expression;
UPDATE tbl_name
SET col = expression
WHERE expression;
System commands, database management:
系统指令,数据库管理:
Sample table:
样例表:
Insert statement and complex query (projection, condition, multi-table join):
插入语句与复杂查询(投影,条件,多表连接):
Physics plan visualization (corresponding to previous query):
自动绘制物理计划(对应上面的查询):
Update statement:
更新语句: