对象创建与变更 ================== 新建列 -------- 列新建与拆分 Column 语法 ^^^^^^^^^^^ .. code-block:: javascript column colName as { SelectExpr } [for viewName] -- 修改主视图 column `地址` as { concat(省,市,县) }; -- 修改订单视图 column `地址` as { concat(省,市,县) } for `订单`; column `发货日期` as { add_months('2016-08-31', 1) } for `订单`; 其中 ``[for viewName]`` 表示在哪一个视图上新建与拆分列。 .. important:: 列的新建与拆分离不开大量功能丰富的函数辅助,请参考 `SQL 内置函数 `_ 修改列类型 ----------- 批量修改列类型 Type 语法 ^^^^^^^^^^^ .. code-block:: javascript type col1,col2,col3, ... [列数据类型] [精度/格式] [for viewName] type col1 double 4; type col2 date 'dd-MM-yyyy'; 其中 ``[for viewName]`` 表示在哪一个视图上进行列类型修改。 支持的列数据类型有: ============ ================== ==================================== 类型 名称 格式 ============ ================== ==================================== decimal 精准数据类型 可指定精度 double 双精度浮点型 可指定精度 float 浮点型 可指定精度 byte 字节类型 integer 整型 long 长整型 short 短整型 boolean 布尔类型 date 日期类型 可指定日期格式,如: 'yyyy-MM-dd' timestamp 时间戳类型 可指定时间戳格式,如:'yyyy-MM-dd hh\:mm\:ss' string 字符串类型 ============ ================== ==================================== 缺失值填充 ---------------- 通常,在缺失部分数据的情况下,只要数据量足够大,我们可以将含有缺失值的样本删掉,并且不会对结果产生太大影响。但是,在「样本量小」和「缺失数据多」的情况下,我们简单的删掉数据,会损失较多的信息,并且使得结果有偏。 Fill 语法 ^^^^^^^^^ .. code-block:: javascript fill [viewName] col1,col2,col3,.. [填充方式] fill price 5.5; -- 默认使用 0 填充 price 列的缺失值 fill price; ``[viewName]`` 表示在哪一个视图上进行数据填充操作。 填充方式说明: ========= ============= 方式 作用 ========= ============= number 任意数字填充 avg 使用填充列的平均值填充 min 使用填充列的最小值填充 max 使用填充列的最大值填充 ========= ============= 创建临时视图 ------------ 创建一张空的临时视图 .. warning:: ``struct``、``add``、``update``、``del`` 建议小数据量下使用,因为所有操作都在本机进行(不支持分布式),且数据在内存中交换,不会被持久化,直到调用 ``save`` 表达式。 适用于需构造特殊数据视图来达到数据分析与可视化的场景。 Struct 语法 ^^^^^^^^^^^^ .. code-block:: javascript struct viewName as col1 [列类型], col2 [列类型], .. -- 默认字符串类型 struct someName as col1, col2 long; 支持的列类型有: ============ ================== 类型 名称 ============ ================== decimal 精准数据类型 double 双精度浮点型 float 浮点型 byte 字节类型 integer 整型 long 长整型 short 短整型 boolean 布尔类型 date 日期类型 timestamp 时间戳类型 string 字符串类型 ============ ================== 添加数据行 -------------- 向临时视图追加一条记录 Add 语法 ^^^^^^^^^ .. code-block:: sql add [viewName] col1=value1, col2=value2, .. add col1=1, col2='2020-12-12'; 修改数据行 ------------- 根据条件修改记录 Update 语法 ^^^^^^^^^^^^^ .. code-block:: javascript update [viewName] col1=value1, col2=value2, .. { WhereSQL } -- 批量修改价格 update price=10.2 { name='orange' and place='GuangDong' }; 删除数据行 ------------- 根据条件删除记录 Del 语法 ^^^^^^^^^^^^^ .. code-block:: lua del [viewName] { WhereSQL } -- 批量删除记录 del { (name='orange' and place='GuangDong') or name='apple' };