GreenPlum的那些事《四》——增删改查
2023-02-26 10:20:08 时间
上文我们介绍了GPDB的常用管理操作,今天我们来说下它的增删改查。这是对于一个数据库最基本的功能了,然而GPDB有它自己的特性,我们一起来看下。
插入数据
按列插入数据:
(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>)
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!
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- 学生数据库管理系统
- SpringDataJpa 用MySQL语句怎么分页,spring全家桶SpringDataJpa 用MySQL语句怎么分页
- Docker创建MySQL容器模板命令
- Elasticsearch对应MySQL的对应关系
- 使用SpringDataJpa保存(save)报错误:SQL Error: 1062, SQLState: 23000 控制台会报:Duplicate entry ‘数‘ for key ‘PRIMA
- Navicat Premium 连接sqlserver数据库时提示安装Client失败,解决方案
- Mysql查询当前用户所有数据库语句(SHOW DATABASES)
- MySQL语句-查看当前数据库有哪些表(SHOW TABLES)
- MySQL5.0版本以上新增的 information_schema 数据库是什么?
- MariaDB数据库备份之逻辑备份
- MariaDB数据库创建用户
- MariaDB数据库给用户授权
- MariaDB数据库刷新权限表命令
- MariaDB数据库删除用户命令
- PhpStudy 2016搭建-sqli-libs靶场
- MySQL手动注入步骤
- Pikachu靶场-SQL注入-数字型注入(post)过关步骤
- Pikachu靶场-SQL注入-字符型注入(get)过关步骤
- 利用SQL注入漏洞实现MySQL数据库读写文件
- Kali-工具-sqlmap常见用法