Tutorial
在手机上管理数据库
完整指南:直接在 PocketCode 中连接、查询并管理 PostgreSQL、MySQL、 MongoDB 等多种数据库。
3 min
作者 PocketCode Team在你的 Android 上管理数据库
PocketCode 的数据库模块支持 9 种不同的引擎,让你无需电脑即可管理数据。
支持的引擎
- PostgreSQL — 应用内嵌入的完整服务器(无需 root,可离线使用)
- Neon — 无服务器 Postgres
- Supabase — 带 REST API 的托管式 PostgreSQL
- SQLite — 本地、无服务器数据库
- MongoDB — 灵活的 NoSQL 文档
- PlanetScale — 无服务器、可扩展的 MySQL
- Turso — 边缘端的 libSQL/SQLite
- Upstash — 无服务器 Redis
- Firestore — Firebase 的实时数据库
快速连接
PostgreSQL
-- Connection setup
-- Host: db.myproject.com
-- Port: 5432
-- Database: production
-- User: admin
-- SSL: Required
-- Once connected, run queries directly
SELECT
u.name,
COUNT(o.id) as total_orders,
SUM(o.amount) as total_spent
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.created_at >= '2024-01-01'
GROUP BY u.name
ORDER BY total_spent DESC
LIMIT 10;
MongoDB
// Connect to MongoDB Atlas
// URI: mongodb+srv://user:[email protected]/mydb
// Find documents
db.products
.find({
category: "electronics",
price: { $lt: 500 },
stock: { $gt: 0 },
})
.sort({ rating: -1 })
.limit(20);
// Aggregate data
db.orders.aggregate([
{ $match: { status: "completed" } },
{
$group: {
_id: "$product_id",
total: { $sum: "$amount" },
count: { $sum: 1 },
},
},
{ $sort: { total: -1 } },
]);
SQLite(本地)
非常适合需要离线工作的应用:
-- Create local table
CREATE TABLE IF NOT EXISTS notes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
content TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Insert note
INSERT INTO notes (title, content)
VALUES ('My first note', 'Created from PocketCode');
-- Search notes
SELECT * FROM notes
WHERE title LIKE '%pocket%'
ORDER BY updated_at DESC;
管理器功能
可视化浏览器
侧边面板会有条理地展示你的所有连接:
- 连接:保存时带有按类型区分的颜色标记
- 表 / 集合:带有文件夹图标
- 列:显示可见的数据类型
- 索引和关系
查询编辑器
- 对 SQL、MongoDB 查询等提供语法高亮
- 表、列与函数的自动补全
- 查询执行历史
- 将结果导出为 CSV 或 JSON
结果可视化
- 支持横向滚动的表格视图
- 按任意列排序
- 实时筛选结果
- 复制单个单元格或整行
应用场景
生产环境调试
-- Find recent errors
SELECT error_message, COUNT(*) as count, MAX(created_at) as last_seen
FROM error_logs
WHERE created_at >= NOW() - INTERVAL '1 hour'
GROUP BY error_message
ORDER BY count DESC;
快速监控
-- Database status
SELECT
schemaname,
relname as table_name,
n_live_tup as row_count,
pg_size_pretty(pg_total_relation_size(relid)) as total_size
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;
紧急迁移
-- Add urgent column
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
-- Backfill data
UPDATE users SET phone = profiles.phone
FROM profiles WHERE users.id = profiles.user_id;
-- Verify
SELECT COUNT(*) FROM users WHERE phone IS NOT NULL;
安全性
- 凭据以加密方式存储在设备上
- 支持 SSL/TLS 连接
- 提供 SSH 隧道选项以实现安全连接
- 我们绝不会在服务器上存储你的连接数据
在手机上管理数据库不再意味着妥协。借助 PocketCode,你可以获得支持 9 种不同引擎的完整客户端,就装在你的口袋里。
本文背后的工具
数据库管理器