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!

目录
相关文章
|
4月前
|
SQL Java 数据库连接
java链接hive数据库实现增删改查操作
java链接hive数据库实现增删改查操作
158 0
|
4月前
|
SQL 数据库 索引
gorm普通的增删改查
gorm普通的增删改查
30 0
|
4月前
|
存储 BI 数据库
PowerApps教程-实现简单的增删改查
PowerApps是Microsoft提供的低代码开发平台,允许用户无需编写大量代码,通过直观的界面设计快速创建应用程序。通过PowerApps的数据连接功能,系统可以轻松地与其他Microsoft 365服务(如SharePoint、Excel)进行集成,实现数据的无缝交互。本文详细介绍了如何使用PowerApps快速开发一个支持增删改查的报表页面,采用SharePoint上的List作为数据源。
81 0
|
3月前
|
关系型数据库 MySQL 数据库
|
4月前
|
SQL 关系型数据库 MySQL
MySQL | 数据库的管理和操作【表的增删改查】(一)
MySQL | 数据库的管理和操作【表的增删改查】
|
4月前
|
SQL 关系型数据库 MySQL
MySQL | 数据库的管理和操作【表的增删改查】(二)
MySQL | 数据库的管理和操作【表的增删改查】(二)
|
13天前
|
API 数据库 Python
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法
|
17天前
|
JavaScript 前端开发 API
node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查
node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查
36 1
|
28天前
|
安全 数据库连接 数据库
Flask数据库操作实战:增删改查一网打尽
【4月更文挑战第15天】本文介绍了在Flask中进行数据库操作的方法,包括选择数据库扩展(如Flask-SQLAlchemy)、配置数据库、定义模型以及执行CRUD操作。通过Flask-SQLAlchemy的ORM功能,开发者可以方便地管理数据库表和记录。文章详细展示了如何创建模型、添加、查询、更新和删除数据,并提到了高级查询和关系映射。此外,还提及了数据库迁移工具Flask-Migrate以及性能优化和安全性问题。了解这些基础,有助于开发者构建高效、安全的Flask Web应用。
|
2月前
|
SQL 数据库连接 API
python链接数据库,实现数据增删改查
python链接数据库,实现数据增删改查
26 7