GreenPlum的那些事《四》——增删改查

简介: 增删改查

上文我们介绍了GPDB的常用管理操作,今天我们来说下它的增删改查。这是对于一个数据库最基本的功能了,然而GPDB有它自己的特性,我们一起来看下。

插入数据

按列插入数据:

gptest=# create table products (name varchar(20),price numeric(10,2),product_no bigint)  distributed by  (product_no);                     
CREATE TABLE
gptest=# INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1);
INSERT 0 1
gptest=# select * from products;
  name  | price | product_no 
--------+-------+------------
 Cheese |  9.99 |          1
(1 row)

同事插入多列:

gptest=# INSERT INTO products (product_no, name, price) VALUES
gptest-#     (1, 'Cheese', 9.99),
gptest-#     (2, 'Bread', 1.99),
gptest-#     (3, 'Milk', 2.99);
INSERT 0 3
gptest=# select * from products;                                                                                                            name  | price | product_no 
--------+-------+------------
 Cheese |  9.99 |          1
 Cheese |  9.99 |          1
 Bread  |  1.99 |          2
 Milk   |  2.99 |          3
(4 rows)

我们看到了GPDB插入数据和普通数据库一样,那么是否可以像传统的DBMS一样用作OLTP系统呢。不是的!GPDB官方文档指出对于append表最大127个并发实务操作,所以你不能把它用作生产业务系统数据库,对于高并发并不合适!对于频繁的数据插入操作,我们通常不用insert操作,用copy命令,后面我们会介绍。

更新数据

gptest=# UPDATE products SET price = 10 WHERE price = 9.99;
UPDATE 2
gptest=# select * from products;
  name  | price | product_no 
--------+-------+------------
 Bread  |  1.99 |          2
 Cheese | 10.00 |          1
 Cheese | 10.00 |          1
 Milk   |  2.99 |          3
(4 rows)

删除数据

gptest=# DELETE FROM products WHERE price = 10;
DELETE 2
gptest=# select * from products;
 name  | price | product_no 
-------+-------+------------
 Milk  |  2.99 |          3
 Bread |  1.99 |          2
(2 rows)

清空表数据

gptest=# truncate table products;
TRUNCATE TABLE
gptest=# select * from products; 
 name | price | product_no 
------+-------+------------
(0 rows)

GPDB的删除和更新操作,并不是直接物理删除数据,而是对数据打了一个标志,select查询的时候看不到而已,GPDB会定时自动清空这些数据,回收空间。当然你也可以手动运行VACUUM 命令来手动回收空间。

VACUUM products

删除数据后,最好运行一下VACUUM,对于大表,不要轻易做VACUUM!

目录
相关文章
|
24天前
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
87 13
|
3月前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
45 1
|
3月前
|
存储 NoSQL API
使用Py2neo进行Neo4j图数据库的增删改查操作
使用Py2neo进行Neo4j图数据库的增删改查操作
152 5
|
3月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
55 5
|
4月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
3月前
|
JavaScript 前端开发 测试技术
[新手入门]todolist增删改查:vue3+ts版本!
【10月更文挑战第15天】[新手入门]todolist增删改查:vue3+ts版本!
|
4月前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
3月前
|
Java API 数据库
Data jpa 增删改查的方法分别有哪些
Data jpa 增删改查的方法分别有哪些
|
5月前
|
存储 SQL 监控
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
60 2
|
5月前
|
SQL 存储 监控
ADBPG&Greenplum成本优化问题之通过SQL查询找到数据库中所有的复制表如何解决
ADBPG&Greenplum成本优化问题之通过SQL查询找到数据库中所有的复制表如何解决
45 1