0.1.6 • Published 1 year ago

stylusdb-sql-lordgrim v0.1.6

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

Open in Visual Studio Code

GitHub Repo GitHub Repo

This is the base repository for cohort members to follow the tutorial and send in their own StylusDB SQL implementations. You can refer to a complete implementation @ ChakshuGautam/stylusdb-sql.

Follow the steps given in the documentation to create your own implementation and make those tests pass.

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

  • Support for Prisma
  • INSERT, DELETE, SELECT
  • CLI
  • Server/Client Basic Protocol
  • NPM Package for StylusDB-SQL
  • UPDATE, CREATE TABLE, DROP TABLE
  • SQL Spec Tracker
  • Minimal PostgreSQL Protocol for Server/Client Communication

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/csvReader');
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-lordgrm18

Execute a query as shown below.

npm package

The npm package is available @ stylusdb-sql-lordgrim18

Contributing

See CONTRIBUTING.md

0.1.6

1 year ago