DB2语句详细资料

来源:未知 责任编辑:智问网络 发表时间:2013-09-22 21:28 点击:
p>DB2语句详细资料

p> 

p>1、数据操作语言(DML:select,delete,insert,update)

p> 

p>
    <1>查询数据库目录:

           db2 list db directory

    <2>查询数据库中表

           db2 list tables 当前用户

           db2 list tables for all 所有表

           db2 list tables for schema schemaname 指定模式的表

    <3>显示表结构

           db2 describe table tablename

    <4>插入数据

           db2 insert into tablename(字段名,字段名...) values (与字段名一一对应的值)

           db2 insert into tablename1(字段1,字段2,字段3...) 

           select 字段1,字段2,字段3...from tablename2 + 查询条件

    <5>更改表或视图数据

           db2 update tablename/viewname set 字段名1='',字段2='',...+查询条件

    <6>删除数据

           db2 delete from tablename where + 条件   

   <7>导入数据

          db2 "import from E:\name.txt of del insert into tableName"

          db2 "import from E:\name.ixf of ixf commitcount 5000 insert /create/replace into tableName"

          db2 "load client from D:\xx.txt of del insert/replace into tabName"(不需要写日志,但插入前表必须存在;不能create table)

          db2 "load client from D:\xx.txt of del restart/terminate into tabName" 当导入数据出现问题被强行中断时,此表会被加锁,通过此命令可以解锁

    <8>导出数据

             db2 "export to E:\name.txt of del select * from tableName"

             db2 "export to E:\name.txt of del MODIFIED BY NOCHARDEL select * from tableName"(导出不带分号的数据)

         导出表结构和数据

             db2 "export to E:\name.ixf of ixf MODIFIED BY NOCHARDEL select * from tableName"

             db2 "export to E:\name.ixf of ixf MODIFIED BY NOCHARDEL select * from tableName fetch first (取数+UNM) rows only"(取固定条数)

         导出表结构

             db2look -d dbName -e -t tableName -o D:\xxx.sql(path) -i userName -w password

             db2look -d dbName -z tabSchema -e -c -i userName -w password -o + 路径名

         导出存储过程结构

             db2 "export to xxx.sql of del select text from syscat.procedures where procname='大写存储过程名'"

      <9>查询表状态

          db2 load query table + tableName

      <10>查询当前表数据量(数据入库时)

          db2 select count(1) from tab with ur

      <11>修改当前表名、模式名

          db2 rename table tab1 to tab2

 

p> 

p>    2、数据定义语言(DDL:create,alter)

p> 

p>
       <1>创建或删除实例

        db2icrt instance_name/db2idrop -f instance_name

        linux:db2icrt -u user_id instance_name

       <2>创建视图、表、模式

      db2 create view/table/schema

      创建指定用户的模式

      db2 create schema schName AUTHORIZATION userName

      db2 create schema AUTHORIZATION userName(没有指定模式名时,模式名隐含为用户名userName)

       定义含有缺省值的表

      db2 create table tableName(column1 数据类型,column2 数据类型 default '缺省值')

      基于已存在的表

      db2 create table clone_tablename like tablename 

      db2 create table clone_tablename as (select * from tablename) definition only

      创建物化查询表(MQT) 

      create table new_table_name as (select * from table_name) data initially deferred refresh deferred;

      refresh table new_table_name; 

 

p> 

p>      注意:物化表类似一个查询,没有真正形成表,类型显示为Query。但它完全可以当表来用。

p> 

p>               创建表并指定其索引表空间

p> 

p> 
                 db2 create table(.....) in userspace1 INDEX in userspace2

                  (userspace1是表所在空间,userspace2是表上索引所在空间) 

 

p> 

p>    <3>创建视图

p> 

p>  
         db2 create view viewname 

                as select 字段名1,字段名2...from table where + 条件

         with check option 规定一种约束:通过视图插入或更新的每一行都必须符合视图的定义,如:

         create view emp_view2(empno,empname,deptno) as (select id,name,dept from employee where dept=10)with check option

         当此视图用于更新数据或插入新值时,with check option 限制了dept列的输入值

 

p> 

p>    <4>修改表(列,主键,唯一约束,检查约束)

p> 

p>
    1)添加新列 alter table tablename ADD COLUMN columnname 数据类型

    2)添加约束 

    3)修改表中字段 alter table tablename alter columnname set data type 数据类型

    4) 添加主键 alter table tablename add primary key(c1,c2)

   <5>删除模式、表、视图

      drop schema schName <CASCADE|RESTRICT>

      CASCADE(级联)表示删除模式的同时删除该模式中所有的数据库对象

      RESTRICT(限制)表示该模式下定义了数据库对象时,限制删除;没有任何数据库对象时才能删除

   <6>重新组织表及其索引

      重组表数据  reorg table tableName index indexName(根据索引)

      重组表索引  reorg indexes all for table tableName

   <7>重新收集表及其索引统计信息

      runstats on table tableName for indexes all(跑批前重新收集所用表信息可以提高效率)

   <8>DB2自动增长主键方法

      IDENTITY列

        generated always as identity(start with 1,increment by 1)将一个字段指定为自增长型字段,放在数据类型后。

 

p> 

p>      SEQUENCE对象(序列)

p> 

p>    3、数据控制语言(DCL:grant,revoke)

p> 

p>
    将表的特权授予用户

    grant select,update,delete on table tableName to user userName with grant option

    将包特权授予同组

    grant control on package packageName on group groupName with grant option

 


    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • db2管理工具小结
    • DB2数据库的导出与导入(Windows客户端)
    • db2 CLP中如何换行
    • DB2查看表结构及所用表语句
    • DB2 · CREATE TABLESPACE
    • 使用DB2对象:创建模式、表和视图
    • DB2数据库逻辑卷的复制
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1