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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章