# Node.js SDK — Database

> Full database API reference for @aerostack/sdk. queryOne, query, execute, batch — all parameterized, all returning typed results.

Full database reference for the server-side SDK.

## Methods

```ts
// Multiple rows
const { results } = await sdk.db.query(sql, params?)

// Single row (null if not found)
const row = await sdk.db.queryOne(sql, params?)

// DDL / no result needed
await sdk.db.exec(sql)

// Multiple statements in one round-trip (transactional)
const results = await sdk.db.batch(statements)
```

## Examples

```ts
// SELECT
const { results: users } = await sdk.db.query(
  'SELECT id, email, name FROM users WHERE active = 1 ORDER BY created_at DESC LIMIT ?',
  [20]
)

// INSERT with RETURNING
const { results: [newUser] } = await sdk.db.query(
  'INSERT INTO users (id, email, name, created_at) VALUES (?, ?, ?, ?) RETURNING *',
  [crypto.randomUUID(), email, name, Date.now()]
)

// UPDATE
await sdk.db.query(
  'UPDATE users SET name = ?, updated_at = ? WHERE id = ?',
  [newName, Date.now(), userId]
)

// Batch (all-or-nothing)
await sdk.db.batch([
  { sql: 'INSERT INTO orders ...', params: [...] },
  { sql: 'UPDATE inventory SET stock = stock - 1 ...', params: [...] },
])
```

See [Database Features](/features/database) for the full guide.
