美文网首页GreenPlum的那些事
GreenPlum的那些事《四》——增删改查

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

作者: 数据社 | 来源:发表于2019-01-24 20:54 被阅读0次

上文我们介绍了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!

相关文章

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

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

  • mysql的插入语句

    MySQL增删改查之增insert、replace

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • 关于python的list的增查删改

    说到增查删改,想起了数据库,我们在关系型数据库当中就会对表进行增查删改。 在python当中我们也可以对list进...

  • 0812 A

    mongodb 增删改查 增: db.createCollection("name", {options:numb...

  • 增删改

    对于表中的操作,就是增删改查,查内容较多,这里先说增删改。 1.增(insert或者load) 即插入数据,多行插...

  • SQL查询结构总结

    SQL 增删改查 对数据库有修改的操作是:增删改 增 insert into 表名 values(); 删 del...

  • 2018-03-03

    rails c增删改查 增:user = User.create(name:'Jack', age:'18') 删...

  • 函数和增删改查(运用)

    增删改查 (基本命令) 1 . 增 inset(position,value)append(value)exten...

  • 表内容的操作

    对表数据进行增删改查(curd) 增(insert into): auto_increment自增长 SELECT...

网友评论

    本文标题:GreenPlum的那些事《四》——增删改查

    本文链接:https://www.haomeiwen.com/subject/svnujqtx.html