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
获取当前连接数据库中可见的schema:
查看所有的数据库
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 ,

浙公网安备 33010602011771号