一、PostgreSQL服务管理命令
1、pg_ctl——PGSQL启动与停止命令
pg_ctl start | stop | restart | reload | status | kill | register | unregister [-D] [-l] [-m] [-w]
pg_ctl start -D /data/postgresql/data/
pg_ctl stop -D /data/postgresql/data/ -m fast
#-D datadir:指定数据库文件系统路径,如果忽略则是PGDATA变量所指定的路径
#-l filename:指定服务器日志输出附加文件,如果不存在则自动创建,该文件默认不允许其他用户访问
#-m mode:关闭模式,分为smart、fast、immediate三种模式,可以用首字母简写,通常使用fast模式
#-w:启动或者停止服务所等待的超时时间
2、psql——PGSQL客户端命令
psql -h192.168.0.103 -U postgres -p5432 -d linuxe
#-U:指定用户名
#-p:指定服务端口
#-h:指定服务地址
#-d:指定连接数据库
#-f:导入指定的sql
#连接参数也可以用环境变量指定,这样就不用每次手写参数
export PGDATABASE=linuxe
export PGHOST=192.168.0.103
export PGPORT=5432
export PGDUSER=postgres
3、\help命令——用于查看各个子命令的语法帮助
\help create
\help create databse
\help create user
4、\l命令——也就是list,用于列出所有已创建的数据库,支持通配符过滤
\l
\l + #显示的信息更完整,包含了数据库大小、所有者、权限、表空间等
5、\d 命令——也就是display,用于查看数据库信息,支持通配符过滤
\d #列出当前库下的所有表
\d table_name #跟上表名显示表结构,支持通配符
\db #显示所有表空间
\dn #列出所有schema
\du #显示所有用户或角色,也可以写为\dg
\dp table_name #显示表的权限分配情况,也可以跟+号显示更详细
6、\i命令——也就是import,执行指定SQL文件
\i /data/test.sql
7、\q命令——退出数据库
8、\c命令——用于切换用户或者数据库
\c tanglu #切换到tanglu用户
\c postgres postgres #使用postgres用户切换到postgres,前面是库名,后面是用户名
9、\password命令——用于修改用户密码
#方法1
\password tanglu #交互形式修改tanglu用户密码
#方法2
alter user tanglu with password '123456'
二、PostgreSQL的DDL、DML语法
1、create database命令——创建库,相比MySQL多了一个owner的选项
CREATE DATABASE db_linuxe [ OWNER = user_name] #如果不写owner信息,该库默认属于当前执行命令的用户
2、create user命令——创建用户并设置用户权限和密码信息等
CREATE USER name [ [ WITH ] option [ ... ] ]
CREATE USER tanglu WITH PASSWORD '123456' SUPERUSER #使用PASSWORD选项来创建密码,和mysql的identified不同
CREATE USER tom WITH PASSWORD '123456' SUPERUSER; #创建一个超管用户
3、GRANT命令——为数据库用户授权,和MySQL类似的
GRANT CREATE ON DATABASE db_linuxe TO "user_name";
4、alter database命令——修改数据库各种参数
ALTER DATABASE db_linuxe CONNECTION LIMIT 10; #修改数据库最大连接数为10
ALTER DATABASE db_linuxe RENAME TO new_name; #修改数据库名为new_name
ALTER DATABASE db_linuxe OWNER TO new_user; #修改数据库属主
ALTER DATABASE db_linuxe SET TABLESPACE new_space; #修改表空间
ALTER DATABASE db_linuxe SET configuration_parameter TO new_value #修改配置信息
5、CREATE SCHEMA命令——建立SCHEMA,这个类似于名称空间,在每个database下可以建立多个SCHEMA,然后每个schema下又可以存在不同的表
create user tanglu;
create schema linuxe authorization tanglu;
\dn linuxe #查看指定schema下的信息
6、DROP DATABASE命令——删除数据库
DROP DATABASE db_linuxe;
7、CREATE TABLE命令——创建表,在PGSQL中由于多了一层SCHEMA的概念,所以建表的时候要多写一个SCHEMA信息,否则会创建在默认SCHEMA中
CREATE TABLE schema_name.table_name(
ID INT PRIMARY KEY NOT NULL,
NAME CHAR(50) NOT NULL
);