Q 语言初学者系列:(1)开门篇

声明:本系列文章全部参考自官方教程,由于缺乏中文资料而且本人E文实在太菜,对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程,
欢迎大家一起学习讨论。
hhttps://code.kx.com/trac/wiki/QforMortals2/contents
用户名跟密码为anonymous



历史背景:
Q语言跟它的数据库kdb+是由同个作者Arthur Whitney开发的,发布于 2003年。Q语言天生地具体处理大数理量的能力,同时它也是kdb+数据库的查询语言,类似于SQL。

KDB+介绍:
KDB+ 是一种适合用于处理大数量的数据库服务器,和kdb一样 被设计于用来高速地抓取、分析和存储数据。 主要应用于金融软件的开发,区别于传统的关系型数据库,主要优势是挖掘快速发展的硬件的潜力,我想缺点是对硬件性能要求比较苛刻。
刚刚接触KDB+数据库,google了半天没找到一丁点中文资料,加上英文太菜,或许对它的理解有误,不过暂时先这样定义,等有了更好的答案了再来Update. 
打开地址  http://www.kx.com/developers/software.php, 然后选择点击"Personal Developer kdb+ Software License Agreement"获取一个免费的32位版本,才100多K的东西。

特点:
◇内存数据库(In Memory Database)
         把数据全部放置于内存中 ,好在现在内存是越来越白菜价了。
◇解释型语言(Interpreted)
◇有序列表(Ordered Lists)
         实现高速处理数据的关键,区别于传统数据库。
◇赋值顺序(Evaluation Order)
◇面向表编程(Table Oriented) 
         放弃了经典的OO,取而代之的是一种更加复杂的思想,基于表得字典的编程。
◇面向列编程(Column Oriented)
◇强类型(Types): 
      强类型,动态检测    (Q is a strongly typed, dynamically checked language)
◇空值(Null Values): 
      每种类型都有自己的空值 (Types have separate null values. )
    

开始:
安装Kdb+ 数据库服务器,直接解压到C盘根目录下就OK了,如果希望放到其它目录下需要添加环境变量QHOME到q目录;

进入到程序目录通过"q"命令启动一个q会话。


变量:
Q语言声明变量只需要使用一个变量名跟一个值,格式为“变量名:值”,解释器会根据值的类型给变量赋予相应的类型,需要注意的是赋值符号是":"而不像大多数语言所使用的"=".

e.g.q)a:20

变量的命名规范基本与匈牙利命名规范差不多,但有一点需要注意的是禁止使用下划线,就算是非使用不可的情况下也不应该把下划线放在最后一个字符

可能使用一个斜杆(/)给程序添加注释,当然使用两杆(//)也是不会报错的
程序的执行顺序是从右到左
e.g. q)b:1+a:42
q)b
43

今天的开门篇就介绍到这里,由于文中一些概念还没完全理解清楚,有很多表达不到位的地方经过后期的学习我会尽量补上。
下一节将介绍Q语言的基本数据类型



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 将数据写入磁盘并读取磁盘上的文件

package test; import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;import java.util.ArrayList;import java.util.List; public class test { public static void main(String[] args) { //创建集合 List<String> listnew ArrayList&l…

simulink怎么生成vxworks的执行程序_Matlab/Simulink基础了解(五):基础Simulink模型搭建及Embedded基础使用...

为了方便大家阅读&#xff0c;从这章开始在章节名中添加该章节要讲的主要的东西。本章给大家讲一个最简单的Simulink模型&#xff1a;在处理应用逻辑时常常会判断车速信号来得到车是否静止&#xff0c;如果车已经跑起来了&#xff0c;很多功能都会被禁用&#xff0c;比如诊断&a…

Q 语言初学者系列:(2)基本数据类型

明&#xff1a;本系列文章全部参考自官方教程&#xff0c;由于缺乏中文资料而且本人E文实在太菜&#xff0c;对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程&#xff0c; 欢迎大家一起学习讨论。 hhttps://code.kx.com/trac/wiki/QforMortals2/contents 用户名…

Megacli恢复RAID0磁盘数据

今天干了一件蠢事&#xff0c;距离删库跑路&#xff0c;只差一步。把一块RAID0的磁盘给拔掉了,拔掉之后发现这是一块数据盘&#xff0c;幸好这个数据库是一台备库。赶紧动手恢复&#xff0c;以下是恢复的过程。 首先把拔下来的盘插回去&#xff0c;通过Megacli查看状态是这样的…

内核堆栈 用户堆栈_堆栈痕迹从何而来?

内核堆栈 用户堆栈我相信&#xff0c;阅读和理解堆栈跟踪是每个程序员都必须具备的一项基本技能&#xff0c;以便有效地解决每种JVM语言的问题&#xff08;另请参阅&#xff1a; 过滤日志中无关的堆栈跟踪行和首先记录引起根的异常 &#xff09;。 那么我们可以从一个小测验开始…

Java中使用log4j记录日志

在项目开发中&#xff0c;记录错误日志是一个很有必要功能。一是方便调试&#xff1b;二是便于发现系统运行过程中的错误&#xff1b;三是存储业务数据&#xff0c;便于后期分析&#xff1b; 在java中&#xff0c;记录日志&#xff0c;有很多种方式。 比如&#xff0c;自己实…

python如何输出两列数据_如何用python将一列数据分为两列?

引用来自“Ashkandi”的评论[{date: c[:10], time: c[11:]} for c in Col] 引用来自“vx2008”的评论 谢谢回复&#xff0c;这行代码执行完了以后&#xff0c;日期和时间都村到哪里了呢&#xff1f; 我是了一下&#xff0c;调用date&#xff0c;提示没有定义date&#xff0c;请…

Q 语言初学者系列:(3)Lists 初级

声明&#xff1a;本系列文章全部参考自官方教程&#xff0c;由于缺乏中文资料而且本人E文实在太菜&#xff0c;对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程&#xff0c; 欢迎大家一起学习讨论。 hhttps://code.kx.com/trac/wiki/QforMortals2/contents 用户…

数据库图书管理建表与修改表

根据调研选定实体及相应属性画出E-R图 ​ 2、将E-R模型转换为对应关系模型&#xff0c;并指出主码和外码 图书book&#xff08;书号&#xff0c;类别&#xff0c;出版社&#xff0c;作者&#xff0c;书名&#xff0c;定价&#xff0c;备注&#xff09;&#xff1b; 读者reade…

如何指南:Apache Drill入门

Apache Drill是一种引擎&#xff0c;可以连接到许多不同的数据源&#xff0c;并为它们提供SQL接口。 它不仅是想跳入任何复杂事物的SQL接口&#xff0c;而且是一个功能强大的接口&#xff0c; 其中包括对许多内置函数和窗口函数的支持。 尽管它可以连接到您仍然可以使用SQL查询…

python3编程入门_在类Unix系统上开始Python3编程入门

>>> s Hello >>> x len(s) >>> print("The length of %s is %d" % (s,x)) The length of Hello is 5 看看《Python基础编程》中对格式化输出的总结&#xff1a; (1). %字符&#xff1a;标记转换说明符的开始 (2). 转换标志&#xff1a;-…

visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

问题描述 “Win32Project3.exe”(Win32): 已加载“D:\software\VS2013\VS2013 文档\Win32Project3\Debug\Win32Project3.exe”。已加载符号。 “Win32Project3.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。 “Win32Project3.exe”(Wi…

matlab的一个疑问?

把逻辑值放入一个已知矩阵&#xff0c;为啥结果是&#xff1a;真就取矩阵的值&#xff0c;假就不取值&#xff1f; K>> aaaarandi(10,10,2) aaaa 6 3 10 4 6 7 5 2 6 3 8 2 1 2 9 4 2 9 5 5 K>> aaaa9 ans 102 logical array 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 …

如何使用log4j记录日志

【1】从零开始 a). 新建Java Project>>新建package>>新建java类&#xff1b; b). import jar包&#xff08;一个就够&#xff09;&#xff0c;这里我用的是log4j-1.2.14.jar&#xff0c; c). 新建log4j.properties&#xff0c;置于project根目录下&#xff1b; log…

python验证码 识别代码不准_谈谈Python进行验证码识别的一些想法

用python加“验证码”为关键词在baidu里搜一下&#xff0c;可以找到很多关于验证码识别的文章。我大体看了一下&#xff0c;主要方法有几类&#xff1a;一类是通过对图片进行处理&#xff0c;然后利用字库特征匹配的方法&#xff0c;一类是图片处理后建立字符对应字典&#xff…

matlab 安装jdbc.jar

加到matlab的启动项下面。 方法如下&#xff1a;找到matlab的安装路径&#xff0c;如下&#xff1a; 有一个classpath的txt文件&#xff0c;打开&#xff0c;在末尾添加jdbc的jar包路径即可&#xff0c;如下&#xff1a; 或者&#xff0c;直接在matlab 上用以下命令&#xff0…

MyEclipse软件中快捷键

在调试程序的时候&#xff0c;我们经常需要注释一些代码&#xff0c;在用Myeclipse编程时&#xff0c;就可以用 Ctrl/ 为选中的一段代码加上以 // 打头的注释&#xff1b;当需要恢复代码功能的时候&#xff0c;又可以用Ctrl/ 去掉注释。这样的快捷键确实让我们编程变得容易多了…

python3:(unicode error) 'utf-8' codec can't decode

操作系统&#xff1a;win7 旗舰版 语言&#xff1a;python3.4 文本编辑器&#xff1a;vim、notepad 报错&#xff1a;SyntaxError: (unicode error) utf-8 codec cant decode byte 0xb4 in position 0:invalid start byte 基本知识&#xff1a;在python中默认的编码格式是 utf-…

传统的Web应用程序和RESTful API

如今&#xff0c;当我们构建Web应用程序时&#xff0c;将所有功能公开为RESTful API&#xff0c;然后自己使用它是一种最佳实践。 这通常与使用繁重的javascript的丰富前端配合使用&#xff0c;例如Angular / Ember / Backbone / React。 但是沉重的前端似乎不是一个很好的默认…

c语言怎样获得函数内参数的值_C语言可变参数函数的实现原理

在本人的《C语言可变参数函数的实现方法》一文中&#xff0c;介绍了如何建立自己的可变参数函数。下面继续介绍可变参数函数的实现原理。在汇编语言程序设计中&#xff0c;详细介绍了子程序的实现思想&#xff1a;(1)子程序只是一段代码的起始地址&#xff1b;(2)调用子程序之前…