Postgre SQL 支持的数据类型分类

CAST  数据类型转换函数

布尔类型:
        支持标准的boolean数据类型  只有TRUE FALSE两种状态,如果为unknown状态,则用NULL表示
数据类型:
        smalint(2字节): oracle没有此类型,使用number 代替
        int(4字节)   bigint(8字节)   
        numeric(十进制精确类型):用户声明的精度,在ORACLE中叫做NUMBER
        real、double、precision(浮点类型)
        money(货币类型)
字符类型:varchar(n)、char(n)、test三种类型
二进制数据类型:只有一种bytea,他对应与mysql中BLOB与LONGBLOB,oracle中的raw 类型可以使用bytea取代
        二进制字符串是一个字节序列。它和普通字符串的区别:
        (1)完全可以存储字节零值,普通字符串不允许存储字节零值
        (2)对二进制字符串处理,实际上处理字节;对字符串的处理,则取决于区域设置
         
位串类型:一串0和1的字符串,有bit(n)、bit varying(n)两种  其他数据库无此类型
日期和时间:date、time、timestamp。而time和timestamp 是否包括时区两种类型
         日期输入:任何日期或者时间的文本输入需要由“日期/时间” 类型加单引号包围的字符串
         如果DateStyle 参数默认为“MDY” ,则表示按照“月-日-年”解析
         设置日期类型: set datestyle='YMD';
 
枚举类型:包含一系列有序静态值集合的数据类型,与MYSQL不同,使用之前需要使用ctreate type 创建类型,等于某些编程语言中的enum类型
         每个枚举类型都是独立,不能与其他枚举类型混用;枚举类型的值大小写是敏感的。
         eg:首先建立一个“week" 的枚举类型,并建立一张测试表:
         create type week as  ENUM('Sun','Mon','Thur','Fri','Sat');
         create table duty(person text,weekday week);
         insert into duty values('张三','Sun');
         insert into duty values('李四','Mon');
         insert into duty values('王二','Tues');
         insert into duty values('赵五','Wed');
         试查询一条数据:
         select * from duty where weekday = 'Sun';
         但如果输入的字符串不再枚举类型之间,就会报错:
         select * from duty where weekday = 'Sun.';
         在plsql中,可以使用\dT 查看枚举类型的定义:
         \dT+ week
         直接查询表pg_enum 可以查看枚举类型的定义;
         select  * from pg_enum;
    
复合类型:把已有的简单类型组合成用户自定义类型,例如C语言中结构体,类似于从一个表名字里选出一个字段,需要用圆括号括起来避免SQL解析器混淆
         eg:
         select person_info.name from author;  (x)
         select (person_info).name from author;
         

xml类型:存储XML数据类型。使用字符串类型也可以存储XML数据,但test类型不保证其中存储是合法XML数据。

Postgre 处理字符集的问题,在客户端与服务器端进行传递数据时,会自动进行字符集转换,如果两端字符集不一致,会自动进行字符集转换     
    
JSON类型:存储JSON(JavaScript Object Notion)类型数据,也可以使用text、varchar等类型存储JSON类型{
      JSON类型是把输出数据原封不动输入到数据库中,在存放前会对JSON类型进行语法检查,使用时需要重新解析数据;在JSON串中key之间多余空格、重复key值也会保留
      JSONB类型在存放时就会把解析成二进制类型;并且支持在其上建立索引,JSONB在使用时性能更高

当一个JSON字符串转换成JSONB类型,JSON字符串数据类型实际被转换成PostgreSQL 数据库类型

range:存储范围快速搜索数据,用于表示范围
       create table ipdb1(
         ip_begin inet,
         ip_end inet,
         area text,
         sp text);
       
      
对象标识符类型:oid 、regproc、regclass类型
伪类型:不能作为字段数据类型、但可以作为声明函s数参数或者结果类型
其他类型:一些不好分类的类型;例如UUID、pg_lsn类型

 

      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值