ITPUB论坛 » Oracle数据库管理 » 请教create schema语句有什么意义吗?
新一届的微软MVP评选已经开始,欢迎各位推荐!
2008-7-5 16:09 snow_winter
请教create schema语句有什么意义吗?

请教create schema语句有什么意义吗?

2008-7-5 16:18 gy1982329
你可以看看ocp043的sg专门讲的是schema!
要说这个这是小孩没娘,说来话长!

2008-7-5 16:54 ccbzzp
schema就是在数据库下面的一个名字空间,只是用来存放表的名字,当一个数据库用户做查询或什么别的动作的时候,有个search_path来限定它的查询顺序,通常是$user,public,这样,实际上一个数据库可以有多个同名的表,只要挂在不同的schema下就可以了。
  实际上, schema类似于操作系统层次的目录(这个“目录”用来存放表名称),那么一个数据库就相当于一个操作系统, schema相当于这个操作系统的目录,表相当于这个系统中的文件,因此,一个库中可以有多个同名的表。

2008-7-5 16:58 snow_winter
[quote]原帖由 [i]gy1982329[/i] 于 2008-7-5 16:18 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10865991&ptid=1017257][img]http://www.itpub.net/images/common/back.gif[/img][/url]
你可以看看ocp043的sg专门讲的是schema!
要说这个这是小孩没娘,说来话长! [/quote]
谢谢,我没有OCP的教程

2008-7-5 17:00 snow_winter
[quote]原帖由 [i]ccbzzp[/i] 于 2008-7-5 16:54 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10866260&ptid=1017257][img]http://www.itpub.net/images/common/back.gif[/img][/url]
schema就是在数据库下面的一个名字空间,只是用来存放表的名字,当一个数据库用户做查询或什么别的动作的时候,有个search_path来限定它的查询顺序,通常是$user,public,这样,实际上一个数据库可以有多个同名的表,只要挂在不同的schema下就可以了。
  实际上, schema类似于操作系统层次的目录(这个“目录”用来存放表名称),那么一个数据库就相当于一个操作系统, schema相当于这个操作系统的目录,表相当于这个系统中的文件,因此,一个库中可以有多个同名的表。 [/quote]

谢谢
看了文档,现在的理解是create schema并不真的建立schema,schema是随着create user的同时自动建立的

create schema authoration 的目的似乎是可以同时create table create view grant
也就是这些DLL,DCL可以在同一个事务里完成,而不是在3个里完成

我问的不是schema的概念问题
谢谢

2008-7-5 19:09 ryq0000
[quote]原帖由 [i]ccbzzp[/i] 于 2008-7-5 16:54 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10866260&ptid=1017257][img]http://www.itpub.net/images/common/back.gif[/img][/url]
schema就是在数据库下面的一个名字空间,只是用来存放表的名字,当一个数据库用户做查询或什么别的动作的时候,有个search_path来限定它的查询顺序,通常是$user,public,这样,实际上一个数据库可以有多个同名的表,只要挂在不同的schema下就可以了。
  实际上, schema类似于操作系统层次的目录(这个“目录”用来存放表名称),那么一个数据库就相当于一个操作系统, schema相当于这个操作系统的目录,表相当于这个系统中的文件,因此,一个库中可以有多个同名的表。 [/quote]

和模式有什么区别吗?

2008-7-5 19:10 snow_winter
[quote]原帖由 [i]ryq0000[/i] 于 2008-7-5 19:09 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10866958&ptid=1017257][img]http://www.itpub.net/images/common/back.gif[/img][/url]


和模式有什么区别吗? [/quote]
谢谢
没有区别
我问的问题不是user和schema的区别


我问的是create schema有什么意义和用途

2008-7-5 19:23 OoNiceDream
单单这条命令,平时管理维护中应该用不到吧。

2008-7-5 19:42 snow_winter
[quote]原帖由 [i]OoNiceDream[/i] 于 2008-7-5 19:23 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10867056&ptid=1017257][img]http://www.itpub.net/images/common/back.gif[/img][/url]
单单这条命令,平时管理维护中应该用不到吧。 [/quote]
谢谢,我问的有什么用途,即什么时候会这样用

2008-7-5 20:33 chinecj
语法   
  CREATE   SCHEMA   AUTHORIZATION   owner   
          [   <   schema_element   >   [   ...n   ]   ]   
   
  <   schema_element   >   ::=   
          {   table_definition   |   view_definition   |   grant_statement   }   
   
  参数   
  AUTHORIZATION   owner   
   
  指定架构对象所有者的   ID。此标识符必须是数据库中有效的安全帐户。   
   
  table_definition   
   
  指定在架构内创建表的   CREATE   TABLE   语句。   
   
  view_definition   
   
  指定在架构内创建视图的   CREATE   VIEW   语句。   
   
  grant_statement   
   
  指定授予用户或用户组权限的   GRANT   语句。   


  CREATE   SCHEMA   提供了在单个语句中创建表、视图以及授予对象权限的方法。如果在创建任何对象或授予任何权限(这些是在   CREATE   SCHEMA   语句中指定的)时发生错误,则不会创建任何对象。   
   
  创建的对象不必按逻辑顺序出现,但引用其它视图的视图除外。例如,GRANT   语句可以在创建某个对象之前授予该对象的权限,CREATE   VIEW   语句也可以出现在创建该视图所引用表的   CREATE   TABLE   语句之前。同样,CREATE   TABLE   语句中声明的外键可以指向后面指定的表。例外情况是,如果一个视图的选择语句引用另一个视图,则必须在指定引用视图之前指定被引用的视图。

页: [1]


Powered by ITPUB论坛