📜  Q语言-表(1)

📅  最后修改于: 2023-12-03 15:19:39.740000             🧑  作者: Mango

Q语言-表

Q语言是由邱文祥教授开发的一种编程语言,是一种面向数据表的编程语言。在Q语言中,表是数据的核心。表的数据类型被设计得非常灵活,可支持不同类型的数据,并且支持大规模数据的处理。

表的定义

在Q语言中,表可以通过多种方式进行定义。以下是最常用的两种方式:

方法1
/ 定义一张空表
t: ([] x:`symbol$(); y:`float$(); z:`int$())

/ 定义一张表,并赋初值
t: ([x:`a`b`c; y:1.0 2.0 3.0; z:1 2 3])
方法2
/ 定义一张表,并赋初值
t: `x`y`z!(`a`b`c; 1.0 2.0 3.0; 1 2 3)
基本操作
查看表的内容

可以使用以下命令来查看表的内容:

/ 查看表的前n行
select from t where i < n

/ 查看表的前n行,并按y的值进行排序
select from t where i < n order by y
插入新的行

可以使用以下命令向表中插入新的行:

/ 向表中插入一行
insert into t values (`d; 4.0; 4)

/ 向表中插入多行
insert into t values (`e`f`g; 5.0 6.0 7.0; 5 6 7)
修改表中的值

可以使用以下命令修改表中的值:

/ 将表中x为a的行,y的值修改为10.0
update t set y: 10.0 where x=`a
删除表中的行

可以使用以下命令删除表中的行:

/ 删除表中x为a的行
delete from t where x=`a
高级操作
分组运算

可以使用以下命令对表进行分组运算:

/ 对表按x的值进行分组,并计算每组的y的平均值
select avg y by x from t
连接操作

可以使用以下命令对两张表进行连接操作:

/ 连接两张表
t1: ([x:`a`b`c`d; y:1.0 2.0 3.0 4.0])
t2: ([x:`a`b`d`e; z: 5 6 7 8])
t3: t1 lj t2
聚合操作

可以使用以下命令对表进行聚合运算:

/ 对表进行聚合运算,计算y的总和
([] s: distinct t1.x; total_y: sum t1.y) lj select sum y by x from t1
总结

Q语言的表是一种非常灵活的数据类型,可支持大规模数据的处理。通过对Q语言表的学习,我们可以更好地处理、分析和利用数据,为数据科学的进一步发展提供了强有力的工具。