DB2数据库使用

发表于:2008-07-17来源:作者:点击数: 标签:数据库byltascDML命令
一DML数据操纵语言 (一)数据查询命令 select查询内容From表名 where条件/*in,between,like%或_*/ groupby分组内容 having组内条件 orderby排序内容[asc/desc]; (二)数据更新命令 1、数据插入命令 (1).具体的值插入表中 Insertinto表名[(列名表)] values值
 一 DML数据操纵语言 

  (一)数据查询命令

  select <查询内容>   From <表名>
  where <条件>   /*in,between,like%或_*/
  group by<分组内容>
  having<组内条件>
  order by<排序内容>[asc/desc];

  (二)数据更新命令

  1、数据插入命令

(1).具体的值插入表中
    Insert into <表名> [(列名表)] 
      values<值表1>,<值表2>,<值表2>...
  (注: 日期,字符型值加引号)
  (2).将其它表满足条件的数据插入到一个表中
    Insert into <表名> [<列表名>] <select 子句>


  2、数据修改命令

  Update <表名> set <列名1>=<表达式1>,<列名2>=<表达式2>...[where<条件>];

  Update <表名> set <列名1>=(< select 子句 >) [where<条件>];

  3、数据删除命令

  Delete from <表名> [where<条件>]; 

 二 DDL数据定义语言

  (一)、基本数据类型
  1.字符串 
  字符串为一个字节序列,字符串的长度为序列中的字节数。如果长度为零,则该字符串的值称为空字符串。 

  CHAR(x)   是固定长度字符串。(1=
  VARCHAR(x)   可变长度字符 x<=4000,x>254不能用group by ,order by,distinct 和除       
  union all以外的任何设置操作。

  GRAPHIC(x)   是固定图形字符串。(1=
  BLOB     二进制字符串,是一个字节序列,用于保存非传统数据,如图象、图形、声音等数据。

  2 数字 :所有数字都有符号和精度。精度是除开符号的位数或数字数。 

  SMALLINT   小整数,是精度为5位的两字节整数。 
  INTEGER   大整数,是精度为10位的四字节整数。 
  REAL     单精度浮点数,是实数的32位近似值。 
  DOUBLE   双精度浮点数,是实数的64位近似值,DOUBLE也称FLOAT。 
  DECIMAL(p,s)   DECIMAL是一个十进制数。小数点的位置由数字的 精度(p)和小数位(s)     
  确定。精度是数字的总位数,必须小于32。小数位是小数部分数字的位数且总是小于或等于精度值。如果未指定精度和小数位,则十进制值的缺省精度为5,缺省小数位为0。 

 3 日期时间值 :日期时间值是日期、时间以及时间戳记的表示,日期时间值可以用于某些算术运算和字符串运算并且与某些字符串是相容的。

  DATE     由三个部分构成(年、月以及日)。 
  TIME     使用24小时制,分为三个部分(小时、分钟以及秒)。 
  IMESTAMP   分为七个部分(年、月、日、小时、分钟、秒以及微秒)。 

  4空值     空值是一个区别于所有非空值的特殊值。它意味着行中的那一列无任何其 
  它值。所有数据类型都存在空值。 

 
(二)、数据定义
   1、Create (创建)
  创建表:
  Create table [<模式名>.]<表名>   (<列名1> <类型> [Null|Not null] [,<列 
    名2> <类型>...]
  创建视图:   
  Create view [<模式名>.]<视图名> [<列名表>] as select 语句
  创建别名:   
  Create alias [<模式名>.]别名 for [<模式名>.]表名/视图名/别名 
  创建索引:
  Create [unique] index <索引名> /*I_表名_字段名*/ on <表名>(<列名 
    >[asc|desc]

创建模式:
CREATE SCHEMA 模式名   authorization 权限名
 2、Drop (摧毁)
  摧毁表:
  drop table [<模式名>.]表名
  摧毁视图:
  drop view [<模式名>.]视图名
  摧毁别名:
  drop alias [<模式名>.]别名
  摧毁触发器:
  drop trigger [<模式名>.]触发器名
  摧毁索引:
  drop index [<模式名>.]<索引名>
  摧毁包:
  drop package [<模式名>.]包名

  3、Alter (变更)
  增加表列:
  Alter table [<模式名>.]<表名> add column [<列名1> <类型> [Null|Not null]]...
  增加约束:   
  Alter table [<模式名>.]<表名> add constraint 列名 CHECK (约束)     
  删除约束:
  Alter table [<模式名>.]<表名> drop constraint 约束名     
  修改列类型:
  Alter table [<模式名>.]<表名> alter column 列名 set data type <类型>

  4、Grant (赋权)
  对[public/用户/组] 赋于在表上的[all/select/insert/update/delete] 权限:
  Grant [all/select/insert/update/delete] on [<模式名>.]表名to [public/用户/ 
    组];
  对[public/用户/组] 赋于在包上的[bind/execute/]权限:     
  Grant [bind/execute/] on package [<模式名>.][包名] to [public/用户/组];   
  对[public/用户/组] 赋于在索引上的[control]权限:
  Grant control on index [<模式名>.]索引名 to [public/用户/组]

  5、Revoke (回收)
  从public/用户/组] 回收在表上的[all/select/insert/update/delete] 权限:     
  Revoke [all/select/insert/update/delete] on [表名] from [public/用户/组];
  从public/用户/组] 回收在包上的[bind/execute/] 权限:
  Revoke [bind/execute/] on package [<模式名>.][包名]from [public/用户/组];
三 事务控制语言
  1.事务提交命令: Commit;
  2.事务回退命令: Rollback; 

 
四 系统控制语言

  1.取消自动提交:
  Update command options using c off;
  2.连接数据库
  Connect to 数据库名 user 用户 using 密码
  3.断开数据库连接: 
  Connect reset 
  Disconnect 数据库名
  4.列出数据库中的所有表:
  List tables for all
  5.列出数据库中的模式名为SCHEMA_name的所有表:
  List tables for SCHEMA SCHEMA_name
  6.查看表结构
  Describe table 模式名.表名
  Describe select * from 模式名.表名
  7.查看表的索引
  Describe indexes for table 模式名.表名


五 函数

  (一) 列函数
  列函数对列中的一组值进行运算以得到单个结果值。

  1.AVG 
  返回某一组中的值除以该组中值的个数的和 
  2.COUNT (*)
  返回非空列值的行数。 
  3.MAX 
  返回一组值中的最大值 
  4.MI
  返回一组值中的最小值 
  5. MOD
  求余

  (二) 标量函数
  标量函数对值进行某个运算以返回另一个值。下列就是一些由DB2通用数据库提供的标量函数的示例。 

  1.ABS 
  返回数的绝对值 
  2.HEX 
  返回值的十六进制表示 
  3.LENGTH 
  返回自变量中的字节数(对于图形字符串则返回双字节字符数。) 
  4.YEAR 
  抽取日期时间值的年份部分 
  5.NULLIF(a,b)
  如果a=b则值为空,否则值为a
  6.COALESCE(a,b,c)
  :返回第一个具有非空值的参数的值 
  7.UCASE(str)
  小写字符转换成大写字符
  8.ICASE(str)
  大写字符转换成小写字符
  9.LOCAT(str1,str2,n)
  返回从第n个字符起,在str1中str2第一次出现的位置
  10.SUBSTR(str,m,n)
  返回从第m个字符起,,在str中的n个字符串 

原文转自:http://www.ltesting.net