postgresql基本操作
连接数据库:
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基本操作相关推荐
- linux7安装pgsql数据库,CentOS7下PostgreSQL安装
环境:CentOS 7 版本:postgresql11 安装repo源 yum install https://download.postgresql.org/pub/repos/yum/reporp ...
- PostgreSQL:四. 数据表的基本操作
四. 数据表的基本操作 4.1 创建数据表 下面的案例是如何添加主键约束,外键约束,唯一约束,非空约束,默认约束等: 1.使用主键约束:有单字段主键,多字段联合主键: [例1]定义数据表tb_emp1 ...
- PostgreSQL体系结构和基本操作
点击蓝字 关注我们 一.整体架构图 1.共享内存区 A.shared_buffers ---共享缓冲区 它表示数据缓冲区中数据块的个数,每个数据块的大小是8KB. 数据缓冲区位于数据库的共享内存中,它 ...
- postgresql 数据库基本操作
摘要: c dbname 切换数据库,相当于mysql的use dbname l 列举数据库,相当于mysql的show databases dt 列举表,相当于show tables d tblna ...
- 信创环境下三个开源数据库:SQLite、MariaDB(MySQL)和postgreSQL(瀚高数据库免费版)基本操作
在信创环境下,常用的免费数据库主要是:SQLite.MariaDB(MySQL)和postgreSQL(瀚高数据库免费版),可以在一些产品中内嵌使用. SQLite作为单文件数据库,不需要后台服务,预 ...
- PostgreSQL 常用命令
关于 PostgreSQL 的基本用法,供初次使用者上手.以下内容基于 CentOS 操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用. 基本操作 # 重启/etc/init.d/p ...
- postgresql 使用指南
centos系列安装分为: yum安装 源码安装 一.yum安装 按照官方的安装文档进行. 安装postgresql官方yum仓库 yum install https://download.postg ...
- PostgreSQL处理xml数据初步
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页 [作者 高健@博客园 luckyjackgao ...
- PostgreSQL索引页
本页目的,是起到索引其他所有本人所写文档的作用: 分类一:PostgreSQL基础知识与基本操作-------------------- PostgreSQL基础知识与基本操作索引页 分类二:Pos ...
最新文章
- android模拟多任务键,模拟Android Handler机制——单线程处理多任务
- 本地 MarkDown 怎么部署到服务器上?教你使用 Docsify 搭建个人博客
- Linux中命令选项及参数简介
- @程序员,你该如何做职业规划才能不被“废”?
- EMACS 使用入门
- Kaggle实战之leaf classification(树叶分类)
- MySQL数据库下.frm .MYD .MYI损坏恢复操作——筑梦之路
- mysql 插入数据报错,a foreign key constraint fails
- CSS表格和设置表格样式
- mysql 5.6 rpm 下载_mysql5.6 rpm包下载
- 转发一篇好文:36氪翻译自medium的文章: 读书没有 KPI:为什么坚持“一年读 100 本书”没用?...
- 六度分离【Floyd】
- uni-app微信小程序上传图片封装
- ST 增加 SiC 模块生产
- 在 E:\db\Custom\201610211635.bak 上读取失败: 38(已到文件结尾。) (Microsoft SQL Server,错误: 3203)
- NURBS求取basis函数的代码
- AutoCAD_创建直线,圆弧,圆
- 遍历递归树求递推数列通项
- java jceks 密钥_Java中不同类型的密钥库(Keystore) – 概述
- 蒲公英使用一行命令上传Apk文件
热门文章
- 移动互联网时代之用户名和密码何去何从(1)
- 10分钟认识RAID磁盘阵列技术!!!
- 在vs里不重启模拟器进行Symbian调试
- 3 个可以使你的 Python 代码更优雅、可读、直观和易于维护的工具
- baidumaptrace.php,鹰眼Web API v2.0 | 百度地图API SDK
- 微软python在线学习_微软再推免费在线 Python 教程,面向数据科学和机器学习初学者...
- 收藏! Linux 服务器必备的安全设置
- java 数字三角形_数字三角形 Number Triangles(java的MLE解决办法)
- iphone退款申请教程_王者荣耀账号注销退钱吗?王者荣耀账号注销100%退款教程...
- 阿尔法大蛋智能机器人功能_恭喜,全球首台智能洗车机器人“阿尔法”终于上线啦...