Erlang数据库 - Mnesia

Mnesia

数据库,在计算机的世界里,我们要开发一个APP,亦或者是制作一个小程序,还是说要编写一个多用户游戏,制作一个新网站,或者创建一个在线支付系统,都需要数据库(DataBase)以及数据库管理系统(Database Management System,简称DBMS)。Erlang理所当然也给我们提供了响应的配套系统,本文旨在分享笔者学习和使用erlang数据库mnesia时的经验和学习过程。

数据库与数据库表的创建

数据库

Mnesia数据库是标准Erlang分发套装的一部分。将它配置为内存复制后,就能在两个物理隔离的节点上实现快速的容错式数据存储。它还支持事务,并有自己的查询语言。数据表既可以保存在内存里(为了速度),也可以保存在磁盘上(为了持久性)。所以相应的,我们使用数据库也十分的便捷:
创建数据库

mnesia:create_schema() 创建mnesia数据库 node()表示创建在当前节点,因为笔者之前已经创建过了,所以返回了当前节点已存在的信息
mnesia:start() 启动数据库,启动之前一定要先创建节点!
mnesia:info() 用于打印当前数据库的信息,配置信息等

对应的数据库结构
可以看到生成的对应数据库结构文件

数据库表

接下来我们创建数据库表:
创建库表
创建表的时候一定要确保mnesia服务处于running状态
建表函数如图:
建表

使用 mnesia:create_table() 即可创建数据库表

在数据库中查询信息

全部查询

全部数据查询
通过qlc与mnesia:table的组合即可查询所有的数据,需要注意的是qlc:q一定要引入lib,即一定要有 -include_lib(“stdlib/include/qlc.hrl”). 否则会报qlc undefine导致编译不通过

选择查询

如果我们只需要某些字段的时候就可以使用下面这种形式
选择查询

使用了记录的点语法来拿到对应的数据(顺带一提,元组中提取对应数据的方式是索引

条件查询

条件查询
因为erlang中语句的值为最后一个句子,即X#shop.quantity<250的值,当值为true时,会被提取出来创建新的列表,所以可以通过这种方式来做到条件查询,筛选出我们想要的元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值