中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL -- 數組類型操作

發布時間:2020-07-06 18:14:38 來源:網絡 閱讀:20803 作者:朱飛東 欄目:MySQL數據庫

一、數組類型創建表

數組類型,要求數組內的元素屬于同一種類型,當出現No function matches the given name and argument types. You might need to add explicit type casts.報錯的時候,說明 list 的格式和插入數據或者修改數據的格式不同導致的, 類型很重要,需要保證類型相同才可以操作
 

1.1、建表指定數組類型

只需要在表字段類型后面加'[]'

postgres=# create table test1 (
    id serial, 
    arr int[], 
    name varchar(10)[], 
    age char(10)[], 
    score float[]
    ); 

postgres=# \d+ test1;
                                                 Table "public.test1"
     Column |          Type           |                     Modifiers                      | Storage  | Stats target | Description 
--------+-------------------------+----------------------------------------------------+----------+--------------+-------------
 id     | integer                 | not null default nextval('test1_id_seq'::regclass) | plain    |              | 
 arr    | integer[]               |                                                    | extended |              | 
 name   | character varying(10)[] |                                                    | extended |              | 
 age    | character(10)[]         |                                                    | extended |              | 
 score  | double precision[]      |                                                    | extended |              | 

 

1.2、數據插入

postgres=# insert into test(id, uid) values(3, '{1, 2, 3}');        插入數組方式1
postgres=# insert into test(id, uid) values(3, array[20, 30]::int8[]);   插入數組方式二

1.3、修改數組:

postgres=# update test set uid = uid || '{0}';    后面追加一個數組
postgres=# update test set uid='{0,0}' || uid;   在前面插入一個數組
postgres=# update arr_test set uid=array_append(uid, '1'::int);   指明類型追加一個數
postgres=# update arr_test set uid=array_append(uid, 1);   按默認int類型追加一個數
postgres=# update arr_test set uid=array_prepend('1'::int, uid);     在前面插入一個數

1.4、刪除數組中的數據

postgres=# update arr_test set uid=array_remove(uid, '1'::int);  指明類型移除指定的數

1.5、查找數組中的數據

postgres=# select * from test where 20=any(uid);    #uid數組中存在20的row
postgres=# select * from test where uid && array[20, 1]::int8[];   uid數組中和array[20, 1]存在交集的
postgres=# select * from arr_test where uid@>'{1, 2}';   uid 數組中同時包含[1, 2]的
postgres=# select * from arr_test where uid<@'{1, 2}';   uid 數組被[1, 2]包含的

postgres=# select * from arr_test where 2=uid[1]; 使用uid 數組下標查詢,下標是從1開始的
postgres=# select id, uid[2] from arr_test; 使用下標顯示

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张北县| 施甸县| 清丰县| 隆昌县| 威信县| 永州市| 丹江口市| 绍兴市| 天津市| 成都市| 龙江县| 泽普县| 宜丰县| 垣曲县| 上思县| 和静县| 翁牛特旗| 怀集县| 布尔津县| 灵寿县| 内丘县| 华安县| 廉江市| 东源县| 德庆县| 余干县| 福清市| 象山县| 肥西县| 石城县| 宁河县| 泽普县| 刚察县| 钟山县| 云霄县| 尉犁县| 武宣县| 巴彦淖尔市| 金川县| 嫩江县| 富顺县|