1.db2数据库基础篇

第一节:数据类型

        可分为数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型   (datetime)。还有一种叫做DATALINK的特殊数据类型。DATALINK值包含了对存储在数据库以外的文件的逻辑引用。

类型 名称 范围 精度
数值型
SMALLINT(small int) 小整型 -32,768到32,767 5位
INTEGER或INT 大整型 -2,147,483,648到2,147,483,647 10位
BIGINT 巨整型 -9,223,372,036,854,775,808到9,223,372,036,854,775,807 19位
DECIMAL(p,s)、DEC(p,s)、NUMBERIC(p,s)或NUM(p,s) 小数型 -10**31+1到10^**31-1。 31位
REAL 单精度浮点数 -3.402E+38到-1.175E-37或从1.175E-37到3.402E+38 32位近似值
DOUBLE或FLOAT 双精度浮点数 -1.79769E+308到-2.225E-307或从2.225E-307到1.79769E+308 64位近似值
字符串
CHARACTER(n)或CHAR(n) 定长字符串  1到254字节之间  默认1个字节
VARCHAR(n)、CHARACTER VARYING(n)或CHAR VARYING(n) 变长字符串  最长可达32,672字节,LONG VARCHAR最长可达32,700字节。  
CLOB(n) 字符大对象字符串  最长可以达到2,147,483,647字节  默认1个字节
GRAPHIC(n) 定长图形字符串  长度介于1到127个双字节字符之间  
VARGRAPHIC(n)、LONG VARGRAPHIC 变长图形字符串  最大长度可达16,336个双字节字符  
DBCLOB(n) 双字节字符大对象字符串  最长可达1,073,741,823个字符,于容纳非传统型的数据,诸如图片、语音或混合媒体等,还可以容纳用户定义的类型及用户定义的函数的结构化数据  
BLOB(n) 二进制大对象  二进制大对象是变长字符串,最长可达2,147,483,647字节  
    时间日期类型
DATE    年份部分的范围是从0001到9999。月份部分的范围是从1到12。日部分的范围是从1到n,其中n的值取决于月份。DATE列长10个字节。  
TIME   TIME是一个由三部分组成的值(小时、分钟和秒)。小时部分的范围是从0到24。分钟和秒部分的范围都是从0到59。如果小时为24,分钟和秒的值都是0。TIME列长8个字节。   
TIMESTAMP   年份部分的范围是从0001到9999。月份部分的范围是从1到12。日部分的范围是从1到n,其中n的值取决于月份。小时部分的范围是从0到24。分钟和秒部分的范围都是从0到59。微秒部分的范围是从000000到999999。如果小时是 24,那么分钟值、秒的值和微秒的值都是0。TIMESTAMP列长26个字节。  

         

   

 

 

 

第二节:表的基本操作

1.创建表

(1).建表时必须明确指明表空间/索引表空间

(2).建表时必须指明分区键partitioning key,注意分区键的选择应当尽量使用值域大、值分布均匀的字段,比如phone_no等

      Create table tab_name(

          col1 int,

          col2 varchar(10)

       ) partitioning key(col1) in tbs_store index in tbs_idx not logged initially

(3).可使用如下语句察看表数据是否分布均匀:

      select

          nodenumber(phone_no), 

          count(*)

           from tmp1_vgrp_inet_call

      group by nodenumber(phone_no)

2.修改表的操作:

(1)  增加一个列: Alter table tab_new_tmp3 add column phvarchar(11)

            注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度,只能增大:

        alter table tab_new_tmp3 alter column ph set data type varchar(20)

(2)修改表名

          将表a改名为b,Rename a to b    此语句执行成功的前提是b表不存在

 (3)创建视图:

       create view viewname as select statement

        删除视图: drop view viewname

               注:视图唯一能修改的是引用类型列,改变列的范围。

        其他定义好了都不能修改。当视图基于的基表drop后,视图变为无效。

3.增删改查操作

   (1)插入行

  INSERT [INTO] {table_name} [(column_list)]

  VALUES {DEFAULT | value_list | select_statement}

  例如:insert into xxx(id,name) values(1,limingzhong);

   (2)更新行

  UPDATE table_name

  SET column_name = value [, column_name = value]

  [FROM table_name]

  [WHERE condition]

   (3)删除行

  DELETE [FROM table(s)] [WHERE condition]

   (4)查询

  SELECT * FROM table_name WHERE condition(s)

4.union操作

     union all 不去掉重复行,union去掉重复行

     select id from user
         union
     select id from sms

关于db2改表名的操作:rename st.tab_temp1 to tab_temp2   (新表名不能加前缀。经查询修改后的表名为:st.tab_temp2)

我们不一样
原文地址:https://www.cnblogs.com/bug-mark/p/7910140.html