Mnesia数据库操作与管理全解析
1. 从两个表中选择数据(连接查询)
假设我们要重新订购商品,条件是库存少于250件且商品成本低于2个货币单位。这需要访问两个表,以下是对应的查询代码:
%% SQL equivalent
%%
SELECT shop.item, shop.quantity, cost.name, cost.price
%%
FROM shop, cost
%%
WHERE shop.item = cost.name
%%
AND cost.price < 2
%%
AND shop.quantity < 250
demo(join) ->
do(qlc:q([X#shop.item || X <- mnesia:table(shop),
X#shop.quantity < 250,
Y <- mnesia:table(cost),
X#shop.item =:= Y#cost.name,
Y#cost.price < 2
])).
当执行 test_mnesia:demo(join).
时,输出结果为 [apple]
。这里的关键是 shop
表中的商品名称和 cost
表中的名称进行连接,即 X#shop.item =:= Y#cost.name
。
2. 数据库中数据的添加与删除
假设我们已经创建了数据库并定义了 shop </