zoukankan      html  css  js  c++  java
  • mnesia数据库学习笔记一

    mnesia数据库学习笔记

    1、基本使用流程

    1>mnesia:create_schema([node]).    %创建方案的本地节点上。

    2>mnesia:start(). %启动数据库

    3>mnesia:create_table(funky,[]).%创建表
    4>mnesia:info(). %查看数据库信息

     在启动erlang时,erl -mnesia dir '"/dir"' 用于指定Mnesia数据存储位置。

    2、定义表结构,创建表

    % company.hrl

    -record(employee, {emp_no, name, salary, sex, phone, room_no}).

    % createtbl.erl

    -include("company.hrl")

    init() ->

      mnesia:create_table(employee, [{attributes, record_info(fields.employree)}]).

      %create_table(表名, [类型,字段])。

    表中有1对1的set类型,和1对多的bag类型。

    3、事务

    mnesia:tranaction(Fun).

    事务只需要一个函数参数。
    4、写查询

    raise(Eno,Raise) ->

      F = fun() ->

          [E] =mnesia:read(employee, eno, write),  %读数据并带上写锁

          Salary = E#employee.salary + Raise,    %得到加薪后数据

          New = E#employee{salary=Salary),     %生成要薪后记录 

          mnesia:write(New)              %更新薪酬

      end,

      mnesia:transaction(F).                %执行事务

    5、Mnesia函数

    提取女性职员

    mnesia:select(employee, [{#employee{sex = female, name='$1', _='_'},[],['$1']}]).

    select 必须运行在类似事务的活动中.

    6、使用 QLC

    QLC通常比直接使用mnesia函数 代价更高 。但是提供了更好的语法

      Q = qlc:q([E#employee.name || E <- mnesia:table(employee), E#employee.sex == female]),
      qlc:e(Q)

    [读作"创建list"

    ||读作"例如"

    <-读作"取出"

  • 相关阅读:
    S1 商品信息管理系统
    用例图
    mvc使用mongodb时objectId序列化与反序列化
    windows下检測文件改变
    【Android 开发实例】时间管理APP开发之数据库设计
    设计模式 之 原型
    ANT安装及配置
    Java环境变量设置
    Win7安装软件,界面上中文显示乱码的解决方案
    Some perl tips
  • 原文地址:https://www.cnblogs.com/freebird92/p/2295473.html
Copyright © 2011-2022 走看看