GreeenPlum数据库入门初体验

公司需要用到OGG 传输Oracle数据到GreenPlum上。
所以在公司主机上安装了一个GreenPlum假分布式集群

path: /opt/greenplum-db

配置文件 /app/gpdata/master/gpseg-1/pg_hba.conf
主要是控制远程或者本地登录Greenplum的权限。
修改过该文件后需要更新配置,使用下面的命令是配置生效:
gpstop -u
dataPath:/app/gpdata/gp1/2/3/4/master

进入CLI:
su - gpadmin (由主用户切换到gpadmin用户)
gpadmin

psql -p 5432 (默认使用gpadmin登录,超级管理员)

新创建用户:

CREATE ROLE gpdemo WITH LOGIN;
(The only difference between CREATE ROLE and CREATE USER is that LOGIN is assumed by default with CREATE USER, whereas NOLOGIN is assumed by default with CREATE ROLE.)

创建schema:

CREATE schema testschema;

The Default “Public” Schema
Every database has a default schema named public. If you do not create any schemas, objects are created in the public schema. All database roles (users) have CREATE and USAGE privileges in the public schema. When you create a schema, you grant privileges to your users to allow access to the schema. 这段是关于public schema的说明。 每个新建的数据库都会默认有个schema叫public。 该库的用户自然用户 public的权限。即public下的表对于该库的用户都可以读写。

将database和schema的权限给用户:

GRANT ALL ON DATABASE testgp TO gpdemo;
GRANT ALL ON SCHEMA testschema to gpdemo;
如果要想该用户能够登入GP数据库,修改pg_hba.conf文件
在最下方加一行:
local all gpdemo trust
保存退出,然后执行命令 gpstop -u

常用命令:

连接数据库, 默认的用户和数据库是postgres
psql -U user -d dbname

切换数据库,相当于MySQL的use dbname
\c dbname

列举数据库,相当于mysql的show databases
\l

列举表,相当于mysql的show tables
\dt

查看表结构,相当于desc tblname,show columns from tbname
\d tblname

查看索引
\di

查看函数
\df

创建数据库
create database [数据库名];

删除数据库:
drop database [数据库名];

*重命名一个表:
alter table [表名A] rename to [表名B];

*删除一个表:
drop table [表名];

*在已有的表里添加字段:
alter table [表名] add column [字段名] [类型];

*删除表中的字段:
alter table [表名] drop column [字段名];

*重命名一个字段:
alter table [表名] rename column [字段名A] to [字段名B];

*给一个字段设置缺省值:
alter table [表名] alter column [字段名] set default [新的默认值];

*去除缺省值:
alter table [表名] alter column [字段名] drop default;

在表中插入数据:
insert into 表名 ([字段名m],[字段名n],…) values ([列m的值],[列n的值],…);

修改表中的某行某列的数据:
update [表名] set [目标字段名]=[目标值] where [该行特征];

删除表中某行数据:
delete from [表名] where [该行特征];
delete from [表名];–删空整个表

创建表:
create table ([字段名1] [类型1] <references 关联表名(关联的字段名)>;,[字段名2] [类型2],…<,primary key (字段名m,字段名n,…)>;);

显示 PostgreSQL 的使用和发行条款
\copyright

显示或设定用户端字元编码
\encoding [字元编码名称]

SQL 命令语法上的说明,用 * 显示全部命令
\h [名称]

提示用户设定内部变数
\prompt [文本] 名称

修改用户密码
\password [USERNAME]

退出 psql
\q

可以使用pg_dump和pg_dumpall来完成。比如备份sales数据库:
pg_dump drupal>/opt/Postgresql/backup/1.bak

创建表:
\c testgp (连接到 testgp这个库)
\dt 查看testgp库下所有表
CREATE TABLE DBUS_COPY(
ID INT NOT NULL,
NAME varchar(100) NOT NULL,
AGE INT,
PRIMARY KEY(ID));

COPY命令将本地文件导入到GP中,但是文件中的数据类型有要求

COPY dbus_copy FROM ‘/ogg/dirout/pump_DBUS_DBUS_COPY_2020-02-24_14-18-15_00000_data.dsv’ WITH csv;

COPY dbus_copy FROM ‘/ogg/dirout/pump_DBUS_DBUS_COPY_2020-02-24_14-54-54_00002_data.dsv’ WITH csv;

COPY dbus_copy FROM ‘/ogg/dirout/pump_DBUS_DBUS_COPY_2020-02-24_14-57-44_00004_data.dsv’ WITH csv;

CREATE TABLE “DBUS_COPY”(
“ID” INT NOT NULL,
“NAME” varchar(100) NOT NULL,
“AGE” INT,
PRIMARY KEY(“ID”)
);

\d “DBUS_COPY”; 查看表结构

      Table "public.DBUS_COPY"

Column | Type | Modifiers
--------±-----------------------±----------
ID | integer | not null
NAME | character varying(100) | not null
AGE | integer |
Indexes:
“DBUS_COPY_pkey” PRIMARY KEY, btree (“ID”)
Distributed by: (“ID”)

public.DBUS_COPY public是testgp库下的schema

create schema testgp;
在testgp下创建新表
CREATE TABLE testgp.“DBUS_COPY”(
“ID” INT NOT NULL,
“NAME” varchar(100) NOT NULL,
“AGE” INT,
PRIMARY KEY(“ID”)
);

CREATE TABLE “DBUS”.“DBUS_COPY” (
“ID” NUMBER,
“NAME” VARCHAR2(100) NOT NULL ENABLE,
“AGE” NUMBER,
CHECK (“ID” IS NOT NULL) ENABLE,
PRIMARY KEY (“ID”));

CREATE TABLE “DBUS_COPY”(
“ID” INT NOT NULL,
“NAME” varchar(100) NOT NULL,
“AGE” INT
);

\l 查看所有数据库
\c DBUS 连接DBUS
DBUS库下面
SELECT * FROM “public”.“DBUS_COPY”;

CREATE TABLE dbus.dbus_copy(
“ID” INT NOT NULL,
“NAME” varchar(100) NOT NULL,
“AGE” INT,
PRIMARY KEY(“ID”));

查看某个数据库下所有的schema:
SELECT table_schema FROM information_schema.tables WHERE table_type=‘BASE TABLE’ and table_catalog=’${dbName}’ GROUP BY table_schema ORDER BY table_schema;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值