PSQL指令
# PSQL指令 #
**常用快捷键:**
缩进:tab
删除缩进:shift + tab
添加注释:ctrl + k
删除注释:ctrl + shift + k
执行语句:F5
解释语句:F7
大写:ctrl + u
小写:ctrl + shift + u
**快捷指令\系列:**
\l:列出所有的数据库;
\c DatabaseName:连接数据库;
\dt:连接进入到某个数据库后,使用此命令查看数据库中的所有表;
\d TableName:查看某个表的描述,此命令可以用来查看某个表中的列元素和相应的数据类型;
\d+ tableName:查看指定表的基本情况
\e:打开psql内置的文本编辑器,可以方便的编写脚本。这个编辑器使用了Vim环境,用这个Vim文本编辑器编写SQL脚本会很方便,保存之后退出,就能自动运行刚才在编辑器中保存的SQL命令,并返回结果;如果需要对刚执行的SQL命令进行修改,可以再次使用\e打开编辑器,里面的内容仍然是上一次保存的文本;
\q:退出psql。
\i+D:/ccc.sql:插入数据
查看PostgreSQL客户端工具psql编码:
postgres=# show client_encoding;
GBK
postgres=# \encoding
GBK
指定Postgresql会话的客户端编码:
postgres=# set client_encoding to 'utf8';
SET
postgres=# show client_encoding;
client_encoding
-----------------
UTF8
\du:查看所有用户
select current_user:查看当前用户
\h create use:获取该命令的语法帮助
—————————————————————————————————————————————————————————————————————————————————————
postgres-# \h create user
命令: CREATE USER
描述: 定义一个新数据库角色
语法:
CREATE USER 名称 [ [ WITH ] 选项 [ ... ] ]
选项可以是
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| BYPASSRLS | NOBYPASSRLS
| CONNECTION LIMIT 连接限制
| [ ENCRYPTED ] PASSWORD '口令' | PASSWORD NULL
| VALID UNTIL '时间戳'
| IN ROLE 角色名称 [, ...]
| IN GROUP 角色名称 [, ...]
| ROLE 角色名称 [, ...]
| ADMIN 角色名称 [, ...]
| USER 角色名称 [, ...]
| SYSID uid
————————————————————————————————————————————————————————————————————————————————————————
create user user_name:创建新的用户
如:create user user1 login encrypted password 'user1';
授予与回收
GRant <权限> on<对象> TO<用户>
授权:Grant Select on table student To user1
回收:Revoke Select on table student From user1
连接数据库, 默认的用户和数据库是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
创建数据库:
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,...)>;);
\copyright 显示 PostgreSQL 的使用和发行条款
\encoding [字元编码名称]
显示或设定用户端字元编码
\h [名称] SQL 命令语法上的说明,用 * 显示全部命令
\prompt [文本] 名称
提示用户设定内部变数
\password [USERNAME]
securely change the password for a user
\q 退出 psql