postgresql逻辑结构(一)
一、数据库逻辑结构介绍
数据库:应用连接到一个数据库时,一般不能访问其它数据库,除非使用dblink等其他手段。
表、索引:postgresql中标的术语为relation,其它数据库中成为table。
数据行:每张表有多行数据,postgresql中称为tuple,其它数据库称row。
注意:在postgresql中,一个数据库(实例)下可以有多个数据库,而一个数据库不能属于多个实例。这跟oracle数据库不同。
二、数据库基本操作。
1.1 创建数据库:
create database name
[ [with] [owner [=] user_name ] // 指定新建的数据库属于哪个用户,不指定使用当前用户。
[template [=] template] // 模板名(从哪个模板创建,不指定使用默认template1)
[encoding [=] encoding ] // 字符集编码
[lc_collate [=] lc_ctype]
[tablespace [=] tablespace ] // 指定的新数据库关联 表空间 的名字
[connection limit [=] connlimit] // 数据库可以接受多少并发连接,默认-1(无限制)
[] 中的参数都可省略为create database db_name;
1.2 修改数据库的方法:
alter database name [ [with] option [...] ]
option 可以是:
connection limit connlimit
alter database name rename to new_name;
alter database name owner to new_owner;
alter database name set tablespace new_tablespace;
alter database name set configuration_parameter from current;
alter database name reset configuration_paramter;
alter database name reset all
eg: 修改数据库的最大连接数
testdb=# alter database testdb connection limit 10;
ALTER DATABASE
Time: 6.557 ms
eg: 修改数据库名称
testdb=# alter database test rename to testdb1;
ALTER DATABASE
Time: 9.537 ms
eg:关闭在数据库testdb上的默认索引扫描
testdb=# alter database testdb set enable_indexscan to off;
ALTER DATABASE
Time: 12.012 ms
1.3 删除数据库
drop database [if exists] name;
注意:如果有人连接这个数据库,则不能删除;
不能再事物块中删除数据库;可以修改。
三、模式schema
1.1 定义:模式可以理解为一个命名空间或者目录。不同模式下可以有相同名称的表,函数等对象且互相不冲突。每个模式的对象可以相互调用。
一个数据库可以包含多个模式,一个模式中可以包含表、函数以及数据库对象。
postgresql中,不能同时访问不同数据库中的对象,而模式没有此限制。schema的这点概念类似于mysql中的database。
使用schema的原因:
允许多个用户在使用同一个数据库时互不干扰。
把数据库对象放在不同的模式下,然后组成逻辑组,让他们更便于管理。
第三方应用可以放在不同的模式中,这样就不会和其它对象的名字冲突了。
2.1 模式的使用
create schema schemaname [ authorization username ] [ schema_elemane [...]]
2.1.1 创建、查看、删除一个schema
testdb=# create schema osdba;
CREATE SCHEMA
Time: 4.575 ms
testdb=# \dn
List of schemas
+--------+----------+
| Name | Owner |
+--------+----------+
| osdba | postgres |
| public | postgres |
+--------+----------+
(2 rows) testdb=# drop schema osdba;
DROP SCHEMA
Time: 7.558 ms
testdb=#
2.1.2 为repl用户创建模式repl;
postgres=# create schema authorization repl;
CREATE SCHEMA
postgres=#
2.1.3 创建模式的同时,在这个模式下创建一些表的视图:
postgres=# create schema osdba
create table t1 (id int, title text)
create table t2 (id int, content text)
create view v1 as
select a.id,a.title,b.content from t1 a,t2 b where a.id=b.id;
CREATE SCHEMA
可以修改名称和owner,语法同数据库
testdb=#
alter schema osdba rename to osdbaold;
ALTER SCHEMA
修改拥有者
testdb=# alter schema osdbaold owner to repl;
ALTER SCHEMA
2.2 模式的搜索路径
testdb=# show search_path;
search_path
-----------------
"$user", public
(1 row)
postgresql逻辑结构(一)的更多相关文章
- [转]PostgreSQL 逻辑结构 和 权限体系 介绍
摘要: 本文旨在帮助用户理解PostgreSQL的逻辑结构和权限体系,帮助用户快速的理解和管理数据库的权限. 逻辑结构 最上层是实例,实例中允许创建多个数据库,每个数据库中可以创建多个schema,每 ...
- postgresql逻辑结构--表(二)
一.创建表 语法: create table table_name( col01_name data_type, col02_name data_type, col03_name data_type, ...
- postgresql逻辑结构--用户及权限管理(七)
一.用户和角色 二.创建用户和角色 三.权限管理 四.
- postgresql逻辑结构--索引(六)
一.索引简介 二.索引分类 三.创建索引 四.修改索引 五.删除索引
- postgresql逻辑结构--视图(五)
定义 一.创建视图 1.语法 create [or replace ] [ temp | temporary ] view name [(column_name [,...])] as que ...
- postgresql逻辑结构--表空间(四)
一.创建表空间 1. 语法:create tablespace tablespace_name [owner user_name] location 'directory' postgres=# cr ...
- postgresql逻辑结构--触发器(三)
触发器(tigger)是一种由事物自动触发执行的特殊存储过程,这些事件可以是对一个表进行INSERT.UPDATE.DELETE等操作. 一.创建触发器 create [ constraint ] ...
- 学习推荐-Postgresql学习手册
Postgresql之旅: http://www.cnblogs.com/stephen-liu74/archive/2012/06/08/2315679.html postgresql逻辑结构+权限 ...
- 浅谈PostgreSQL用户权限
问题 经常在PG群里看到有人在问“为什么我对表赋予了权限:但是还是不能访问表” 解析 若你看懂德哥这篇文章PostgreSQL逻辑结构和权限体系介绍:上面对你就不是困扰你的问题 解决这个问题很简单:在 ...
随机推荐
- Java类、超类、包
定义和实例化与C#相同 特殊变量 super当前对象的父类,用于调用父类的变量和方法 this当前类对象 存取限制有3个 没有C#的inter ...
- 【转】require.js学习笔记(一)
一.立即执行函数 立即执行函数可以有效避免临时变量污染全局空间.可以在页面初始化时,在立即执行函数内实现一次执行变量的定义及使用. for (var i = 0; i < elems.lengt ...
- bzoj2388(分块 凸包)
好像没有什么高级数据结构能够很高效地实现这个东西: 那就上万能的分块,我们用一些数形结合的思想,把下标看成横坐标,前缀和的值看成纵坐标: 给区间内每个数都加k相当于相邻两点的斜率都加上k: 这种东西我 ...
- Redis中在程序中的应用
1.导入redis的配置文件,因为要交给web容器管理,所以直接命名为ApplicationContext-redis.xml,具体配置如下: <beans xmlns="http:/ ...
- FastReport报表设计(仔细看)
FastReport报表设计 2011-06-16 16:56:19| 分类: 系统开发|举报|字号 订阅 下载LOFTER我的照片书 | 目录 5.1 前言 5.2 基本概念及操 ...
- C# 对象转XML 支持匿名类
在网上找了很多关于对象转XML的,大多不支持匿名类转换,今天在stackoverflow找了一篇文章 但是有些许BUG 已经修复 public static class ObjectToXML { ...
- 重写TreeView,多层级节点下批量显示图片,图片支持缩略图和文件名列表切换,支持调用者动态匹配选中,支持外界拖入图片并添加到对应节点下
1.先看下整体效果 2.前端代码 <UserControl x:Class="iPIS.UI.Base.Tree.ImageTreeControl" xmlns=" ...
- ASP.Net MVC OA项目笔记<六>
1.1.1 开始写业务,先写业务的实现再写业务的接口 业务类中也是有写增删改查公用的方法 引用Model,IDAL,DALFactory BLL添加两个类 UserInfoService,BaseSe ...
- 迁移桌面程序到MS Store(3)——开机自启动
迁移桌面程序的时候,有可能你会遇到这么个需求——开机自启动.Windows传统桌面程序的传统陋习.不论什么奇葩软件都想要开机自启动,默认就给你打开,一开机哐哐哐什么雷,什么企鹅都蹦出来,也不管你用不用 ...
- MVC 5 Strongly Typed Views(强类型视图)
学习MVC这样久以来,发觉网站上很多MVC的视频或是文章,均是使用Strongly Type views来实现控制器与视图的交互.Insus.NET以前发布的博文中,也大量使用这种方式: <Da ...