zoukankan      html  css  js  c++  java
  • What's DB2 模式?

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

    如图:


    实际上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 使用当前登录的用户名作为该专用寄存器的值。

  • 相关阅读:
    HTML表格布局例子
    WCF分布式开发必备知识(2):.Net Remoting (转)
    WCF分布式开发必备知识(1):MSMQ消息队列(转)
    WCF数据契约与序列化(转)
    Asp.net中图片存储数据库以及页面读取显示通用方法详解附源码下载
    2010年初的一点随想
    Windows7旗舰版磁盘分区详解—附分区步骤截图
    AjaxControltoolkit(工具包)安装步骤说明
    Windows7安装IIS中关于Windows 系列于谷歌Chrome系统争议一点联想
    Oracle 10G中关于约束在表和列中使用详解.
  • 原文地址:https://www.cnblogs.com/byvar/p/3791170.html
Copyright © 2011-2022 走看看