Chinaunix首页 | 论坛 | 博客
  • 博客访问: 262821
  • 博文数量: 54
  • 博客积分: 1761
  • 博客等级: 上尉
  • 技术积分: 585
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-17 23:30
文章分类

全部博文(54)

文章存档

2013年(4)

2012年(7)

2011年(15)

2010年(28)

分类: 数据库开发技术

2010-12-26 10:15:12

All data is ultimately built from atoms, so we begin with atoms.An atom is an irreducible value with a specific data type.

the following table collects all important information for q data type and atoms:

type size char type num type notation null value
boolean 1 b 1 1b 0b
byte 1 x 4 0x26 0x00
short 2 h 5 42h 0Nh
int 4 i 6 42 0N
long 8 j 7 42j 0Nj
real 4 e 8 4.2e 0Ne
float 8 f 9 4.2 0n
char 1 c 10 "z" " "
symbol * s 11 ‘zaphod `
month 4 m 13 2006.07m 0Nm
date 4 d 14 2006.07.21 0Nd
datetime 4 z 15 2006.07.21T09:13:39 0Nz
minute 4 u 17 23:59 0Nu
second 4 v 18 23:59:59 0Nv
time 4 t 19 09:01:02:042 0Nt
enumeration

* `u$v
dictionary

99 `a`b`c!!10 20 30
table

98 ([] c1:ab`c; c2:10 20 30)


整数类型

int型,使用4个字节保存数据。可正可负。

int => 123

short型,使用两个字节保存数据。结尾必须是h。

short=> 234h (h is compulsory)

long => -23423j (j is compulsory)

Type promotion is performed automatically in q primitive operations. However, if a specific integer type is required in a list and a narrower type is presented . then an error will be prompt.

浮点型数据

float型,存储在8个字节中。结尾可以f也是可选的。float可保存15位进度的数据。

float => pi:3.23423 or pi:1f

real型,存储在4个字节中。结尾必须以e结尾。

real => 1.23423e

另外浮点型数据,在q中还可以表示成科学表示法。例如:

f:1.23456789e-10
r:1.2345678e-10e

默认q console中只显示7位有效数字。当然我们也可以更改这一行为。使用\P即可。

二进制数据

在q中表示二进制数据的数据类型由boolean和byte。

boolean的写法。0或者1,结尾是b。

boolean => bit:0b

byte数据的表示,在q中是以0x开始,后面带两个16进制。

byte => by:0x2a

在q中,浮点数,整数和二进制数据都是能够参与基本数学运算的。在混合这些类型的计算表达式中,参与的元素是自动升级的。

字符

类似于sql,q也有两种方式表示字符。相当于char和varchar。

char类型

char其实就是将单个字符包含在双引号内。同时char还能包含特殊字符,包含特殊字符时,需要依靠反斜杠来输入这些变量。例如

"\n"。

char => ch:"q" or ch:"\n"

另外还可以使用8进制来表示char。如

c:"\142"

symbol类型

symbol => s1:`q

note that symbol is the smallest unit of the data, can't be reduced.

无穷值

有别于普通的数字和时间日期数值,q有特殊值来表示无限值。无限制总是大于或者小于任何正常值。无限值有正负之分。无穷值也是有数学类型的。

获取无限值的方式和数学中的运算差不多。整数除以0,得到无限大,负数除以0得到无限小。

无穷值也是可以参与整数运算的。当无穷值参与运算时,其原理是,转变成对于类型的最大bit表示,然后再进行运算。例如

0W-2

2147483645

Null值

null值在sql语言中,表示缺少值。missing value。但是在q中随着类型的不同而有不同意义:

char: 表示空字符

数学:表示missing value

二进制:表示值0


阅读(2036) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~