inix数据类型.docx_第1页
inix数据类型.docx_第2页
inix数据类型.docx_第3页
inix数据类型.docx_第4页
inix数据类型.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一.内建的数据类型 1. 数字相关 1)INTEGER 整型,范围为:-21474836472147483648 2)SMALLINT短整型,-3276732767 3)INT8长整型 (263 1) 263 1 4)DECIMAL(p,s)可调整精度浮点型10-130 10124 SMALLINT和INTEGER的优势:占用很小的空间,分别占用2个字节和4个字节可以对他们执行算术表达式和排序操作SMALLINT和INTEGER的劣势:可以存储数值的范围有限只有IDS才支持INT8,虽然占据的空间是INT的两倍,但是存储的数值的范围增大到:(263 1) 263 1DECIMAL(p,s)的优势:p指数据的精度,其范围从1到32,s则用以确定小数位数,是0的时候等同于DECIMAL(p)表示整数。他完整涵盖了SMALLFLOAT和FLOAT的表达范围。DECIMAL(p)占用的存储空间为p/2+1个字节,而DECIMAL(p,s)占用的存储空间,如果s是偶数,占用(p +3)/2个字节,s为奇数(p + 4)/2个字节。DECIMAL(p,s)的劣势:缺点是算术运算的效率比较低,且许多变成语言不支持此种格式。 4)SERIAL、SERIAL8、BIGSERIAL这三种类型都会自动产生数据,并且用户可选择是否提供初始值.不同之处在于:SERIAL类型的数据占用4个字节的存储空间;SERIAL8类型的数据一般情况下占用10个字节的存储空间(在Extended Parallel Server中占用8个字节的存储空间);BIGSERIAL类型的数据占用8个字节的存储空间。eg1.创建一个表route_rule,它的主键rule_id是属于SERIAL自增类型的,参考建表语句如下:createtableroute_rule(rule_idserialnotnull,rule varchar(128)notnull,action varchar(32)notnull,route_arg varchar(32),primarykey(rule_id)constraintPK_ROUTE_RULE); eg2.如何查询serial型字段的当前值? 5)DECIMAL(p,s) 其中p是整个数据的有效位,s是小数点后位数,1p32,s可以为0。不指定时默认为16位。 eg1:在如下实例中,创建了human_task_exp表,其中probability为双精度类型:createtablehuman_task_exp(serviceidVARCHAR(30)notnull,secondsINTEGERdefault0notnull,probabilityDECIMAL(16,14)default0) 6)FLOAT、SMALLFLOAT 这两种类型的数据使用于不要求精度而要求量值的场合,如科学计算,FLOAT双精度数,通常占8个字节,有16位十进制有效位,而smallint为单精度数,占4字节,8位十进制有效位。但数值超出精度范围,则都看作0处理 7)MONEY(p, s) 同decimal完全相同,但显示money类型时候会自动显示现金符号,默认是$。2. 时间相关 1)DATE日期型,随数据库不同而不同. eg1. test_date表中包含一个birthday的日期字段,可以通过如下语句插入:创建表的语句参考如下:CREATETABLEtest_date(birthdaydate); 插入记录(一条生日为1982年11月21日的数据)的语句参考如下:insertintotest_datevalues(11/21/1982);也可通过如下语句执行如上语句相同的结果:insertintotest_datevalues(date(11/21/1982); eg2. 将DATE类型的数据转换为指定的字符类型例如将上面的11/21/1982变成1982-11-21的类型.语句如下:selectTO_CHAR(birthday,%Y-%m-%d)fromtest_date; eg3.获得当前日期selecttodayfromtest_date;eg4. 日期相加减,得到天数,例如将test_date中的当前日期-birthday字段,可得到出生天数,语句如下:selectto_date(to_char(today,%Y-%m-%d),%Y-%m-%d)-to_date(to_char(birthday,%Y-%m-%d),%Y-%m-%d)fromtest_date; 对于1982-11-21,可得到如下的返回结果(oh,my god,我已经出生那么多天咯):1021100:00:00.00000 2)DATETIME 用于记录时间点,表示的精度可以任意指定,可以包含年份、月份、日。eg1.将表test_datetime的字段birthtime定义为DATETIME类型,建表语句参考如下:createtabletest_datetime(birthtimedatetimeyeartofraction(2); eg2. 若要在该表中插入一条1982-11-21 12:20:00的数据:insertintotest_datetimevalues(1982-11-2112:20:00); eg3. 插入eg2中同样的记录,还可以使用如下语句:insertintotest_datetimevalues(datetime(1982-11-2112:20:00.79)yeartofraction(2); eg4. 将DATE类型的数据转换为指定的字符类型:selectTO_CHAR(birthtime,%Y-%m-%d%H:%M:%S)fromtest_datetime;上面的出生时间的如上语句的结果如下:1982-11-2112:20:00 3)INTERVALinterval类型的数值用于表示两个时间点之间的间隔. eg1.将表test_interval的字段interval_filed字段定义为INTERVAL类型,并且只包含“时:分:秒”,建表语句参考如下:createtabletest_interval(interval_filedintervalhourtosecond); eg2. 在上面创建的表中插入一条记录,时间是12:20:05,语句参考如下:insertintotest_intervalvalues(12:20:05); eg3.达到如上语句相同的结果也可以使用到interval函数,语句参考如下:insertintotest_intervalvalues(interval(12:20:05)hourtosecond); eg4. 将INTERVAL类型转换为指定的字符类型(HH:MM:SS格式,直接查询就是这个格式,嘻嘻),语句参考如下:select*fromtest_interval;运行结果就是:12:20:05。3. 字符相关 1)VARCHAR(n, r) 存储变长字符型,最长255字节。 2)CHAR(n) 定义宽度为n的字符字段,最长255。 3)NCHAR(n) 同char,但允许GLS应用程序的不同排序顺序。 4)NVARCHAR(m, r) 同varchar,但允许GLS应用程序的不同排序顺序。5)LVARCHAR(m) 存储变长字符串,最大32739个字节.6)CHARACTER VARYING(n, r) 存储用户定义的数据类型,其内部结构对于数据库服务器不透明,即不可存取。 4.大对象相关 1)BYTE 二进制数据,最大2的31次方字节。byte用于存储任意数据,一般用来存储图片和声音文件等。 2)TEXT 文本型,最大2的31次方字节。 3)BLOB 以随机存取块的形式存储二进制数据。 4)CLOB 以随机存取块的形式存储文本数据。 5. MISC 1)BOOLEAN 存储布尔值true和false。 二.复杂对象类型(complex data type) 1、复杂数据类型由一个或多个数据类型组合而成。复杂数据类型有row数据类型、集合数据类型。2、Row数据类型 由一个或多个任意的数据类型组成;eg1. 如下创建一个patient的Row数据类型,具有integer类型的num和char类型的name字段,参考语句如下:CREATEROWTYPEpatient(numint,namechar(30);3、集合数据类型 由一个或多个同样的数据类型集合组成,包括SET、LIST和MULTISET。 1)SET(e)数据类型 存储元素的非排序集合,所有元素都具有同一类型e;不允许重复值. eg1、在如下表中将description字段定义为SET类型,参考语句如下:CREATETABLEemployee(nameCHAR(30),salaryINTEGER,descriptionSET(VARCHAR(100)NOTNULL);eg2. 如何插入SET类型的数据? eg3. 如何查询SET类型的数据? 2)LIST(e)数据类型 存储元素的排序集合,所有元素都具有同一类型e;允许重复值. eg1.创建一个test_list的表,该表的col1是LIST(varcahr)数据类型,建表语句参考如下:createtabletest

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论