近期负责一个银行方面的项目,需要用到DB2实现多数据库版本切换。初步接触DB2,对于它的管理工具(IBM DATA STUDIO)虽然与ORACLE\MSSQL大同小异,但还是有些东西不一样的。比如什么是它的模式。

如图:


实际上DB2的SQL结构跟MSSQL也相差无几,但在不了解什么是DB2模式的情况下,写个 SECLECT * FROM TABLES  会提示未定义的TABLES.很疼!请看如下资料:

DB2模式简介:

模式(Schema)是一个逻辑分组,每个数据库内部的对象在创建时,都可以显式或者隐式地指定模式,同一个模式下的对象构成一个集合。从某种角度来说,模式与用户比较相似,但是与用户也有不同之处,DB2 的用户必须存在于操作系统中,而模式并不需要存在于操作系统中,也不需要与用户一一对应上。

通常情况下,使用数据对象都需要指定模式名称和对象名称,即:

模式名称 . 对象名称

如 xudaxia.eg代表模式 xudaxia下的表 eg。不同的模式下,对象名称可以相同,不会相互干扰。

显式创建模式的命令为:

CREATE SCHEMA < 模式名称 > [AUTHORIZATION 用户名 ]

该命令的含义是创建一个指定名称的模式,如果包含 AUTHORIZATION 子句,则表示该用户是这个模式的拥有者。

可以给模式授予相应的特权。

如果在创建某个对象时指定了模式名称,而该模式还不存在,则会隐式地创建该模式,如:

CREATE TABLE my.table1( …… )

如果模式 my 不存在,则会创建该模式,接着在模式 my 下创建表 table1。

如果在创建对象或者查询数据的时候没有指定模式名称,系统会使用专用寄存器 CURRENT SCHEMA 中指定的值作为模式名称。可以使用如下 DB2 命令查看该专用寄存器的值:

VALUES CURRENT SCHEMA

可以通过如下 DB2 命令修改该寄存器中的值:

SET CURRENT SCHEMA < 模式名称 >

该命令的含义是创建一个指定名称的模式,如果包含 AUTHORIZATION 子句,则表示该用户是这个模式的拥有者。

可以给模式授予相应的特权,具体操作请参见 5.4 节。

如果在创建某个对象时指定了模式名称,而该模式还不存在,则会隐式地创建该模式,如:

CREATE TABLE my.table1( …… )

如果模式 my 不存在,则会创建该模式,接着在模式 my 下创建表 table1。

如果在创建对象或者查询数据的时候没有指定模式名称,系统会使用专用寄存器 CURRENT SCHEMA 中指定的值作为模式名称。可以使用如下 DB2 命令查看该专用寄存器的值:

VALUES CURRENT SCHEMA

可以通过如下 DB2 命令修改该寄存器中的值:

SET CURRENT SCHEMA < 模式名称 >

这样该专用寄存器中记录的就是指定的模式名称。

如果没有专门指定名称,DB2 使用当前登录的用户名作为该专用寄存器的值。

最新文章

  1. db2命令
  2. 理解TCP三次握手/四次断开的必要性
  3. 简单的css居中问题(日常记录)
  4. Hibernate 异常 —— No CurrentSessionContext configured
  5. PowerDesigner 工具面板 association,inheritance,association link 不可用 解决方法
  6. noip2008提高组题解
  7. Linux常用设置
  8. poj 2220 Sumsets
  9. 【转】android自动化测试之MonkeyRunner使用实例(三)
  10. System Operations on AWS - Lab 7 - CloudFormation
  11. MongoDB学习笔记(五) MongoDB文件存取操作
  12. 高速掌握sinox2014激动人心的ZFS和RAID技术
  13. org.hibernate.LazyInitializationException could not initialize proxy-no Session的解决
  14. Apache Hadoop学习笔记一
  15. 07-nodejs中npm的使用
  16. 入围T00ls 2018风云人物
  17. LINQ之路13:LINQ Operators之连接(Joining)
  18. CentOS和Redhat救援模式
  19. [Android Security] Smali和逆向分析
  20. 微信小程序 - tab选项卡(组件)

热门文章

  1. FileZilla 425 Can&#39;t open data connection
  2. 使用Hexo搭建github博客步骤,超简便
  3. Windows下,通过程序设置全屏抗锯齿(多重采样)的方法
  4. vijosP1038 添加括号
  5. Bzoj 3747: [POI2015]Kinoman 线段树
  6. 集中式vs分布式
  7. 手机终于能连接android studio
  8. linux内核--内核内存管理
  9. C#中A a=new B()的意义
  10. TCP/UDP是如何传输的?