SQL--基本数据类型

数据类型(常用数据类型,以红名标注):
在Microsoft  SQL Server中,整数数据类型包括:

tinyint型:使用此数据类型时,存储数据的范围是从0到255,每个tinyint类型的数据占用1个字节的储存空间。

smallint型:使用此数据类型时,存储数据的范围是从-2的15次方(-32768)到2的15次方-1(32767),占用2个字节的储存空间。

int型:使用此数据类型时,存储数据的范围是-2的31次方到2的31次方-1,占用4个字节的储存空间。

bigint型:使用此数据类型时,存储数据的范围的是从-2的63次方到2的63次方-1,占用8个自己的储存空间。

浮点型数据类型:

real型:real数据类型可精确到第7位小数,其范围为-3.40E-38到3.40E+38,每个real类型占用4个字节的储存空间。

float型:精确到15位小数,范围为-1.79E-308到1.79E+308,占用8个字节的储存空间。float数据类型可写为float[N]的形式。N制定float数据的精度,N为1到15的整数值。当N取值为1到7时,实际上是定义了一个real的数据,系统用4个字节来储存它。当N取值为8到15时,系统认为其实float数据类型,用8个字节来储存它。

decimal型:decimal数据类型可以提供小数所需要的实际存储空间,但也有一个限定。我们可以用2到17个字节来储存从-10的38次方-1到10的38次方-1之间的数据,可以将其写为decimal(p,[s])的形式,p和s确定了精度的比列和数位,其中p表示可供储存的值的总位数(不包括小数点),缺省值为18;s表示小数点后的位数,缺省值为0,如:decimal(15,5),表示共有15位数,其中整数10位,小数5位。

numeric型:numeric数据类型与decimal数据类型完全相同。

字符串类型:

char:char是定长字符数据,其长度最多为8KB。如果将一个列的数据类型定义为char,那么我们就可以使用
char(x)指定该列所能存储的字符的数目,其中x是字符数目。

varchar:varchar是变长字符数据,起长度不超过8KB。varchar(x)

text:超过8KB的ASCⅡ数据可以用text数据类型存储。如:HTML文档全部都是ASCⅡ字符,并且在一般情况下长度超过8KB,所以这些文档可以用text数据类型存储在 SQL server中。

Unicode数据类型nchar、nvarchar和ntext:在Microsoft  SQL server中,传统的非Unicode数据类型允许使用由特定字符集定义的字符。在Unicode标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所占空间是使用非Unicode数据类型所占空间的两倍。 SQL Server中,Unicode数据以nchar、nvarchar和ntext数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用nvarchar字符类型,这时最多可以存储4000个字符。当列的长度固定不时,应该使用nchar字符类型,同样,这时最多可以存储4000个字符。当使用ntext数据类型时,该列可以存储多于4000字符。

在Microsoft  SQL Server中,二进制数据类型包括:

binary:binary数据类型用于存储二进制数据。其定义形式为binary(n),n表示为数据的长度,取值为1到8000。在使用时必须指定binary类型数据的大小,至少应为1字节。binary数据类型占用n+4字节的存储空间。在输入数据时必须在数据前加上字符“0x”作为二进制标识,如:要输入“abc”则应输入“0xabc”。若输入的数据过长将会截掉其超出部分。若输入的数据位数为奇数,则会在起始符号“0x”后面添加一个0,如上述的“0xabc”会被系统自动变为“0x0abc”。

varbinary:varbinary数据类型的定义为varbinary(n)。他与binary类型相似,n的取值也为1到8000,若输入的数据过长,将会截掉其他超出部分。不同的是varbinary数据类型具有变动长度的特性,因为varbinary数据类型的存储长度为实际数值长度+4个字节。当binary数据类型允许NULL值时,将被视为varbinary数据类型。

注:一般情况下,由于binary数据类型长度固定,因此它比varbinary类型的处理速度快。
逻辑数据类型:

bit:bit数据类型存储逻辑真与假数据,占用1个字节的存储空间,其值为0或1,若输入0与1外的数,将被视为1。bit类型不能定义为NULL值(所谓NULL值是指空值或无意义的值)。

图形数据类型:

SQL Server中的image数据类型用于存储大量的二进制数据,其理论容量为2的31次方-1(2,147,483,647)个字节。通常来存储图形等OLE(Object Linking adn Embedding,对象连接和嵌入)对象。在输入数据时同binary数据类型一样,必须在数据前面加上字符"0x"作为二进制标识。在Image数据类型中存储的数据是以位字串符存储的,不是由 SQL Server解释的,必须由应用程序来解释。如:应用程序可以使用BMP、TIEF、GIF、和JPEG格式把数据存储在Image数据类型中。

日期和时间数据类型:

datetime:用于存储日期和时间的结合体 范围1753-1-1是9999-12-31

smalldatetime:与datetime数据类型相似,但其日期范围较小,只能表示1900-1-1到2079-6-6

货币数据类型:

money:此数据类型的数据是一个有4位小数的decimal值,其取值从-2的63次方(-922,337,203,685,477,5808)到2的63次方-1(922,337,203,685,477,5807),数据精度为万分之一货币单位。money数据类型使用8个字节存储。

smallmoney:smallmoney数据类型类似于money类型,但其存储的货币值范围比money数据类型小,取值从-214,748,3648到+214,748,3647,存储空间为4个字节。

特殊数据类型:

SQL Server中包含了一些用于数据存储的特殊数据类型。

timestamp:此数据类型提供数据库范围内的唯一值。此类型相当于binary(8)或varchar(8),但当它所定义的列在更新或插入数据行时,此列的值会被自动更新,一个计数值将自动地添加到此timestamp数据列中。每个数据库表中只能有一个timestamp数据列。如果建立一个名为timestamp的列,则该列的类型降被自动设为timestamp数据类型。

uniqueidentifier:此数据类型储存一个16位的二进制数字。此数字成为GUID(Globally Unique Identifier,即全球唯一识别号)。此数字是由 SQL Server的NEWID函数产生的全球唯一编码,在全球各地的计算机经由此函数产生的数字不会相同。


基础的数据类型就这些,常用的已经用红色字体标注出来!本人小菜,大牛绕路勿喷!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL解析器是一个用于解析和分析SQL查询语句的工具。它可以将SQL查询语句转换为语法树或解析树,以便后续进行语义分析、优化和执行。 在实现SQL解析器时,可以考虑以下步骤: 1. 词法分析:将输入的SQL查询语句分割成不同的词法单元,如关键字、标识符、运算符等。可以使用正则表达式或有限状态机来进行词法分析。 2. 语法分析:将词法单元组织成语法结构,形成语法树。可以使用上下文无关文法(Context-Free Grammar)或递归下降等算法进行语法分析。 3. 语义分析:对语法树进行分析,检查语义错误并进行修正。例如,检查表名和列名是否存在,检查数据类型是否匹配等。 4. 优化:对解析后的查询进行优化,以提高查询性能。这包括选择合适的查询计划、索引优化等。 5. 执行计划生成:根据优化后的查询计划,生成执行计划以执行实际的查询操作。 6. 执行查询:根据执行计划,执行查询并返回结果。 在实现SQL解析器时,可以使用一些开源工具或库来简化开发,如ANTLR、JSQLParser、Apache Calcite等。这些工具提供了丰富的API和语法规则,可以帮助您实现一个功能完善的SQL解析器。 请注意,SQL解析器的实现是一个复杂的任务,需要对SQL语法和数据库原理有一定的了解。如果您是初学者,建议先学习相关的数据库理论和SQL语法,然后再着手实现一个基本的SQL解析器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值