ComputerCraft Forums

ComputerCraft => Programs => APIs and Utilities => Topic started by: NihilisticPuffin on Aug 05, 2025, 01:58 AM

Title: myCCQL - A database management system
Post by: NihilisticPuffin on Aug 05, 2025, 01:58 AM
myCCQL

myCCQL is a database management system for ComputerCraft. It supports a custom binary format for persistent storage and an SQL-like query language (CCQL) with common operations such as 'CREATE TABLE', 'INSERT', 'SELECT', and 'DELETE'.

Install
wget https://gist.githubusercontent.com/NihilisticPuffin/bf17c985f0ebb925a4bbf34ad6001208/raw/837f6e493ee1e48fbf6c15ee085ea951d4d080ee/database.lua
Features





Binary Format Overview


Example Usage
local Database = require "database"

local function print_result(result)
    for _, row in ipairs(result) do
        local out = {}
        for k, v in pairs(row) do
            table.insert(out, tostring(k) .. ":" .. tostring(v))
        end
        print(table.concat(out, ", "))
    end
end

local db = Database.new()
-- db:load("database.db") -- Load from file
-- Create a table
db:execute("CREATE TABLE users (id u32, name str, age u8)")

-- Insert rows
db:execute("INSERT INTO users VALUES (1, 'Alice', 19)")
db:execute("INSERT INTO users VALUES (2, 'Bob', 25)")
db:execute("INSERT INTO users VALUES (3, 'Frank', 23)")

-- Delete a row
db:execute("DELETE FROM users WHERE name='Bob'")

-- Query remaining rows
local result = db:execute("SELECT * FROM users")
print_result(result)

-- Save to disk
db:save("database.db")


Planned Features