pg数据库常用命令

pg数据库常用命令

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

大家好,今天来介绍pg数据库常用命令(linux 关闭数据库)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!

Linux关闭gp数据库命令

shutdown命令是最常用的关闭系统命令,不仅可以用于立即关闭系统,还可以在指定时间关闭系统。
gp数据库常用操作:1、判脊启动数据库:gpstartgpstart正常起数据库gpstart-R维护模式,普通用户无法登陆,只有超级用户能登陆gpstart-m只起master,起了后,只能用utility模式去登录master。utility模式登录,只连某个实例。
2、停止数据库:gpstopgpstop正常停止数据,如果数据库还有连接,就无法停止gpstop-Msmart同gpstopgpstop-Mfast停止数据库,如果有连接的话,会发cancle信号,等待连接中断,如果等待超时,则强制中断梁帆连接gpstop-Mimmediate强制中断掘渣渗所有连接gpstop-r重启数据库gpstop-m只停master,最直接的禁止其他用户登陆数据库的方法
3、检查数据库状态:gpstategpstate查看基本的数据库状态统计数据gpstate-s查看数据库primary和mirror状态的详细信息gpstate-e查看失败实例的具体信息gpstate-m查看mirror实力状态gpstate-f查看standby的状态

linux怎么用命令登陆postgres

(1)用户实用程序:

createdb 创建一个新的PostgreSQL的数据库(和SQL语句:CREATE DATABASE 相同)

createuser 创建一个新的PostgreSQL的用户(和SQL语句:CREATE USER 相同)

dropdb 删除数据库

dropuser 删除穗空用户

pg_dump 将PostgreSQL数据库导出到一个脚本文件

pg_dumpall 将所有的PostgreSQL数据库导出到一个脚本文件

pg_restore 从一个由pg_dump或pg_dumpall程序导出的脚本文件中恢复PostgreSQL数据库

psql 一个基于命令行的PostgreSQL交互式客户端程序

vacuumdb 清理和分析一个PostgreSQL数据库,它是客户端程序psql环境下SQL语句VACUUM的shell脚本封装,二者功能完全相同

(2)系统实用程序

initdb 创建一个用于存储数据库的PostgreSQL数据目录,并创建预定义的模板数据库template0和游族困template1,生成共享目录表 catalog;此程序通常只在安装PostgreSQL时运行一次

initlocation 创建一个辅助的PostgreSQL数据库存储区域

ipcclean 从停止的PostgreSQL服务器中清神念除共享内在和孤立信号标志

pg_ctl 启动、停止、重启PostgreSQL服务(比如:pg_ctl start 启动PostgreSQL服务,它和service postgresql start相同)

pg_controldata 显示PostgreSQL服务的内部控制信息

postgres PostgreSQL单用户模式的数据库服务

postmaster PostgreSQL多用户模式的数据库服务

4.这里面最重要的是psql这个客户端程序最为重要。启用客户端程序psql的方法是:

切换到PostgreSQL预定义的数据库超级用户postgres,启用客户端程序psql,并连接到自己想要的数据库,比如说:

psql template1

出现以下界面,说明已经进入到想要的数据库,可以进行想要的操作了。

template1=#

5.在数据库中的一些命令:

template1=# \l 查看系统中现存的数据库

template1=# \q 退出客户端程序psql

template1=# \c 从一个数据库中转到另一个数据库中,如template1=# \c sales 从template1转到sales

template1=# \dt 查看表

template1=# \d 查看表结构

template1=# \di 查看索引
[基本数据库操作]========================
*创建数据库:
create database [数据库名];

*查看数据库列表:
\d

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

创建表:
create table ([字段名1] [类型1] ;,[字段名2] [类型2],......;);

*查看表名列表:
\d

*查看某个表的状况:
\d [表名]

*重命名一个表:
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 [表名];--删空整个表

6.要注意随时对数据库进行清理、收回磁盘空间并更新统计信息,使用下面的命令就搞定!

vaccumdb -d sales -z

-a 对所有的数据库操作

-z 保证不断地删除失效的行,节约磁盘空间,将统计信息更新为最近的状态

7.PostgreSQL用户认证

PostgreSQL数据目录中的pg_hba.conf的作用就是用户认证,可以在/var/lib/pgsql/data中找到。

有以下几个例子可以看看:

(1)允许在本机上的任何身份连接任何数据库

TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

local all all trust(无条件进行连接)

(2)允许IP地址为192.168.1.x的任何主机与数据库sales连接

TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

host sales all 192.168.1.0 255.255.255.0 ident sameuser(表明任何操作系统用户都能够以同名数据库用户进行连接)

8.看了那么多,来一个完整的创建PostgreSQL数据库用户的示例吧

(1)进入PostgreSQL高级用户

(2)启用客户端程序,并进入template1数据库

psql template1

(3)创建用户

template1=# CREATE USER hellen WITH ENCRYPED PASSWORD'zhenzhen'

(4)因为设置了密码,所以要编辑pg_hba.conf,使用户和配置文件同步。

在原有记录上面添加md5

local all hellen md5

(4)使用新用户登录数据库

template1=# \q

psql -U hellen -d template1

PS:在一个数据库中如果要切换用户,要使用如下命令:

template1=# \!psql -U tk -d template1

9.设定用户特定的权限

还是要用例子来说明:

创建一个用户组:

sales=# CREATE GROUP sale;

添加几个用户进入该组

sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3;

授予用户级sale针对表employee和products的SELECT权限

sales=# GRANT SELECT ON employee,products TO GROUP sale;

在sale中将用户user2删除

sales=# ALTER GROP sale DROP USER sale2;

10.备份数据库

可以使用pg_dump和pg_dumpall来完成。比如备份sales数据库:

pg_dump sales>/home/tk/pgsql/backup/1.bak

求postgreSQL 的数据库的表数据导入导出的sql语句谢谢!

Postgresql数据的者仔导入和导出,以及copy命令介绍

如何导出PostgreSQL数据库中首敏汪的数据:
pg_dump -U postgres -f dump.sql mydatabase
具体某个表
pg_dump -U postgres -t mytable -f dump.sql mydatabase

导入数据时首先创建数据库再用psql导入:
createdb newdatabase
psql -d newdatabase -U postgres -f dump.sql

把数据按照自己所想的方式导出,拿租强大的copy命令:
echo "copy students to? stdout DELIMITER ''"psql schoolhead
(students为表名,school为库名,各个字段以分隔)
echo 'copy (select * from students order by age limit 10) to stdout;' psql school

求一份openGauss常用SQL示例 做个简单的入门练手测试~

如下罗列了一些创建、增、删、改、查相关,请参考(涉及的具体语法及参数自行查阅官方文档):
--1.CREATE USER
--创建用户jim,登录密码为xxxxxxxxx。
openGauss=# CREATE USER jim PASSWORD 'xxxxxxxxx';

--下面语句与上面的等价。
openGauss=# CREATE USER kim IDENTIFIED BY 'xxxxxxxxx';

--如果创建有“创建数据库”权限的用户,则需要加CREATEDB关键字。
openGauss=# CREATE USER dim CREATEDB PASSWORD 'xxxxxxxxx';

--将用户jim的登录密码由xxxxxxxxx修改为Abcd@123。
openGauss=# ALTER USER jim IDENTIFIED BY 'Abcd@123' REPLACE 'xxxxxxxxx';

--为用户jim追加CREATEROLE权限。
openGauss=# ALTER USER jim CREATEROLE;

--将enable_seqscan的值设置为on, 设置成功后,在下一会话中生效。
openGauss=# ALTER USER jim SET enable_seqscan TO on;

--重置jim的enable_seqscan参数。
openGauss=# ALTER USER jim RESET enable_seqscan;

--锁定jim帐户。
openGauss=# ALTER USER jim ACCOUNT LOCK;

--删除用户。
openGauss=# DROP USER kim CASCADE;
openGauss=# DROP USER jim CASCADE;
openGauss=# DROP USER dim CASCADE;

--2.创建和管理数据库

--使用如下命令创建一个新的数据库db_tpcc。
openGauss=# CREATE DATABASE db_tpcc;

注:
•数据库名称遵循SQL标识符的一般规则。当前角色自动成为此新数据库的所有者。
•如果一个数据库系统用于承载相互独立的用户和项目,建议把它们放在不同的数据库里。
•如果项目或者用户是相互关联的,并且可以相互使用猜哪对方的资源,则应该把它们放在同一个数据库里,但可以规划在不同的模式中。模式只是一个纯粹的逻辑结构,某个模式的访问权限由权限系统模块控制。
•创建数据库时,若数据库名称长度超过63字节,server端会对数据库名称进行截断,保留前63个字节,因此建议数据库名称长槐答度穗明码不要超过63个字节。

--查看数据库
•使用\l元命令查看数据库系统的数据库列表。
openGauss=# \l

•使用如下命令通过系统表pg_database查询数据库列表。
openGauss=# SELECT datname FROM pg_database;

--修改数据库
用户可以使用如下命令修改数据库属性(比如:owner、名称和默认的配置属性)。
•使用以下命令为数据库设置默认的模式搜索路径。
openGauss=# ALTER DATABASE db_tpcc SET search_path TO pa_catalog,public;

--使用如下命令为数据库重新命名。
openGauss=# ALTER DATABASE db_tpcc RENAME TO human_tpcds;

--删除数据库
用户可以使用DROP DATABASE命令删除数据库。这个命令删除了数据库中的系统目录,并且删除了磁盘上带有数据的数据库目录。用户必须是数据库的owner或者系统管理员才能删除数据库。当有人连接数据库时,删除操作会失败。删除数据库时请先连接到其他的数据库。
使用如下命令删除数据库:
openGauss=# DROP DATABASE human_tpcds;

--3.CREATE TABLE
--表是建立在数据库中的,在不同的数据库中可以存放相同的表。甚至可以通过使用模式在同一个数据库中创建相同名称的表。创建表前请先规划存储模型。
openGauss=# CREATE TABLE customer_t1
(
c_customer_sk integer,
c_customer_id char(5),
c_first_name char(6),
c_last_name char(8)
);

当结果显示为如下信息,则表示创建成功。
CREATE TABLE

其中c_customer_sk 、c_customer_id、c_first_name和c_last_name是表的字段名,integer、char(5)、char(6)和char(8)分别是这四字段名称的类型。

--4.向表中插入数据
--向表中插入数据前,意味着表已创建成功。
向表customer_t1中插入一行:
数据值是按照这些字段在表中出现的顺序列出的,并且用逗号分隔。通常数据值是文本(常量),但也允许使用标量表达式。
openGauss=# INSERT INTO customer_t1(c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', 'Grace');

如果用户已经知道表中字段的顺序,也可无需列出表中的字段。例如以下命令与上面的命令效果相同。
openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello', 'Grace');

如果用户不知道所有字段的数值,可以忽略其中的一些。没有数值的字段将被填充为字段的缺省值。例如:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_first_name) VALUES (3769, 'Grace');
openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello');

用户也可以对独立的字段或者整个行明确缺省值:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', DEFAULT);
openGauss=# INSERT INTO customer_t1 DEFAULT VALUES;

如果需要在表中插入多行,请使用以下命令:
openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES
(6885, 'maps', 'Joes'),
(4321, 'tpcds', 'Lily'),
(9527, 'world', 'James');
如果需要向表中插入多条数据,除此命令外,也可以多次执行插入一行数据命令实现。但是建议使用此命令可以提升效率。

如果从指定表插入数据到当前表,例如在数据库中创建了一个表customer_t1的备份表customer_t2,现在需要将表customer_t1中的数据插入到表customer_t2中,则可以执行如下命令。
openGauss=# CREATE TABLE customer_t2
(
c_customer_sk integer,
c_customer_id char(5),
c_first_name char(6),
c_last_name char(8)
);

openGauss=# INSERT INTO customer_t2 SELECT * FROM customer_t1;

从指定表插入数据到当前表时,若指定表与当前表对应的字段数据类型之间不存在隐式转换,则这两种数据类型必须相同。

删除备份表
openGauss=# DROP TABLE customer_t2 CASCADE;
在删除表的时候,若当前需删除的表与其他表有依赖关系,需先删除关联的表,然后再删除当前表。

--5.更新表中数据
修改已经存储在数据库中数据的行为叫做更新。用户可以更新单独一行,所有行或者指定的部分行。还可以独立更新每个字段,而其他字段则不受影响。

使用UPDATE命令更新现有行,需要提供以下三种信息:
•表的名称和要更新的字段名
•字段的新值
•要更新哪些行

SQL通常不会为数据行提供唯一标识,因此无法直接声明需要更新哪一行。但是可以通过声明一个被更新的行必须满足的条件。只有在表里存在主键的时候,才可以通过主键指定一个独立的行。

建立表和插入数据的步骤请参考创建表和向表中插入数据。

需要将表customer_t1中c_customer_sk为9527的地域重新定义为9876:
openGauss=# UPDATE customer_t1 SET c_customer_sk = 9876 WHERE c_customer_sk = 9527;

这里的表名称也可以使用模式名修饰,否则会从默认的模式路径找到这个表。SET后面紧跟字段和新的字段值。新的字段值不仅可以是常量,也可以是变量表达式。

比如,把所有c_customer_sk的值增加100:
openGauss=# UPDATE customer_t1 SET c_customer_sk = c_customer_sk + 100;

在这里省略了WHERE子句,表示表中的所有行都要被更新。如果出现了WHERE子句,那么只有匹配其条件的行才会被更新。

在SET子句中的等号是一个赋值,而在WHERE子句中的等号是比较。WHERE条件不一定是相等测试,许多其他的操作符也可以使用。

用户可以在一个UPDATE命令中更新更多的字段,方法是在SET子句中列出更多赋值,比如:
openGauss=# UPDATE customer_t1 SET c_customer_id = 'Admin', c_first_name = 'Local' WHERE c_customer_sk = 4421;

批量更新或删除数据后,会在数据文件中产生大量的删除标记,查询过程中标记删除的数据也是需要扫描的。故多次批量更新/删除后,标记删除的数据量过大会严重影响查询的性能。建议在批量更新/删除业务会反复执行的场景下,定期执行VACUUM FULL以保持查询性能。

--6.查看数据
使用系统表pg_tables查询数据库所有表的信息。
openGauss=# SELECT * FROM pg_tables;

使用gsql的\d+命令查询表的属性。
openGauss=# \d+ customer_t1;

执行如下命令查询表customer_t1的数据量。
openGauss=# SELECT count(*) FROM customer_t1;

执行如下命令查询表customer_t1的所有数据。
openGauss=# SELECT * FROM customer_t1;

执行如下命令只查询字段c_customer_sk的数据。
openGauss=# SELECT c_customer_sk FROM customer_t1;

执行如下命令过滤字段c_customer_sk的重复数据。
openGauss=# SELECT DISTINCT( c_customer_sk ) FROM customer_t1;

执行如下命令查询字段c_customer_sk为3869的所有数据。
openGauss=# SELECT * FROM customer_t1 WHERE c_customer_sk = 3869;

执行如下命令按照字段c_customer_sk进行排序。
openGauss=# SELECT * FROM customer_t1 ORDER BY c_customer_sk;

--7.删除表中数据
在使用表的过程中,可能会需要删除已过期的数据,删除数据必须从表中整行的删除。

SQL不能直接访问独立的行,只能通过声明被删除行匹配的条件进行。如果表中有一个主键,用户可以指定准确的行。用户可以删除匹配条件的一组行或者一次删除表中的所有行。

使用DELETE命令删除行,如果删除表customer_t1中所有c_customer_sk为3869的记录:
openGauss=# DELETE FROM customer_t1 WHERE c_customer_sk = 3869;

如果执行如下命令之一,会删除表中所有的行。
openGauss=# DELETE FROM customer_t1;

openGauss=# TRUNCATE TABLE customer_t1;
全表删除的场景下,建议使用truncate,不建议使用delete。

删除创建的表:
openGauss=# DROP TABLE customer_t1;

分享到 :
相关推荐

新加坡服务器为什么比较受欢迎(新加坡服务器为什么比较受欢迎呢)

在有国际出口的服务器当中。相比于香港服务器。台湾服务器而言。新加坡服务器的受欢迎程度...

虚拟主机每月流量是指什么(虚拟主机每月流量是指什么意思)

虚拟主机每月流量指:虚拟主机每月流量是指在一个月的期间内云服务运营商所提供的月流量数...

深圳主机租用(深圳服务器租赁)

深圳服务器租用和托管。都是国内企业发展业务或海外企业来华发展的的常见IT业务托管选择...

WAMP中文视频教程(wamp下载教程)

WAMP是指在Windows服务器上使用Apache。MySQL和PHP的集成安装环...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注