postgresql模式创建、修改、删除
一个数据库包含一个或多个模式,而模式又包含表、序列、函数等,不同的模式可以包含相同名称的表、序列、函数等。模式本质上是命名空间,就像人的姓氏一样。一个用户只要有权限,连接到数据库后,可一次访问该数据库的任何模式下的对象。新建一个数据库会默认创建一个public模式,后续操作数据库对象如果没指定模式,则默认为public。例如之前创建的school数据库
school=# \dn+
List of schemas
Name | Owner | Access privileges | Description
--------+----------+----------------------+------------------------
public | postgres | postgres=UC/postgres+| standard public schema
| | =UC/postgres |
(1 row)
一、创建模式
语法:
school=# \h create schema
Command: CREATE SCHEMA
Description: define a new schema
Syntax:
CREATE SCHEMA schema_name [ AUTHORIZATION user_name ] [ schema_element [ ... ] ]
CREATE SCHEMA AUTHORIZATION user_name [ schema_element [ ... ] ]
CREATE SCHEMA IF NOT EXISTS schema_name [ AUTHORIZATION user_name ]
CREATE SCHEMA IF NOT EXISTS AUTHORIZATION user_name
参数:
schema_name
模式名称,缺省使用user_name,且不能以pg_开头。
user_name
模式属于的用户,缺省为执行命令的用户。
schema_element
一条SQL语句,即创建模式后,在该模式下创建一个数据库对象。当前支持的子句有CREATE
TABLE, CREATE VIEW, CREATE INDEX, CREATE SEQUENCE, CREATE TRIGGER and GRANT。
IF NOT EXISTS
如果模式已存在,使用该选项不会抛出错误。使用此选项不能使用schema_element子句。
示例
create schema schema_test authorization test1 create table tbl_test(a int) create view view_test as select * from tbl_test;
访问模式下数据库对象在模式和数据库对象之间加一个句点即可
school=# select * from schema_test.tbl_test ; a --- (0 rows) school=# select * from schema_test.view_test ; a --- (0 rows)
二、模式修改
语法:
school=# \h alter schema
Command: ALTER SCHEMA
Description: change the definition of a schema
Syntax:
ALTER SCHEMA name RENAME TO new_name
ALTER SCHEMA name OWNER TO new_owner
参数:
name
模式名称
new_name
模式新的名称,同样新名称也不能以pg_开头
new_owner
模式新用户名称
示例
school=# alter schema schema_test owner to postgres ; ALTER SCHEMA school=# alter schema schema_test rename to test; ALTER SCHEMA school=# \dn+ List of schemas Name | Owner | Access privileges | Description --------+----------+----------------------+------------------------ public | postgres | postgres=UC/postgres+| standard public schema | | =UC/postgres | test | postgres | | (2 rows)
三、模式删除
语法:
school=# \h drop schema
Command: DROP SCHEMA
Description: remove a schema
Syntax:
DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
参数:
IF EXISTS
如果模式不存在,不会抛出错误。
name
模式名称。
CASCADE
自动删除该模式下数据库对象。
RESTRICT
如果该模式下还存在数据库对象,则不允许删除该模式,RESTRICT为缺省值。
示例:
school=# drop schema test; ERROR: cannot drop schema test because other objects depend on it DETAIL: table test.tbl_test depends on schema test view test.view_test depends on schema test HINT: Use DROP ... CASCADE to drop the dependent objects too.
school=# drop schema test cascade; NOTICE: drop cascades to 2 other objects DETAIL: drop cascades to table test.tbl_test drop cascades to view test.view_test DROP SCHEMA
postgresql模式创建、修改、删除的更多相关文章
- oracle11g创建修改删除表
oracle11g创建修改删除表 我的数据库名字: ORCL 密码:123456 1.模式 2.创建表 3.表约束 4.修改表 5.删除表 1.模式 set oracle_sid=OR ...
- Linux创建修改删除用户和组
Linux 创建修改删除用户和组 介绍 在日常的维护过程中创建用户操作用的相对会多一些,但是在这个过程中涉及到的知识点就不单单就是useradd了,接下来就来详细了解账号管理的相关信息. 用户信息 先 ...
- MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
/*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...
- Linux基础学习-用户的创建修改删除
用户添加修改删除 1 useradd添加用户 添加一个新用户hehe,指定uid为3000,家目录为/home/haha [root@qdlinux ~]# useradd -u 3000 -d /h ...
- WindowsDOS命令添加/创建/修改/删除服务
添加服务 sc <server> create [service name] [binPath= ] <option1> <option2>... 在注册表和服务数 ...
- Linux 创建修改删除用户和组
200 ? "200px" : this.width)!important;} --> 介绍 在日常的维护过程中创建用户操作用的相对会多一些,但是在这个过程中涉及到的知识点就 ...
- ElasticSearch.net NEST批量创建修改删除索引完整示例
本示例采用Elasticsearch+Nest 网上查了很多资料,发现用C#调用Elasticsearch搜索引擎的功能代码很分散,功能不完整,多半是非常简单的操作,没有成型的应用示例.比如新增或修改 ...
- MySQL入门很简单: 4 创建 修改删除表
1. 创建表的方法 1)创建表的语法形式 首先,选择数据库: USE 数据库名: 创建表: CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件 ...
- SQL Server 创建 修改 删除数据表
1. 图形界面方式操作数据表 (1)创建和修改数据表 列名中如果有两个以上单词时,最好用下划线连接,否则可能会给将来的查询维护带来不便.我们公司美国佬做的数据库就很烦,所有列名都有空格,一旦忘记用方括 ...
随机推荐
- DOM编程 学习笔记(二)
学习内容: 1.document对象 2.event对象 该对象将标记型文档进行封装 该对象的作用,是对可标记型文档进行操作 常见操作,想要实现动态效果,需要对节点操作,那么先获取到这个节点,想获取节 ...
- oracle hint inline materialize
当我们使用with的时候,oracle可能会把with里面的结果转换为暂时表.这是仅仅是可能,由于CBO会推断. inline是不转换成暂时表.materialize是强制转换成暂时表. 制造数据 d ...
- 同一种类型的两个对象赋值,用反射。再也不用点属性了。。。。(适用于ef)
/// <summary> /// 给对象赋值的方法(不赋地址)(同一个类型),含过滤 /// </summary> /// <typeparam name=" ...
- Java动态代理-->Spring AOP
引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”.以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Jav ...
- 移动端web开发技巧 -- 转载
META相关 1. 添加到主屏后的标题(IOS)<meta name="apple-mobile-web-app-title" content="标题"& ...
- Swift coreAnimation 加计时器写的游戏《飞机大战》
近期在学习swift的动画和图层.就用现学的东西写了个游戏,基本思想 基本功能都实现了.图片都是在网上找得.希望能帮助大家更好的理解动画和图层. 声明下,我是刚開始学习的人,代码写的不好.大家应该都能 ...
- 如何把he_llo wo_rld 变成 HeLlo WoRld
有人问如何把he_llo wo_rld 变成 HeLlo WoRld,估计应该是一道面试的基础题吧. 思路很多种,就看如何实现 思路一.先根据空格分隔,然后转大写,最后再拼接.代码如下 <?ph ...
- Python 流程控制:for
for 循环用于对一个序列进行遍历,用法如下: In [4]: for i in 'abcd': ...: print(i) ...: a b c d In [13]: for i in range( ...
- HTTP 请求过程
如下,我们在浏览器输入一个域名,按回车之后,便向该域名对应的服务器发送了一个请求:服务器接收到这个请求后进行处理和解析,然后返回响应的内容给浏览器,浏览器再对其进行解析然后呈现网页 我们可以通过 Ch ...
- discuz x 系列目录结构说明
api ┄┄┄外部接口 connect ┄┄┄腾讯互联 db ┄┄┄UCenter数据库备份接口 google ┄┄┄Google引擎使用 javascript ┄┄┄数据和广告的 J ...