18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > SQL数据类型(数据库)

SQL数据类型(数据库)

时间:2022-11-08 16:30:01 | 来源:信息时代

时间:2022-11-08 16:30:01 来源:信息时代

    SQL数据类型 : 一种可表示的值集。SQL标准规定了三种数据类型: 预定义数据类型、构造数据类型和用户定义数据类型(或称UDT)。每种数据类型都有与之相关联的数据类型描述符,数据类型描述符包括该数据类型的标识和描述该数据类型值所需的特征信息。SQL标准规定SQL数据值不是非空值就是空值。空值是SQL实现决定的特殊值,可以赋值给任何SQL数据类型,它用来表示“未知数据”或“不可用数据”,并区别于所有非空值。空值通常由NULL表示。
1.预定义数据类型
SQL标准规定的预定义数据类型有数值类型、字符串类型、二进制串类型、日期时间类型、时间间隔类型、布尔类型和XML类型。后四种类型是从SQL92开始逐步扩充的,其中XML类型是SQL2003标准新增加的数据类型。
(1)数值类型: SQL数值类型分为精确数值类型和近似数值类型。精确数值类型包括NUMERIC、DECIMAL、SMALLINT、INTEGER、BIGINT;近似数值类型包括 FLOAT、REAL、DOUBLE PRECISION。SQL标准规定任何两个数值类型的值均是可比较的。数值类型的值只能赋值给数值类型的对象。如果数的赋值导致它的最高位丢失,将引发异常;如果实现定义的舍入或截断导致最低位丢失,不应引发异常。
(2)字符串类型:字符串是一个字符序列。SQL标准将字符串类型分为定长、变长和字符大对象。定长字符串类型有CHARACTER和NATIONAL CHARACTER;变长字符串类型有CHARACTER VARYING和NATIONAL CHARACTER VARYING;字符大对象类型有CHARACTER LARGE OBJECT和NATIONAL CHARACTER LARGE OBJECT。
SQL标准规定,字符串中所有字符都取自某个字符集,字符串表达式只能赋值给具有相同字符集的字符串类型的对象。如果存储赋值由于截断造成非空格字符的丢失,应引发异常; 如果检索赋值由于截断造成字符丢失,应引发警告。只有当两个字符串具有相同的字符集或者两者的字符集至少存在一种共同的排序方法,两个字符串才是可比较的。
(3)二进制串类型: 二进制串是八位位组序列(也称字节序列),它没有与其相关的字符集和排序。二进制串类型的类型指示符为BINARY LARGE OBJECT。SQL标准规定,二进制串只能赋值给二进制串类型的对象。如果存储赋值由于截断而产生非0的八位位组丢失,应引发异常; 如果检索赋值由于截断而产生非0的八位位组丢失,应引发警告。所有的二进制串都是相互可比较的。
(4) 日期时间数据类型:日期时间数据类型分为日期时间类型和时间间隔类型两类,用于存储日期、时间和它们之间的间隔信息。
日期时间类型有DATE、TIME和TIMESTAMP。DATE类型包括的字段为YEAR、MONTH和DAY。TIME类型包括的字段为 HOUR、MINUTE和SECOND。TIMESTAMP类型包括的字段为YEAR、MONTH、DAY、HOUR、MINUTE和SECOND。SQL标准规定,只有当日期时间类型的值具有相同的基本日期时间字段时,才是相互可比较的; 只有当赋值的源和目标都是DATE类型或都是TIME类型或都是TIMESTAMP类型时,才能进行赋值操作。
时间间隔类型分为两类13种。一类称为年-月间隔,只包括YEAR和MONTH两个字段。年-月间隔类型细分为三种,即INTERVAL YEAR TO MONTH、INTERVAL YEAR和INTERVAL MONTH。另一类称为日-时间隔,细分为10种,即INTERVAL DAY,INTERVAL DAY TO HOUR,INTERVAL DAY TO MINUTE,INTERVAL DAY TO SECOND,INTERVAL HOUR,INTERVAL HOUR TO MINUTE,INTERVAL HOUR TO SECOND,INTERVAL MINUTE,INTERVAL MINUTE TO SECOND,INTERVAL SECOND。SQL标准规定,年-月间隔类型的值之间是相互可比较的,日-时间隔类型的值之间是相互可比较的,但要求它们具有相同的精度。
(5)布尔类型: 布尔类型包括两个不同的真值:TRUE和FLASE。布尔类型的类型指示符为BOOLEAN。如果不受非空约束限制,布尔类型也支持真值UNKNOWN作为空值。
(6) XML类型: 存储XML值的类型称为XML类型。XML是SQL2003新扩充的预定义类型,并支持XMLPARSE、XMLSERIALIZE、XMLROOT、XMLCONCAT内置操作符和谓词IS DOCUMENT。XMLPARSE返回给定SQL字符串表达式的一个XML类型的值; XMLSERIALIZE返回给定XML表达式的一个字符串类型的值; XMLROOT修改XML值的根信息项,并返回修改的值;XMLCONCAT连接两个或多个XML值,并返回结果值; 谓词IS DOCUMENT用来测试一个XML值是否具有单个根元素。
2.构造数据类型
SQL构造类型分为引用类型、行类型和集合类型。引用类型是由类型指示符REF指定的标量构造类型,其值引用(或指向)某个拥有被引用类型的一个值的站点,能够这样被引用的站点只有类型表(基于某个结构类型声明的表)中的行,每个被引用类型是一个结构类型。行类型是复合构造类型,由若干(字段名,数据类型)对的序列组成,类型指示符为ROW,称(字段名,数据类型)对为字段,一个行类型值由它的每个字段值构成。集合类型是复合数据类型,包括数组和多重集,类型指示符分别为ARRAY和MULTISET。数组是一个其值未必相异的有序集,多重集是一个其值未必相异的无序集。
3. 用户定义类型
用户定义类型是SQL99标准扩充的数据类型,分为结构类型和相异类型(distinct type),它是由用户定义类型名标识的模式对象。结构类型是由若干属性组成的,结构类型的每个属性有一个数据类型。结构类型的值由若干属性值组成,属性值是被封装的,它们不能由用户直接访问,只有通过调用为它们隐式定义的观察函数和变异函数才能访问。相异类型是一种基于单个预定义类型(称为源类型)的用户定义类型。相异类型的值由其所基于的类型的值来表示。
用户定义类型的定义可包括若干方法说明。方法说明可以是原型方法说明,也可以是重载方法说明(此时该类型必须是结构类型)。每个方法说明包括方法名、参数声明、返回数据类型等若干参数和特性。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭