连接数据库:

psql -h 127.0.0.1 -U postgres -d postgres -p 5432

创建用户:

CREATE USER sec WITH PASSWORD 'sec';

创建数据库:

方法1:使用createdb命令(类似psql),使用这个方法你必须得保证-U参数后面的用户拥有创建数据库的权限,否则会报错!

createdb -h localhost -p5432 -U postgres testdb1

方法2:使用SQL命令create database

CREATE DATABASE testdb2 WITH ENCODING='UTF8' OWNER=sec CONNECTION LIMIT=25

上面创建的数据库设置了数据库允许的最大连接数为25!

查看已有数据库:

方法1:使用\l命令查看数据库,在psql命令模式下面

方法2:使用SQL语句

SELECT datname FROM pg_database WHERE datistemplate = false;

pg_database是系统内建表,里面存放了数据库的基本信息:数据库名,编码,所属者id,模版等.

创建schema:

schema是数据库里面一个非常重要的概念,它包含了:索引,视图,序列,数据类型,运算和函数.

schema可以说是组成数据库对象的逻辑集合;

CREATE SCHEMA employee;

创建schema并且指定用户:

CREATE SCHEMA university AUTHORIZATION sec;

注意:一般情况下,当用户自己不创建schema的时候,数据库对象会默认存储在public schema下面,如果是指定schema的用户必须保存改用户是超级用户或者是拥有create权限.因为创建了schema你就会创建数据库对象等并且去使用创建的这个schema。

查看已经存在的schema:

使用psql命令\dn

查看当前的schema:

SELECT current_schema();

当创建的数据库与schema比较多的时候,我们可以指定模式(schema)的查询路径来提高性能:

ALTER DATABASE testdb2 SET search_path TO employee,university,public,pg_catalog;

注意:不管是否指定schema查询路径,pg_catalog模式是一定会查询的.

创建用户:

前面虽然演示了使用create user来创建用户,但是没有仔细说:

创建用户的方法有两种:

方法1:使用sql语句:create user

CREATE USER sec01 WITH PASSWORD 'r00t';

方法2:使用createuser命令,与createdb命令类似:

createuser sec03 -p5432 -hlocalhost -P -e

查看创建的用户:

方法1:使用psql命令\du

方法2:使用SQL语句

SELECT usename FROM pg_user;

复杂点的语句(显示友好一点):

SELECT u.usename AS "user name",CASE WHEN u.usecreatedb AND u.usesuper THEN CAST('super user' as pg_catalog.text) when u.usecreatedb then cast('create databse' as pg_catalog.text) else cast('' as pg_catalog.text ) END AS attribute FROM pg_catalog.pg_user u;

创建用户组:

CREATE GROUP dept;

指定用户到dept组:

ALTER GROUP dept ADD USER sec,sec03;

创建时指定用户到该组:

CREATE GROUP admin WITH USER sec01;

注:一个用户可以同时属于多个用户组.

针对不同的用户组可以赋予不同的权限,用户组支持集群,可以跨服务器.

查看已经存在的用户群组:

方法1:使用\dg命令

方法2:使用SQL语句

SELECT * FROM pg_group;

删除数据库

方法1:使用dropdb命令

dropdb db1 -h localhost

方法2:使用SQL

DROP DATABASE db2;

注:如果数据库正在被使用中是不能够删除的;

查看当前正在使用的数据库:

SELECT datname,usename,pid FROM pg_stat_activity;

关闭正在连接数据库的进程:

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='db2';

注:如果你知道运行数据库的进程id,可以使用

select pg_terminate_backend(pid_number);

创建和删除表空间:

注:表的数据是存储在硬盘上面的,只有查询出来的数据才会存放在内存里面.

首先需要在data目录下面创建一个目录(我的:/opt/PostgreSQL/9.4/data):

bash-4.2$ mkdir -p dbs

创建表空间(用户必须为superuser):

CREATE TABLESPACE data_tbs OWNER sec01 LOCATION '/opt/PostgreSQL/9.4/data/dbs';

注:一个表空间独占一个文件夹,例如dbs里面只能创建一个表空间,还有不能使用pg_打头的名字,这个是系统保留的。

查看表空间:

SELECT * FROM pg_tablespace;

注:pg_default:是存储用户数据.

pg_global是存储系统数据

删除表空间:

DROP TABLESPACE data_tbs;

转载于:https://my.oschina.net/websec/blog/384551

postgresql基本操作相关推荐

  1. linux7安装pgsql数据库,CentOS7下PostgreSQL安装

    环境:CentOS 7 版本:postgresql11 安装repo源 yum install https://download.postgresql.org/pub/repos/yum/reporp ...

  2. PostgreSQL:四. 数据表的基本操作

    四. 数据表的基本操作 4.1 创建数据表 下面的案例是如何添加主键约束,外键约束,唯一约束,非空约束,默认约束等: 1.使用主键约束:有单字段主键,多字段联合主键: [例1]定义数据表tb_emp1 ...

  3. PostgreSQL体系结构和基本操作

    点击蓝字 关注我们 一.整体架构图 1.共享内存区 A.shared_buffers ---共享缓冲区 它表示数据缓冲区中数据块的个数,每个数据块的大小是8KB. 数据缓冲区位于数据库的共享内存中,它 ...

  4. postgresql 数据库基本操作

    摘要: c dbname 切换数据库,相当于mysql的use dbname l 列举数据库,相当于mysql的show databases dt 列举表,相当于show tables d tblna ...

  5. 信创环境下三个开源数据库:SQLite、MariaDB(MySQL)和postgreSQL(瀚高数据库免费版)基本操作

    在信创环境下,常用的免费数据库主要是:SQLite.MariaDB(MySQL)和postgreSQL(瀚高数据库免费版),可以在一些产品中内嵌使用. SQLite作为单文件数据库,不需要后台服务,预 ...

  6. PostgreSQL 常用命令

    关于 PostgreSQL 的基本用法,供初次使用者上手.以下内容基于 CentOS 操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用. 基本操作 # 重启/etc/init.d/p ...

  7. postgresql 使用指南

    centos系列安装分为: yum安装 源码安装 一.yum安装 按照官方的安装文档进行. 安装postgresql官方yum仓库 yum install https://download.postg ...

  8. PostgreSQL处理xml数据初步

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页 [作者 高健@博客园  luckyjackgao ...

  9. PostgreSQL索引页

    本页目的,是起到索引其他所有本人所写文档的作用: 分类一:PostgreSQL基础知识与基本操作--------------------  PostgreSQL基础知识与基本操作索引页 分类二:Pos ...

最新文章

  1. android模拟多任务键,模拟Android Handler机制——单线程处理多任务
  2. 本地 MarkDown 怎么部署到服务器上?教你使用 Docsify 搭建个人博客
  3. Linux中命令选项及参数简介
  4. @程序员,你该如何做职业规划才能不被“废”?
  5. EMACS 使用入门
  6. Kaggle实战之leaf classification(树叶分类)
  7. MySQL数据库下.frm .MYD .MYI损坏恢复操作——筑梦之路
  8. mysql 插入数据报错,a foreign key constraint fails
  9. CSS表格和设置表格样式
  10. mysql 5.6 rpm 下载_mysql5.6 rpm包下载
  11. 转发一篇好文:36氪翻译自medium的文章: 读书没有 KPI:为什么坚持“一年读 100 本书”没用?...
  12. 六度分离【Floyd】
  13. uni-app微信小程序上传图片封装
  14. ST 增加 SiC 模块生产
  15. 在 E:\db\Custom\201610211635.bak 上读取失败: 38(已到文件结尾。) (Microsoft SQL Server,错误: 3203)
  16. NURBS求取basis函数的代码
  17. AutoCAD_创建直线,圆弧,圆
  18. 遍历递归树求递推数列通项
  19. java jceks 密钥_Java中不同类型的密钥库(Keystore) – 概述
  20. 蒲公英使用一行命令上传Apk文件

热门文章

  1. 移动互联网时代之用户名和密码何去何从(1)
  2. 10分钟认识RAID磁盘阵列技术!!!
  3. 在vs里不重启模拟器进行Symbian调试
  4. 3 个可以使你的 Python 代码更优雅、可读、直观和易于维护的工具
  5. baidumaptrace.php,鹰眼Web API v2.0 | 百度地图API SDK
  6. 微软python在线学习_微软再推免费在线 Python 教程,面向数据科学和机器学习初学者...
  7. 收藏! Linux 服务器必备的安全设置
  8. java 数字三角形_数字三角形 Number Triangles(java的MLE解决办法)
  9. iphone退款申请教程_王者荣耀账号注销退钱吗?王者荣耀账号注销100%退款教程...
  10. 阿尔法大蛋智能机器人功能_恭喜,全球首台智能洗车机器人“阿尔法”终于上线啦...