pg-sql命令


sql语句学习网站

https://www.runoob.com/sql/sql-join.html

 

 

sql语句

select oid from pg_class where relname='foo';

select oid from pg_proc;

select * from pg_proc limit 1;

 

select * from pg_database;

select oid from pg_class where relname='pg_proc';

1255

 

SELECT pg_relation_filepath(oid), relpages FROM pg_class WHERE relname = 't1';

SELECT pg_relation_filepath(1255), relpages FROM pg_class WHERE relname = 'pg_proc';

base/15954/15576 | 130

 

 

create user wxy with password 'wxy123!@';

 

/usr/local/cn/base/1/15576 /usr/local/cn/base/15949/15576 /usr/local/cn/base/15954/15576 /var/lib/engine/data1/data/dn_3/base/15949/15576 /var/lib/engine/data1/data/dn_3/base/1/15576 /var/lib/engine/data1/data/dn_3/base/15954/15576

 

 

\l //查看所有的数据库

\c database_name //进入到database_name数据库

\d //查看当前数据库下所有的表

\d table_name //查看当前数据库下的table_name表

 

 

\d:列出当前数据库的所有表格

\da查看aggregate functions

\db查看tablespaces

\dc查看conversions

\dd查看descriptions

\df查看functions

\dg\du查看roles=SELECT rolname FROM pg_roles;

\di查看索引

\dl查看Large objects

\dn查看schemas

\do查看operators

\dt查看表

\dp查看privileges

\dx查看installed extensions

 

\dS 查看系统表

\dnS查看视图

 

 

 

 

\h:查看SQL命令的解释,比如\h select。 \?:查看psql命令列表。 \l:列出所有数据库。 \c [database_name]:连接其他数据库。 \d [table_name]:列出某一张表格的结构。 \e:打开文本编辑器。 \conninfo:列出当前数据库和连接的信息。

\ ! 执行shell命令

\password postgres设置密码

\q退出

 

创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码。

CREATE USER dbuser WITH PASSWORD 'password';

创建用户数据库,这里为exampledb,并指定所有者为dbuser。

CREATE DATABASE exampledb OWNER dbuser;

exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限。

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;

 

 

创建新表

CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);

插入数据

INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');

选择记录

SELECT * FROM user_tbl;

更新数据

UPDATE user_tbl set name = '李四' WHERE name = '张三';

删除记录

DELETE FROM user_tbl WHERE name = '李四' ;

添加栏位

ALTER TABLE user_tbl ADD email VARCHAR(40);

更新结构

ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;

更名栏位

ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;

删除栏位

ALTER TABLE user_tbl DROP COLUMN email;

表格更名

ALTER TABLE user_tbl RENAME TO backup_tbl;

删除表格

DROP TABLE IF EXISTS backup_tbl;

 

 

 

 

 

create database wxy;

create table family(id int, name char(20), birth int);

insert into family (id, name, birth) values (1, 'aaron', 1988);

insert into family (id, name, birth) values (2, 'karen', 1988);

insert into family (id, name, birth) values (3, 'lemon', 2015);

drop table family;

 

查看所有的schema

\dnS

SELECT nspname FROM pg_namespace;

获取当前连接数据库中可见的schema:

select * from information_schema.schemata;

 

 

查看所有的数据库

select datname from pg_database;


查看表

 SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

相当与mysql的describe table_name;   'table_name'是要查询的表的名字

select * from pg_tables where schenamane = 'schema_name'; 

 

查看所有的触发器

SELECT * FROM pg_trigger

 

 
 

 

alter参数修改guc参数

在设置之前做了alter操作,此操作优先级别较高。

比如:ALTER DATABASE postgres SET enable_hotkeys_collection TO on;

可通过此操作进行查询:select * from pg_db_role_setting;

可通过此操作进行复位:alter database postgres reset enable_hotkeys_collection;

 

 

基本sql语句

增删改查

insert into table (column1) values (value1);

delete from table where column1='value1' and column2='value2';

update table set column1=value1, column2=value2 where column3=value3;

select column1 from table;

 

 

\pset选项

设置表输出选项,可设置的选项可以是以下中的一个:format,border,expanded,fieldsep,footer,null,recordsep,tuples_only,title,tableattr,pager

fieldsep
指定在非对齐输出格式中使用的域分隔符。用那种方式,用户可以创建 tab 或者逗号分隔的输出,这种形式其他程序可能更喜欢。要设置 tab 为域分隔符,可以键入\pset fieldsep ‘\t’。默认的域分隔符是’|’(一个竖线)。

https://blog.csdn.net/pg_hgdb/article/details/78552656

\a

\pset fieldsep ','

此处需要gsql -A时候,指定为非对齐输出模式的时候,才会输出生效。

或者gsql -A -F fieldsep=','

gsql -A -F fieldsep=,

gsql -A -F ','

gsql -A -F , 

 

posted @ 2021-02-26 15:06  aaronwell  阅读(549)  评论(0)    收藏  举报