用户操作命令

登录

1、指定参数登录

1
psql -U username -d database_name -h host -W

参数含义: -U指定用户 -d要连接的数据库 -h要连接的主机 -W提示输入密码。

2、使用postgres同名用户后登录

1
2
su username
psql

注意:

当不指定参数时psql使用操作系统当前用户的用户名作为postgres的登录用户名和要连接的数据库名。所以在PostgreSQL安装完成后可以通过以上方式登录。

修改密码

1
2
3
su - postgres 
psql
\password postgres

创建用户

1、系统命令行创建

1
createuser username 

2、PostgresSQL命令行创建(使用CREATE ROLE)

1
CREATE ROLE rolename;

3、PostgresSQL命令行创建(使用CREATE USER)

1
CREATE USER testuser WITH PASSWORD 'testuser';

CREATE USERCREATE ROLE的区别在于,CREATE USER指令创建的用户默认是有登录权限的,而CREATE ROLE没有。

允许远程访问

pg_hba.conf添加以下命令,配置用户的访问权限:

1
2
3
# TYPE  DATABASE    USER    ADDRESS       METHOD
local all all trust
host all all 0.0.0.0/0 trust

postgresql.conf添加以下命令:

1
2
3
4
5
listen_addresses = '*'
port=5432
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'

数据库操作命令

创建数据库

1
CREATE DATABASE testuser_1 OWNER testuser;

切换数据库

相当于mysql的use dbname

1
\c dbname

列举数据库

相当于mysql的show databases

1
\l

删除数据库

1
drop database [数据库名];

列举表

相当于mysql的show tables

1
\dt

查看表结构

相当于desc tblname,show columns from tbname

1
\d tblname

查看索引

1
\di

表操作命令

重命名一个表

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
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......); 

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

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

删除表中某行数据

1
2
delete from [表名] where [该行特征]; 
delete from [表名];--删空整个表

创建表

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