• 技术文章 >数据库 >PostgreSQL

    PostgreSQL数组类型怎么定义

    月亮邮递员月亮邮递员2020-03-28 16:08:02原创3049

    PostgreSQL数组类型怎么定义

    PostgreSQL支持表的字段使用定长或可变长度的一维或多维数组,数组的类型可以是任何数据库内建的类型、用户自定义的类型、枚举类型,以及组合类型。但目前还不支持 domain 类型。

    推荐:postgresql教程

    数组类型的定义就是通过在数组元素类型名后面附加中括号 [] 来实现的,中括号中可以给一个长度数字,也可以不给。

    定义指定多维数组的维度也是没有意义的,数组的维度是根据实际插入的数据来确定的,如下两个语句意义是一样的:

    CREATE TABLE test1 (id int, col1 int[], col2 int[10], col3 text[][]);
    CREATE TABLE test2 (id int, col1 int[10], col2 int[], col3 text[]);

    1、输入数组值

    可以使用 ARRAY 构造器语法输入数据,一个数组构造器是一个表达式,它从自身的成员上构造一个数组值。

    一个简单的数组构造器由关键字 ARRAY、[、一个或多个表示数组元素值的表达式(用逗号分隔)、] 组成

    INSERT INTO test values(1, ARRAY['os', 'dba']);
    
    INSERT INTO test values(1, ARRAY['os"dba', '123"456']);
    
    INSERT INTO test values(1, ARRAY['os''dba', '123''456']);
    
    // 多维数组,在向多维数组插入值时,各个维度的元素个数必须相同,否则会报错
    INSERT INTO test values(1, ARRAY[['os', 'dba'],['dba', 'os']]);

    2、访问数组

    默认情况下,数组的下标是从 1 开始的,但也可以指定下标的开始值,如下:

    CREATE TABLE test02 (id int[]);
    INSERT INTO test02 values('[2:4] = {1, 2, 3}');
    SELECT id[2], id[3], id[4] FROM test02;

    指定上下标的格式为:

    '[下标:上标] = [元素值1,元素值2,元素值3,...]'

    可以使用数组的切片,如下所示:

    SELECT id, col[1:2] FROM test02;

    更多技术请关注Python视频教程

    专题推荐:postgresql 数组类型 定义
    上一篇:PostgreSQL远程不能连接数据库怎么办 下一篇:PostgreSQL如何行转列

    相关文章推荐

    • PostgreSQL怎么提前缓存数据• PostgreSQL怎么导入sql文件• PostgreSQL怎么查询数据库• PostgreSQL远程不能连接数据库怎么办

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网