Greenplum(postgresql)常用操作记录,命令行连接数据库,增删查改。

2年前 (2022) 程序员胖胖胖虎阿
390 0 0

1、连接数据库

psql -h IP地址 -p 端口 -U 用户名 -d 数据库名

例:psql -h 127.0.0.1 -p 5432 -U gpadmin -d testDB;

2、查看数据库操作

2.1、列举数据库:\l

2.2、选择数据库:\c 数据库名

2.3、查看该某个库中的所有表:\dt

2.4、切换数据库:\c 数据库名

2.5、查看某个库中的某个表结构:\d 表名

注:此处如果需要切换shcema可以使用:set search_path = 需要切换的shcema;

2.6、显示字符集:\encoding

2.7、退出psgl:\q

3、类sql操作

3.1、数据库操作

*创建数据库:

1

create database [数据库名];

*删除数据库:

1

drop database [数据库名];

3.2、表操作

*创建表:

1

create table ([字段名1] [类型1] ;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;);

*在表中插入数据:

1

insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);

此处不建议大量使用insert语句,GPDB官方文档指出对于append表最大127个并发实务操作,GP对于高并发并不合适!对于频繁的数据插入操作,可以使用copy命令。copy命令非常好玩,之后可以单独开一篇文章进行讲解。

*显示表内容:

1

select * from [表名];

*重命名一个表:

1

alter table [表名A] rename to [表名B];

*删除一个表:

1

drop table [表名];

*在已有的表里添加字段:

1

alter table [表名] add column [字段名] [类型];

*删除表中的字段:

1

alter table [表名] drop column [字段名];

*重命名一个字段:

1

alter table [表名] rename column [字段名A] to [字段名B];

*给一个字段设置缺省值:

1

alter table [表名] alter column [字段名] set default [新的默认值];

*去除缺省值:

1

alter table [表名] alter column [字段名] drop default;

*修改表中的某行某列的数据:

1

update [表名] set [目标字段名]=[目标值] where [该行特征];

*删除表中某行数据:

1

2

delete from [表名] where [该行特征];

delete from [表名]; // 删空整个表

GP数据库备份(导入导出):

*导出表结构

pg_dump -E UTF8 -s -v [数据库名] -n [shcema] > /1.ddl

*导出数据 pg_dump -E UTF8 -a -v [数据库名] -n [shcema] > /1.data

*导入

psql -U [用户名] -f /1.ddl [数据库名]

1、列出所有表名的查询语句

1

2

3

4

SELECT tablename FROM pg_tables

WHERE tablename NOT LIKE 'pg%'

AND tablename NOT LIKE 'sql_%'

ORDER BY tablename;

2、执行sql文件

1

postgres= # \i /root/db. sql         \i 命令用于执行一个外部的sql脚本文件。

3、导出数据库为外部的脚本

1

2

#/opt/PostgreSQL/8. 3/bin/ pg_dump - Upostgres - C - fdb. sql database

-C create -f 是导出后的文件名

4、postgresql 插入16进制数

1

INSERT INTO tableAAA VALUES( x'0001f' : : integer, '鉴权' , 'Authority' )

5、使用 TG_RELNAME 报错ERROR: syntax error at or near "$1" at character

1

2

Perhaps you will get some idea if you read the document:

37. 6. 4. Executing Dynamic Commands

改:执行动态语句

1

EXECUTE 'INSERT INTO TG_RELNAME VALUES (NEW.start_time , NEW.id , NEW.end_time)';

6、在PostgreSQL中如何删除重复记录

在PostgreSQL中删除重复记录其实很简单,不论有多少行重复,只要在要删除重复记录的表中table加一列rownum字段( id为table表中的主键) ,类型设置为serial类型即可,然后执行sql

1

2

3

delete from deltest where rownum not in(

select max(rownum) from deltest

);

相关文章

暂无评论

暂无评论...