qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

跟屌丝大哥学DB2-第四课 数据类型 ,表 ,视图,索引,模式,约束(一)

(DiaoSiID)在我们建立表前 ,我们先要了解DB2中都有哪些数据类型,以便我们这些屌丝以后快速创建表。

DB2 提供了一套丰富且灵活的数据型。DB2 附 INTEGERCHAR DATE 等基本数据型。它提供了建用的数据型(UDT)的工具,使用够创复杂的非传统的数据型,从而适当今复杂境。在定的情况下,用哪数据型取决于列中存的信息的型和范

内置的数据型分:数字、字符串、日期时间和 XML。

的数据型分单值类型、构化型和引用型。

数字数据



如上所示,数字数据型又可分型在可以存的数字数据的范和精度方面有所差异。


  • 整数SMALLINTINTEGER BIGINT 用来存整数。例如,存数量可以定义为 INTEGERSMALLINT 可以在 2 个字中存 -32,768 32,767 的整数。INTEGER 可以在 4 个字中存 -2,147,483,648 2,147,483,647 的整数。BIGINT 可以在 8 个字中存 -9,223,372,036,854,775,808 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存有小数部分的数字。要定义这个数据型,需要指定精度p,表示的位数)和小数位s,表示小数点右的位数)。定义为 DECIMAL(10,2) 的列可以保存的金最高可 99999999.99。数据中需要的存于精度,按照公式 p/2 +1 算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字
  • 浮点数REAL DOUBLE 用来存数字的近似。例如,非常小或非常大的科学可以定义为 REALREAL 可以定义为具有 1 24 位之度,需要 4 的存DOUBLE 可以定义为具有 25 53 位之度,需要 8 的存FLOAT 可以视为 REAL DOUBLE 的同义词

字符串数据




如上所示,DB2 字符数据或字符串提供了几数据型。根据要存的字符串的大小和字符串中的数据来选择数据型。

下面的数据型用来存储单字符串:

  • CHAR CHARACTER 用来存最多 254 的固定度的字符串。例如,制造商可以零件分配一个 8 字符度的标识符,因此标识符在数据中存储为 CHAR(8) 型的列。
  • VARCHAR 用来存变长度的字符串。例如,制造商用不同度的标识符表示大量零件,因此标识符存储为 VARCHAR(100) 型的列。VARCHAR 列的最大 32,672 。在数据中,VARCHAR 数据只占用恰好所需的空

下面的数据型用来存双字字符串:

  • GRAPHIC 用来存固定度的双字字符串。GRAPHIC 列的最大度是 127 个字符。
VARGRAPHIC 用来存变长度的双字字符串。VARGRAPHIC 列的最大度是 16,336 个字符。

 


DB2 提供了存非常的字符串数据的数据型。所有字符串数据型都具有相似的特征。首先,在数据中此数据在物理上并没有与行数据存在一起,意味着需要理才能访问此数据。数据型的度最大可以定义为 2GB。但是,需要的空只是实际使用的空数据型有:

  • LONG VARCHAR
  • CLOB(字符大象)
  • LONG VARGRAPHIC
  • DBCLOB(双字字符大象)
  • BLOB(二制大象) 

日期时间数据

DB2 提供了三日期和时间的数据型:

  • DATE
  • TIME
  • TIMESTAMP 

些数据型的在数据中存储为内部格式;但是用程序可以将其作字符串操。在些数据型之一,它被表示字符串。在更新些数据,将在引号中。

DB2 提供了操日期时间值的内置函数。例如,可以使用 DAYOFWEEK DAYNAME 函数判断一个日期是星期几。使用 DAYS 函数算两个日期之相差多少天。DB2 提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间时间戳。例如,CURRENT DATE 返回一个表示系上的当前日期的字符串。

日期和时间值的格式取决于在建数据库时指定的数据国家编码。有几可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据使用 USA 格式,那日期的格式是 mm/dd/yyyy。在用程序,可以使用 BIND 命令的 DATETIME 选项格式。

TIMESTAMP 数据型只有一格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn


XML 数据

DB2 提供了 XML 数据型来存格式良好的 XML 文档。

XML 列中的储为与字符串数据型不同的内部表示。要在 XML 数据型的列中存 XML 数据,需要使用 XMLPARSE 函数数据转换。可以使用 XMLSERIALIZE 函数将 XML 数据型的值转换为 XML 文档的串行化字符串DB2 提供了多其他的内置函数来操 XML 数据型。

的数据

DB2 适合自己用程序的数据型。有三的数据型:

  • 单值类基于内置型定新的数据型。个新型具有内置型相同的功能,但可以使用它确保只比相同型的。例如,可以基于 DECIMAL(10,2) 一个加元型(CANDOL)和一个美元型(USADOL)。种类型都基于同一内置型,但除非转换函数,否无法比下面是 CANDOL USADOL UDT CREATE TYPE 句:

CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS

CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS

 

DB2 生成函数来行基本型和单值类型之转换生成用于比较单值类例的比操作符。下列示了如何 CANDOL 型列的表,以及如何使用 CANDAL 转换函数向表中插入数据:

CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )

INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) ) 

         

XML 数据

DB2 提供了 XML 数据型来存格式良好的 XML 文档。

XML 列中的储为与字符串数据型不同的内部表示。要在 XML 数据型的列中存 XML 数据,需要使用 XMLPARSE 函数数据转换。可以使用 XMLSERIALIZE 函数将 XML 数据型的值转换为 XML 文档的串行化字符串DB2 提供了多其他的内置函数来操 XML 数据型。

的数据

DB2 适合自己用程序的数据型。有三的数据型:

  • 单值类基于内置型定新的数据型。个新型具有内置型相同的功能,但可以使用它确保只比相同型的。例如,可以基于 DECIMAL(10,2) 一个加元型(CANDOL)和一个美元型(USADOL)。种类型都基于同一内置型,但除非转换函数,否无法比下面是 CANDOL USADOL UDT CREATE TYPE 句:

CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS

CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS

 

DB2 生成函数来行基本型和单值类型之转换生成用于比较单值类例的比操作符。下列示了如何 CANDOL 型列的表,以及如何使用 CANDAL 转换函数向表中插入数据:

CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )

INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) ) 

         

  • 构化型:建由几个内置型列成的型。然后,可以在建表使用构化型。例如,可以建一 ADDRESS 构化型,它包含表示街道号、街道名、城市之的数据。然后在定其他表(如工表或者供商表)使用这种类型,因为这些表也需要同的数据。另外,构化可以在构中有子型。就允将属于某一构的象存在数据中。
  • 的引用型:在使用构化,可以使用引用型定义对另一个表中行的引用。些引用看起来与参照束相似,然而,它制表系。表中的引用允用不同的方法指定查询

构化和引用型是高里的信息只作为对这型的介

 

OK  屌丝大哥精心为你准备的DB2数据类型 怎么样 还满意吧 用户定义类型 确实很给力 不过用到时候较少
下来屌丝大哥为大家带来表的逆袭
首先 屌丝大哥带领众屌丝连接DB2
首先 启动DB2 
db2start
db2 connect to DiaoSi user diaosi using diaosipassword
有些屌丝可能不明白怎么连接 哥来解释  db2 connect to 数据库名称 user 用户名称 using 密码

所有数据都存在数据的表中。 由不同数据型的一列或多列成。数据存在行(或称为记录)中。

表是使用 CREATE TABLE SQL 句定的。DB2 提供了一个用来建表的 GUI 工具 DB2 Control Center个工具可以根据指定的信息建一个表。它生成 CREATE TABLE SQL 句,以后可以在脚本或用程序中使用句。

个数据都有一表,称统编目表(system catalog tables,它保存于数据中所有象的信息DB2 基系统编目表提供了视图。数据中定个表在视图 SYSCAT.TABLES 中都有相的一行。数据个表的一列在 SYSCAT.COLUMNS 中都有相的一行。可以用 SELECT 句像看数据中的任何其他表一样查视图;但是,不能使用 INSERTUPDATE DELETE 句。在行数据定义语言(DDL句(比如 CREATE)和其他操作(比如 RUNSTATS些表会自更新。

建表


 

使用 CREATE TABLE SQL 句在数据中定一个表。下面的建一个简单的名 BOOKS 的表,表包含三列:

CREATE TABLE Diaosi ( DiaoSiID INTEGER,

                       Diaosi  NAME VARCHAR(100),

                     muer CHAR(10) )

 

可以使用 CREATE TABLE SQL 建与数据中另一个表或视图相似的表:

CREATE TABLE MYmuer LIKE BalckMUer



建一个与原始表或视图具有相同列的表。新表的列具有与原始表或视图中的列相同的名称、数据型和可空属性。可以指定制其他属性(比如列默认值标识属性)的子句。

选项可用于 CREATE TABLE 句(将在下面介新概念时讨论)。CREATE TABLE SQL 句的详细信息可以在 SQL Reference 中找到( 参考)。

建了表之后,有几方法可以在其中填充数据。INSERT 句允向表中插入一行或几行数据。DB2 提供了一些用程序插入来自文件的大量数据。IMPORT 用程序使用 INSERT 句插入行。它是向数据中加少量数据而设计的。LOAD 用程序用于加大量数据,它将行直接插入到数据中的数据,因此比 IMPORT 用程序要快得多。

在数据中存

表存在数据表空 中。表空间拥有分配的物理空。在建表之前必建表空

建表,可以 DB2 把表放在默的表空内,也可以指定表应该驻留在哪个表空内。下面的 CREATE TABLE 句将  DiaoSiS 
表放在 
 DiaoSiINFO 表空内:

CREATE TABLE DiaoSiS(

                                DiaoSiID INTEGER,

                       Diaosi  NAME VARCHAR(100),

                     muer CHAR(10) )

             IN DiaoSiINFO



修改表

可以使用 ALTER TABLE SQL 句更改表的某些特征。例如,可以添加或除:

  • 一个或多个惟一性或参照
  • 一个或多个检查约

下面的句向   DiaoSi 表中添加一个列   DiaoSiTYPE  

ALTER TABLE DiaoSi ADD DiaoSiTYPE CHAR(1)

 

  


posted on 2012-12-06 23:12 顺其自然EVO 阅读(361) 评论(0)  编辑  收藏 所属分类: DB2


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜