数据库schema

1、基本定义

数据库schema的定义:A schema is a collection of database objects. A schema is owned by a database user and has the same name as that user.

模式实际上是一个名字空间:它包含命名对象(表、数据类型、函数、操作符)这些名字可以和其它模式里存在的其它对象重名。命名对象要么是通过用模式名作为前缀"修饰"进行访问,要么是通过设置一个搜索路径包含所需要的模式。一条带着无修饰对象名的 CREATE 命令都是在当前模式中创建的 。

2、基本用法

sql语句中有这样一条建立模式的定义 create schema 模式名 authorization 用户名;还可以在其中写创建表、视图等等的语句,据DBMS不同语法可能稍有不同。
创建模式相当于创建一个架构,并且可以在概念上将其看作是包含表、视图和权限定义的对象。
CREATE SCHEMA 提供了在单个语句中创建表、视图以及授予对象权限的方法。如果在创建任何对象或授予任何权限(这些是在 CREATE SCHEMA 语句中指定的)时发生错误,则不会创建任何对象。

创建的对象不必按逻辑顺序出现,但引用其它视图的视图除外。例如,GRANT 语句可以在创建某个对象之前授予该对象的权限,CREATE VIEW 语句也可以出现在创建该视图所引用表的 CREATE TABLE 语句之前。同样,CREATE TABLE 语句中声明的外键可以指向后面指定的表。例外情况是,如果一个视图的选择语句引用另一个视图,则必须在指定引用视图之前指定被引用的视图。

3、概念扩充
数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构。还有一种是物理上的 Schema,指的是数据库中的一个名字空间,它包含一组表、视图和存储过程等命名对象。物理Schema可以通过标准SQL语句来创建、更新和修改。例如以下SQL语句创建了两个物理Schema:

    create schema SCHEMA_A;
    create table SCHEMA_A.CUSTOMERS(ID int not null,……);

    create schema SCHEMA_B;
    create table SCHEMA_B.CUSTOMERS(ID int not null,……);

简单的说:就是一个数据库用户所拥有的数据库的对象。  
  比如scott用户建立了表,索引,视图,存储过程等对象,那么这些对象就构成了schema   scott

在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下,每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,可以存入不同的数据(即schema用户自己的数据)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值