pg学习_基本表定义_数据类型

数据类型


1、字符串类型
Char 类型:描述单个字节的字段。 
Char(length)类型:存放定长的字符到字符串中,不足 length 的字符串,用空格进行
补充。
Varchar(length)类型:存放变长的字符串,但有长度限制
Text 类型:不限制字符串的数目,通常用于描述长度变化较大或长度不可预知的数据字
段。
其中,Char(length)类型处理速度上要比 Varchar(length)类型和 Text 类型要快,
但是存储上要占用很大空间。所以说在设计数据库的时候,需要注意的地方。


2、数值类型
Int2 类型
Int4、integer 类型
Int8 类型
Float4 类型
Float8 类型
Numeric 类型
serial 类型
integer、int2 和 int8 用于描述存放整型数值的变量。Integer 类型和 int4 类型的变量
都是占用 4 个字节的存储容量;int2 类型的变量是占用 2 个字节的存储容量;int8 类型的变量是占用 8 个字节的存储容量。
Float8 和 float4 用于描述浮点类型变量。前者精度为 15 位数据,后者的精确度为 6 位 数据。
Numeric 类型用于描述用户自定义精度的实数变量。这种类型的处理速度最慢。尽量避免使用。
Serial 类型是用其他类型构造出来的一种特殊类型。典型的用途是创建表的唯一标识。 默认情况下,能创建一个隐含的序列,当删除表的时候,隐含序列并不会被删除。


3、时间类型
Date
Time
Timestamp
Interval
其中,Date 类型用于描述日期变量,包括年、月、日,它的格式由 DATESTYLE 配置项的 值来决定。
highgo=# select current_date;
    date    
------------
 2017-03-30
(1 row)
Time 类型用于描述时间数据变量,包括时、分、秒,三者之间用“:”分隔。
highgo=# select current_time;
       timetz       
--------------------
 15:23:24.057695+08
(1 row)
Timestamp 类型用于描述时间戳数据变量,包括年、月、日和时、分、秒。
highgo=# select current_timestamp;
              now              
-------------------------------
 2017-03-30 15:23:29.536595+08
(1 row)
Interval 类型用于描述时间间隔变量,包括年、月、日和时、分、秒等分量。


4、逻辑类型
Boolean 类型 用于描述逻辑变量,只能存放两个值:true 和 false。


5、几何类型
几何类型是 HighGo DB 特有的数据类型,主要用于描述存放平面二维几何图参数的变量。


6、网络类型
CIDR 类型:Ip v4 地址
INET 类型:Ip v4 地址或主机名 
通常在数据库设计的时候,由字符类型进行代替。也减少了在编程的时候进数据类型的转换。


7、数组类型
数组类型,这种字段可以用于存放多个简单类型的数据。数组字段可以是一维的,也可以 是二维的,甚至可以是多维的。
7.1定义方法
highgo=# create table test1(name integer[5]);
CREATE TABLE
highgo=# create table test2(name integer[]);
CREATE TABLE
7.2插入数据
highgo=# insert into test1 values('{1,2,3,4}');
INSERT 0 1
highgo=# insert into test1 values('{6,7}');
INSERT 0 1
7.3数组字段的引用
highgo=# select * from test1 where name='{6,7}';
 name  
-------
 {6,7}
(1 row)
7.4用途
对于长度不固定、对数据类型有特别要求的数据,数组字段特别有用。



8、大对象类型
HighGo DB 提供了用于存储超大型文本的 text 类型和存储二进制数据的 bytea 类型。
瀚高数据库还兼容了 oracle 的 clob 和 blob 类型。
大对象的引用可以利用 HighGo DB 的函数 lo_import()将大对象插入到数据库中,也可 以利用 lo_export()函数从数据库中取出大对象。


9、预定义变量
highgo=# select current_date;
    date    
------------
 2017-03-30
(1 row)


highgo=# select current_time;
       timetz       
--------------------
 15:23:24.057695+08
(1 row)


highgo=# select current_timestamp;
              now              
-------------------------------
 2017-03-30 15:23:29.536595+08
(1 row)


highgo=# select current_user;
 current_user 
--------------
 highgo
(1 row)


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值