diff --git a/site/demo.html b/site/demo.html
index 2efe777..343218c 100644
--- a/site/demo.html
+++ b/site/demo.html
@@ -113,6 +113,10 @@ SELECT COUNT(*) as total_users, AVG(age) as avg_age FROM users;
+
+
+
+
@@ -385,7 +389,81 @@ SELECT name, age FROM users
WHERE id IN (
SELECT user_id FROM orders
WHERE amount = (SELECT MAX(amount) FROM orders)
-);`
+);`,
+ tx: `-- 事务:插入用户及其订单(全部成功才提交)
+-- 使用 db.transaction() API(这里有演示限制)
+
+-- 模拟事务场景:先查余额,再插入订单
+SELECT * FROM users WHERE id = '1';
+
+INSERT INTO orders VALUES ('o99', '1', 'Headphones', 199, 1);
+
+SELECT u.name, COUNT(*) as order_count, SUM(o.amount) as total
+FROM users u INNER JOIN orders o ON u.id = o.user_id
+WHERE u.id = '1'
+GROUP BY u.name;
+
+-- 回滚演示:记得用 db.transaction() 包裹哦`,
+ scalar: `-- 聚合无 GROUP BY → 单行结果
+SELECT COUNT(*) as total_users, AVG(age) as avg_age FROM users;
+
+-- 年龄大于平均值的用户(标量子查询)
+SELECT name, age FROM users
+WHERE age > (SELECT AVG(age) FROM users);
+
+-- 消费超过平均值的用户
+SELECT u.name, SUM(o.amount) as spent
+FROM users u INNER JOIN orders o ON u.id = o.user_id
+GROUP BY u.name
+HAVING SUM(o.amount) > (SELECT AVG(amount) FROM orders);`,
+ cascade: `-- 外键级联:先创建带外键的表
+DROP TABLE IF EXISTS orders;
+
+CREATE TABLE orders (
+ id STRING PRIMARY KEY,
+ user_id STRING REFERENCES users(id) ON DELETE CASCADE,
+ product STRING,
+ amount NUMBER,
+ quantity NUMBER DEFAULT 1
+);
+
+-- 重新插入测试数据
+INSERT INTO orders VALUES ('o1', '1', 'Laptop', 1200, 1);
+INSERT INTO orders VALUES ('o2', '1', 'Mouse', 50, 2);
+INSERT INTO orders VALUES ('o3', '2', 'Keyboard', 150, 1);
+
+-- 查看用户和订单
+SELECT u.name, o.product, o.amount
+FROM users u INNER JOIN orders o ON u.id = o.user_id;
+
+-- 删除用户1 → 其订单自动级联删除
+DELETE FROM users WHERE id = '1';
+
+-- 确认:只剩用户2的订单
+SELECT u.name, o.product, o.amount
+FROM users u LEFT JOIN orders o ON u.id = o.user_id;`,
+ adv: `-- 复杂 WHERE:年龄在20-30之间且名字不是Bob
+SELECT * FROM users
+WHERE age BETWEEN 20 AND 30 AND name != 'Bob'
+ORDER BY age DESC;
+
+-- DISTINCT 去重
+SELECT DISTINCT age FROM users ORDER BY age;
+
+-- 多表 JOIN + 过滤 + 排序 + 分页
+SELECT u.name, o.product, o.amount
+FROM users u
+INNER JOIN orders o ON u.id = o.user_id
+WHERE o.amount >= 50
+ORDER BY o.amount DESC
+LIMIT 5 OFFSET 0;
+
+-- 子查询 + 聚合混合
+SELECT u.name, (
+ SELECT COUNT(*) FROM orders o WHERE o.user_id = u.id
+) as order_count
+FROM users u
+WHERE u.age >= 25;`
};
function loadPreset(name) {