来源信息
- 仓库
- NeuralBlitz/Agent-Gateway
- 最近来源活动
- 2026年4月9日 10:58
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 1
- 分支
- 0
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- sqlite
- description
- SQLite lightweight embedded database for local storage and prototyping
- license
- MIT
- compatibility
- opencode
- metadata
- {"audience":"developers","category":"databases"}
## What I do
- Create SQLite databases and tables
- Write efficient queries with indexes
- Use transactions for data integrity
- Implement full-text search
- Handle migrations and schema changes
- Optimize for performance
- Work with JSON data in SQLite
## When to use me
When building local-first applications, prototypes, or small-to-medium data needs.
## Basic Operations
```sql
-- Create table
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Insert
INSERT INTO users (name, email) VALUES ('John', 'john@example.com');
INSERT INTO users (name, email) VALUES ('Jane', 'jane@example.com');
-- Select
SELECT * FROM users;
SELECT name, email FROM users WHERE id = 1;
-- Update
UPDATE users SET email = 'new@example.com' WHERE id = 1;
-- Delete
DELETE FROM users WHERE id = 1;
```
## Indexes
```sql
-- Single column index
CREATE INDEX idx_users_email ON users(email);
-- Composite index
CREATE INDEX idx_posts_user_date ON posts(user_id, created_at);
-- Unique index
CREATE UNIQUE INDEX idx_users_email ON users(email);
-- Partial index
CREATE INDEX idx_active_users ON users(email) WHERE active = 1;
```
## Queries
```sql
-- Join tables
SELECT u.name, p.title
FROM users u
INNER JOIN posts p ON u.id = p.user_id;
-- Aggregation
SELECT COUNT(*), AVG(price), SUM(total) FROM orders;
-- Group by
SELECT category, COUNT(*) as count
FROM products
GROUP BY category
HAVING count > 5;
-- Subquery
SELECT * FROM users
WHERE id IN (SELECT user_id FROM orders WHERE total > 100);
-- CASE expression
SELECT name,
CASE
WHEN price > 100 THEN 'expensive'
WHEN price > 50 THEN 'moderate'
ELSE 'cheap'
END as price_category
FROM products;
```
## Transactions
```sql
BEGIN TRANSACTION;
INSERT INTO accounts (name, balance) VALUES ('Alice', 1000);
INSERT INTO accounts (name, balance) VALUES ('Bob', 1000);
-- Transfer money
UPDATE accounts SET balance = balance - 100 WHERE name = 'Alice';
UPDATE accounts SET balance = balance + 100 WHERE name = 'Bob';
COMMIT;
-- Or ROLLBACK;
```
## JSON Support
```sql
-- Create table with JSON
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
attributes JSON
);
-- Insert JSON
INSERT INTO products (name, attributes)
VALUES ('Phone', '{"color": "black", "storage": "256gb"}');
-- Extract JSON
SELECT name, json_extract(attributes, '$.color') as color FROM products;
-- Query JSON
SELECT * FROM products WHERE json_extract(attributes, '$.storage') = '256gb';
-- Modify JSON
UPDATE products
SET attributes = json_set(attributes, '$.color', 'white')
WHERE id = 1;
```
## Full-Text Search
```sql
-- Create FTS table
CREATE VIRTUAL TABLE articles_fts USING fts5(
title,
content,
content=articles,
content_rowid=id
);
-- Populate
INSERT INTO articles_fts(rowid, title, content)
SELECT id, title, content FROM articles;
-- Search
SELECT * FROM articles_fts WHERE articles_fts MATCH 'python';
-- With ranking
SELECT title, bm25(articles_fts) as rank
FROM articles_fts
WHERE articles_fts MATCH 'python'
ORDER BY rank;
```
## Python (sqlite3)
```python
import sqlite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# Execute
cursor.execute('SELECT * FROM users WHERE id = ?', (1,))
user = cursor.fetchone()
# Execute many
users = [('Alice', 'alice@example.com'), ('Bob', 'bob@example.com')]
cursor.executemany('INSERT INTO users (name, email) VALUES (?, ?)', users)
# With context manager
with sqlite3.connect('database.db') as conn:
cursor = conn.cursor()
cursor.execute('SELECT * FROM users')
print(cursor.fetchall())
```
## Go
```go
import "database/sql"
import _ "github.com/mattn/go-sqlite3"
func main() {
db, _ := sql.Open("sqlite3", "./database.db")
defer db.Close()
// Query
rows, _ := db.Query("SELECT id, name FROM users")
defer rows.Close()
for rows.Next() {
var id int
var name string
rows.Scan(&id, &name)
fmt.Println(id, name)
}
// Execute
stmt, _ := db.Prepare("INSERT INTO users (name) VALUES (?)")
result, _ := stmt.Exec("Alice")
id, _ := result.LastInsertId()
}
```
在 GitHub 查看