Skip to content

Base repository with just follow along documentation to build your own StylusDB SQL.

License

Notifications You must be signed in to change notification settings

souravdishri/stylusdb-sql-assignment-souravdishri

 
 

Repository files navigation

Open in Visual Studio Code

StylusDB SQL

A SQL database engine written in JavaScript

GitHub Repo GitHub Repo

Disclaimer: This database is for educational purposes only. It is not intended for production use. It is written ground up in JavaScript and is a great way to learn how databases work. You can find the tutorial in the docs directory.

Features

  • INSERT, DELETE, SELECT
  • UPDATE, CREATE TABLE, DROP TABLE
  • CLI
  • NPM Package

Installation

npm i stylusdb-sql

Usage

SELECT

Assuming you have a CSV file called student.csv with the following data:

id,name,age
1,John,25
2,Jane,25
const { executeSELECTQuery } = require('stylusdb-sql');
const query = 'SELECT id, name FROM student WHERE age = 25';
const result = await executeSELECTQuery(query);

// result = [{ id: '1', name: 'John' }, { id: '2', name: 'Jane' }]

INSERT

const { executeINSERTQuery } = require('../../src/queryExecuter');
const { readCSV, writeCSV } = require('../../src/csvStorage');
async function createGradesCSV() {
    const initialData = [
        { student_id: '1', course: 'Mathematics', grade: 'A' },
        { student_id: '2', course: 'Chemistry', grade: 'B' },
        { student_id: '3', course: 'Mathematics', grade: 'C' }
    ];
    await writeCSV('grades.csv', initialData);
}
await createGradesCSV();
const insertQuery = "INSERT INTO grades (student_id, course, grade) VALUES ('4', 'Physics', 'A')";
await executeINSERTQuery(insertQuery);

Verify the new entry in grades.csv:

student_id,course,grade
1,Mathematics,A
2,Chemistry,B
3,Mathematics,C
4,Physics,A

DELETE

async function createCoursesCSV() {
    const initialData = [
        { course_id: '1', course_name: 'Mathematics', instructor: 'Dr. Smith' },
        { course_id: '2', course_name: 'Chemistry', instructor: 'Dr. Jones' },
        { course_id: '3', course_name: 'Physics', instructor: 'Dr. Taylor' }
    ];
    await writeCSV('courses.csv', initialData);
}
 await createCoursesCSV();

// Execute DELETE statement
const deleteQuery = "DELETE FROM courses WHERE course_id = '2'";
await executeDELETEQuery(deleteQuery);

// Verify the course was removed
const updatedData = await readCSV('courses.csv');
const deletedCourse = updatedData.find(course => course.course_id === '2');

CLI Usage

Open a terminal and run the following command to start the CLI:

stylusdb-sql

Execute a query as shown below.

Contributing

See CONTRIBUTING.md

About

Base repository with just follow along documentation to build your own StylusDB SQL.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%