postgresql数组(2)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了postgresql数组(2),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3101字,纯文字阅读大概需要5分钟。
内容图文
![postgresql数组(2)](/upload/InfoBanner/zyjiaocheng/565/0164b70d48874680b828d228f89f5b08.jpg)
8.10.4. 修改数组 一个数组可以完全被代替: UPDATE sal_emp SET pay_by_quarter = '{25000,25000,27000,27000}' WHERE name = 'Carol'; 或者使用 ARRAY 表达式语法: UPDATE sal_emp SET pay_by_quarter = ARRAY[25000,25000,27000,27000] WHERE name = 'Ca
8.10.4. 修改数组
一个数组值可以完全被代替:
UPDATE sal_emp SET pay_by_quarter = '{25000,25000,27000,27000}' WHERE name = 'Carol';
或者使用 ARRAY 表达式语法:
UPDATE sal_emp SET pay_by_quarter = ARRAY[25000,25000,27000,27000] WHERE name = 'Carol';
或者只是更新某一个元素:
UPDATE sal_emp SET pay_by_quarter[4] = 15000 WHERE name = 'Bill';
或者更新某个片断:
UPDATE sal_emp SET pay_by_quarter[1:2] = '{27000,27000}' WHERE name = 'Carol';
我们可以通过给一个和已存在的元素相邻元素赋值的方法, 或者是向已存在的数据相邻或重叠的区域赋值的方法来扩大一个数组。 比如,如果一个数组 myarray 当前有 4 个元素,那么如果我们给 myarray[5] 赋值后,它就有五个元素。目前,这样的扩大只允许多一维数组进行, 不能对多维数组进行操作。
数组片段赋值允许创建不使用一为基的下标的数组。 比如,我们可以给 array[-2:7] 赋值, 创建一个脚标值在 -2 和 7 之间的数组。
新的数组值也可以用连接操作符 || 构造。
SELECT ARRAY[1,2] || ARRAY[3,4]; ?column? ----------- {1,2,3,4} (1 row) SELECT ARRAY[5,6] || ARRAY[[1,2],[3,4]]; ?column? --------------------- {{5,6},{1,2},{3,4}} (1 row)
连接操作符允许把一个元素压入一个一维数组的开头或者结尾。它还接受两个 N 维的数组,或者一个 N 维和一个 N+1 维的数组。
在向一个一维数组的开头压入一个元素后,结果是这样的一个数组: 它的低界下标等于右手边操作数的低界下标减一,如果向一个一维数组的结尾压入一个元素, 结果数组就是一个保持左手边操作数低界的数组。比如:
SELECT array_dims(1 || ARRAY[2,3]); array_dims ------------ [0:2] (1 row) SELECT array_dims(ARRAY[1,2] || 3); array_dims ------------ [1:3] (1 row)
如果两个相同维数的数组连接在一起,结果保持左手边操作数的外层维数的低界下标。 结果是这样一个数组:它包含左手边操作数的每个元素,后面跟着右手边操作数的每个元素。比如:
SELECT array_dims(ARRAY[1,2] || ARRAY[3,4,5]); array_dims ------------ [1:5] (1 row) SELECT array_dims(ARRAY[[1,2],[3,4]] || ARRAY[[5,6],[7,8],[9,0]]); array_dims ------------ [1:5][1:2] (1 row)
如果一个 N 维的数组压到一个 N+1 维数组的开头或者结尾, 结果和上面的数组元素的情况类似。每个 N 维的子数组实际上都是 N+1 维数组的外层维数。比如:
SELECT array_dims(ARRAY[1,2] || ARRAY[[3,4],[5,6]]); array_dims ------------ [0:2][1:2] (1 row)
数组也可以用函数 array_prepend, 和 array_append, 以及 array_cat 构造。头两个只支持一维数组, 而 array_cat 支持多维数组。 请注意使用上面讨论的连接操作符要比直接使用这些函数好。实际上, 这些函数主要用于实现连接操作符。不过,在用户定义的创建函数里直接使用他们可能有必要。一些例子:
SELECT array_prepend(1, ARRAY[2,3]); array_prepend --------------- {1,2,3} (1 row) SELECT array_append(ARRAY[1,2], 3); array_append -------------- {1,2,3} (1 row) SELECT array_cat(ARRAY[1,2], ARRAY[3,4]); array_cat ----------- {1,2,3,4} (1 row) SELECT array_cat(ARRAY[[1,2],[3,4]], ARRAY[5,6]); array_cat --------------------- {{1,2},{3,4},{5,6}} (1 row) SELECT array_cat(ARRAY[5,6], ARRAY[[1,2],[3,4]]); array_cat --------------------- {{5,6},{1,2},{3,4}}
内容总结
以上是互联网集市为您收集整理的postgresql数组(2)全部内容,希望文章能够帮你解决postgresql数组(2)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。