Skip to main content

Quick Start Guide

Get MatsushibaDB running in your project in under 5 minutes! This guide covers the fastest way to get started.

1. Install MatsushibaDB

Choose your platform and install:
npm install matsushibadb

2. Create Your First Database

const MatsushibaDB = require('matsushibadb');

// Create database
const db = new MatsushibaDB('quickstart.db');

// Create table
db.run(`
  CREATE TABLE tasks (
    id INTEGER PRIMARY KEY,
    title TEXT NOT NULL,
    completed BOOLEAN DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
  )
`);

console.log('Database created successfully!');

3. Add Some Data

// Insert tasks
const tasks = [
  ['Learn MatsushibaDB', 0],
  ['Build amazing app', 0],
  ['Deploy to production', 0]
];

tasks.forEach(([title, completed]) => {
  db.run('INSERT INTO tasks (title, completed) VALUES (?, ?)', [title, completed]);
});

console.log('Tasks added successfully!');

4. Query Your Data

// Get all tasks
const allTasks = db.all('SELECT * FROM tasks');
console.log('All tasks:', allTasks);

// Get incomplete tasks
const incompleteTasks = db.all('SELECT * FROM tasks WHERE completed = 0');
console.log('Incomplete tasks:', incompleteTasks);

// Get task count
const taskCount = db.get('SELECT COUNT(*) as count FROM tasks');
console.log('Total tasks:', taskCount.count);

5. Update and Delete

// Mark first task as completed
db.run('UPDATE tasks SET completed = 1 WHERE id = 1');

// Delete completed tasks
db.run('DELETE FROM tasks WHERE completed = 1');

console.log('Tasks updated and cleaned up!');

6. Complete Example

Here’s a complete working example:
const MatsushibaDB = require('matsushibadb');

async function quickStart() {
  const db = new MatsushibaDB('quickstart.db');
  
  try {
    // Create table
    db.run(`
      CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        email TEXT UNIQUE NOT NULL,
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP
      )
    `);
    
    // Insert users
    const users = [
      ['Alice Johnson', '[email protected]'],
      ['Bob Smith', '[email protected]'],
      ['Carol Davis', '[email protected]']
    ];
    
    users.forEach(([name, email]) => {
      db.run('INSERT OR IGNORE INTO users (name, email) VALUES (?, ?)', [name, email]);
    });
    
    // Query users
    const allUsers = db.all('SELECT * FROM users ORDER BY created_at DESC');
    console.log('Users:', allUsers);
    
    // Get user count
    const userCount = db.get('SELECT COUNT(*) as count FROM users');
    console.log(`Total users: ${userCount.count}`);
    
  } catch (error) {
    console.error('Error:', error.message);
  } finally {
    db.close();
  }
}

quickStart();

What’s Next?

Now that you have MatsushibaDB running, explore these topics:

Common Use Cases

Todo Application

// Todo app with MatsushibaDB
const db = new MatsushibaDB('todo.db');

// Create todos table
db.run(`
  CREATE TABLE IF NOT EXISTS todos (
    id INTEGER PRIMARY KEY,
    title TEXT NOT NULL,
    description TEXT,
    completed BOOLEAN DEFAULT 0,
    priority INTEGER DEFAULT 1,
    due_date DATETIME,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
  )
`);

// Add todo
function addTodo(title, description = '', priority = 1, dueDate = null) {
  return db.run(`
    INSERT INTO todos (title, description, priority, due_date)
    VALUES (?, ?, ?, ?)
  `, [title, description, priority, dueDate]);
}

// Get todos
function getTodos(completed = null) {
  let sql = 'SELECT * FROM todos';
  let params = [];
  
  if (completed !== null) {
    sql += ' WHERE completed = ?';
    params.push(completed);
  }
  
  sql += ' ORDER BY priority DESC, created_at DESC';
  return db.all(sql, params);
}

// Toggle todo completion
function toggleTodo(id) {
  db.run('UPDATE todos SET completed = NOT completed WHERE id = ?', [id]);
}

User Management

// User management system
const db = new MatsushibaDB('users.db');

// Create users table
db.run(`
  CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    username TEXT UNIQUE NOT NULL,
    email TEXT UNIQUE NOT NULL,
    password_hash TEXT NOT NULL,
    role TEXT DEFAULT 'user',
    active BOOLEAN DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
  )
`);

// Create user
function createUser(username, email, passwordHash, role = 'user') {
  return db.run(`
    INSERT INTO users (username, email, password_hash, role)
    VALUES (?, ?, ?, ?)
  `, [username, email, passwordHash, role]);
}

// Get user by email
function getUserByEmail(email) {
  return db.get('SELECT * FROM users WHERE email = ?', [email]);
}

// Update user
function updateUser(id, updates) {
  const fields = Object.keys(updates).map(key => `${key} = ?`).join(', ');
  const values = Object.values(updates);
  values.push(id);
  
  return db.run(`UPDATE users SET ${fields}, updated_at = CURRENT_TIMESTAMP WHERE id = ?`, values);
}

Tips for Success

1

Start Simple

Begin with basic operations and gradually add complexity.
2

Use Transactions

Wrap related operations in transactions for data consistency.
3

Handle Errors

Always implement proper error handling for database operations.
4

Optimize Queries

Use indexes and optimize queries as your data grows.
5

Monitor Performance

Track query performance and database health.
This quick start guide covers the basics. For production applications, be sure to implement proper security, error handling, and performance optimization. Check out our comprehensive guides for more advanced features!