操作列存儲表
更新時間 2025-02-05 09:36:50
最近更新時間: 2025-02-05 09:36:50
分享文章
本頁介紹天翼云TeleDB數據庫操作列存儲表結構的語法,包括插入數據、更新數據、刪除數據,以及單表或多表查詢。
插入數據
列存表插入數據和行存表語法一致,使用insert into 語句對表插入數據,插入子查詢的結果示例如下:
teledb=# insert into t1 select 1, i, 'c_' || i from generate_series(1,20) i;
INSERT 0 20
teledb=# select * from t1;
a | b | c
---+----+------
1 | 1 | c_1
1 | 2 | c_2
1 | 3 | c_3
1 | 4 | c_4
1 | 5 | c_5
1 | 6 | c_6
1 | 7 | c_7
1 | 8 | c_8
1 | 9 | c_9
1 | 10 | c_10
1 | 11 | c_11
1 | 12 | c_12
1 | 13 | c_13
1 | 14 | c_14
1 | 15 | c_15
1 | 16 | c_16
1 | 17 | c_17
1 | 18 | c_18
1 | 19 | c_19
1 | 20 | c_20
(20 rows)
更新數據
列存表更新數據和行存表語法一致,使用update 命令對指定列或多列數據進行更新,對 t1 表的 b 字段更新操作如下:
teledb=# update t1 set b = b + a;
UPDATE 20
teledb=# select * from t1;
a | b | c
---+----+------
1 | 2 | c_1
1 | 3 | c_2
1 | 4 | c_3
1 | 5 | c_4
1 | 6 | c_5
1 | 7 | c_6
1 | 8 | c_7
1 | 9 | c_8
1 | 10 | c_9
1 | 11 | c_10
1 | 12 | c_11
1 | 13 | c_12
1 | 14 | c_13
1 | 15 | c_14
1 | 16 | c_15
1 | 17 | c_16
1 | 18 | c_17
1 | 19 | c_18
1 | 20 | c_19
1 | 21 | c_20
(20 rows)
刪除數據
列存表更新數據和行存表語法一致,使用delete 命令刪除指定條件的行記錄數據,刪除 t1 表中 b 字段值小于 3 的操作如下:
teledb=# delete from t1 where b < 3;
DELETE 1
teledb=# select * from t1;
a | b | c
---+----+------
1 | 3 | c_2
1 | 4 | c_3
1 | 5 | c_4
1 | 6 | c_5
1 | 7 | c_6
1 | 8 | c_7
1 | 9 | c_8
1 | 10 | c_9
1 | 11 | c_10
1 | 12 | c_11
1 | 13 | c_12
1 | 14 | c_13
1 | 15 | c_14
1 | 16 | c_15
1 | 17 | c_16
1 | 18 | c_17
1 | 19 | c_18
1 | 20 | c_19
1 | 21 | c_20
(19 rows)
單表查詢
列存表更新數據和行存表語法一致,使用select 命令查詢指定條件的行記錄數據,查詢 t1 表中 b 字段值大于 5 的操作如下:
teledb=# select * from t1 where b > 5 order by b desc limit 2;
a | b | c
---+----+------
1 | 21 | c_20
1 | 20 | c_19
(2 rows)
多表查詢
列存表更新數據和行存表語法一致,使用select 和 join 命令查詢指定條件的行記錄數據,查詢 t1 表和 t2 表中 a 字段值一樣的操作如下:
teledb=# SELECT t1.b, t2.b FROM t1 JOIN t2 ON t1.a = t2.a limit 10;
b | b
---+----
3 | 1
3 | 2
3 | 3
3 | 4
3 | 5
3 | 6
3 | 7
3 | 8
3 | 9
3 | 10
(10 rows)