第三节——模式
Posted 想学习安全的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三节——模式相关的知识,希望对你有一定的参考价值。
数据库模式的使用
一、模式概念
模式是数据库对象的集合。模式对象是数据库数据的逻辑结构。模式是用来创建管理对象的,从定义中我们可以看出schema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些类似用户名的节点其实就是一个schema。
二、模式的使用
- 模式的创建,命令:
create schema 模式名 authorization 用户名; //创建属于某用户的模式
create schema if not exists authorization 用户名; //查看这个模式是否存在,存在则不创建,不存在则创建
eg:
create schema tsb authorization uxdb;
- 模式的设置,命令:
set search_path to 模式名;
,因为默认使用的模式为:“$user”,public
,$user指明去查找与当前用户同名的模式,public为公众模式;如果不使用命令设置模式,操作表时,系统会使用默认的两种模式去操作表,使用命令:show search_path;
查看默认模式 - 模式的查看,命令:
\\dn+
,查看当前账户可以使用的所有模式名 - 模式的使用:创建表时在表明前面添加模式名,若不指定模式名,默认使用search_path第一个模式创建数据表,命令:
create table 模式名.表名 (列名 数据类型);
eg:创建两个数据表,testtable使用默认模式名创建,ttable指定模式名创建
- 模式的更改
a)重命名:alter schema 旧名字 to 新名字;
b)修改模式的归属用户:alter schema 模式名 to 新用户;
- 模式的删除:
drop schema 模式名;
注意事项:
- 不同数据库下创建的模式,不能共用,如:在uxdb数据库下创建了tsb模式,切换成test数据库后,无法查询到tsb模式。
- 创建表时,不同模式下的表重名后,用命令
\\d
查询,只显示search_path第一个模式下的表,另一个表需要使用模式名.表明去查询
eg:public模式是默认第一个模式,在public模式下创建了ttable,在tsb模式下也创建了ttable,\\d查询时只展示public默认模式下的ttable,另一个表需要使用tsb.ttable去查询
以上是关于第三节——模式的主要内容,如果未能解决你的问题,请参考以下文章