机房收费系统之数据类型&除法运算符

        机房收费系统走到计算卡余额的时候,遇到了有关除法运算符和SQL2008中的数据类型的问题。下面是关于这两方面的认识,希望大神们指导下,不胜感激。

一、数据类型

    首先我们来看下SQL2008的数据类型的相关内容。说道数据类型,相信学过编程的同学一定不陌生了。对于任何一种编程语言,数据类型无不占据着基石的重要地位。任何一种语言,如果在数据类型上不下功夫总是会有瑕疵的。而SQL在这方面一样是下了一番功夫。

关于数据类型,SQL2008提供了普遍存在的几种数据类型:字符型、数值型、日期和时间型( 这三种比较常用)以及其它一些特殊的数据类型( 不常用的和自定义的等数据类型,但一样重要)。

1、字符型数据

字符型数据是数据库中最常用的一种数据类型了,字符型数据需要放在单引号 ' ' 中。字符型数据有其长度,每个英文字母(不分大小写)和每个阿拉伯数字各占一个长度;而我们母语中的每个汉字则各占两个字符长度(关于这点,有兴趣的伙伴们可以自行搜索一下)。
字符串家族的成员有:char(字符串长度)、varchar(字符串长度)和text。这里我主要向大家介绍其中的char()是固定长度类型,例如char(8)表示最多存储8个字符串长度的字符串,字符串长度不够8个的按8个计算,剩下的字符用空格补齐;而varchar()则是可变长度类型,若定义数据类型为varchar(8)而所要存储的字符串长度不到8,则按实际字符串长度计算。例如定义数据类型为varchar(8)但是实际字符串长度为6,则字符串长度就是6而不是8。至于text则是用来存储大量字符的,其最大存储长度约为21E个字符。

2、数值型数据类型

数值型数据类型数据包括我们通常所说的0~9的数字、正负符号和小说点组成。关于小数点我们需要注意的是,带小数点的为浮点型数据,不带小数点的为整数型数据。SQL2008则为我们提供了整数型数据、浮点型数据和货币型数据。

  • 整数型数据

整数型数据按照范围大小又细分为:bit光棍和int家族:tinyint、smallint、int、bigint。其中的bit包括0、1和NULL,不满8bit的按8bit计算;tinynit的范围为0~255、smallnit的范围为-2^15~2^15-1、int的范围为-2^31-2^31-1、bigint的范围为-2^63~2^63-1。(关于范围,大家不必记得完全正确,有个大概范围就可以了)

  • 浮点型数据

浮点型数据包括整数部分和小数部分。常用类型有numeric和decimal,这两者的存储长度和其精度有关。需要指出的是,浮点型数据需要指出整数部分和小数部分各自的精度即各占几位。例如numeric(8,6)表示该小数为8位,有6位小数。注意:小数的位数可以指定为0即表示整数。

  • 货币型数据

显而易见的,货币型数据是用来表示货币数据的。其成员按照范围由大到小有smallmoney和money,它们分别以4字节和8字节为一存储单元进行存储。smallmoney的范围为从-214748.3648到214748.3647;money的范围为-922337203685477.5808到922337203685477.5807(大家心里对这两位的范围有个大概印象即可啦)。

  • 日期和时间型数据

同样,这一数据类型使用来储存日期和时间的数据的。这一数据类型包括的类型到目前为止有六种:datetime、smalldatetime、datetime2、datetimeoffset、date和time。其中最先出现的datetime和smalldatetime是用来存储日期和时间混合的数据的,区别只是范围的大小不同;而存储日期和时间混合类型数据的新秀datetime2在精度上比前两者有所提高,其精度小于3时为6字节,精度为4时和5时时为7字节,所有其他时为8字节;至于datetimeoffset是用来存储日期、时间和时区信息的数据类型,默认精度为10字节的固定大小;date用来单一存储日期,time则用来单一存储表示时间的数据。

二、除法运算符

VB提供了“\”、“/”和“Mod”这三种除法运算符。具体情况我们看下面的详解。

  • “\”运算符

对于这个“\”运算符,微软官方称之为“截断”,个人更愿意称其功能为“取整”。该运算符支持所有数值类型。

  • “/”运算符

大家看到这个运算符可能会有一种亲切感,毕竟数学中相识相知了很多年嘛。对于该运算符支持的数据类型,微软官方解释为“支持Numeric类型,包括无符号和浮点类型以及Decimal类型”。 对于这一解释我有一种很不好滴赶脚:Numeric和Decimal不就代表了所有的数值型数据了吗?为什么不直接说支持所有数据类型呢?各位神仙哪位大神可以告诉我为什么啊?

  • “Mod”运算符

关于这个运算符,相信大家虽然没有遇到“/”的熟悉感,但不至于完全陌生。作为取余运算,Mod同样支持所有数据类型。而在处理浮点型数据的取余运算时,返回的余数可以为浮点型数值。
写到这里,我自己对SQL中的数据类型以及VB提供的有关除法的运算符的理解就暂时告一段落了。如有不当之处,敬请您的不吝赐教。
感谢您的宝贵时间,谢谢~



评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值