如何创建需要的DB2表名

数据库
DB2数据库中创建表名时,根据用户的需求,可能含有各类字符。本文将为您介绍创建表名时使用不同字符的方法,供您参考,希望对你有所启迪。

DB2数据库中创建表名时,根据用户的需求,可能含有各类字符。本文将为您介绍创建表名时使用不同字符的方法,供您参考,希望对你有所启迪。

环境:
产品:DB2 UDB
平台:跨平台
版本:v8

问题描述:

在 DB2 UDB 中除非另外指定,否则,所有名称都可包括下列字符:

·A 到 Z。当在大多数名称中使用时,字符 A 到 Z 将从小写形式转换为大写形式。
·0 到 9
·@、#、$ 和 _(下划线)
·名称不能以数字或下划线字符开始。

作为数据库对象的表,其命名同样遵循上述规则,因此即使用户创建表时使用的名称是小写的,DB2 仍会自动将其转化为大写的形式,如:

db2 create table testname (a1 int)
DB20000I SQL 命令成功完成。

db2 list tables

表/视图    模式 类型 创建时间
------------------------------- --------------- ----- --------------------------
:
TESTNAME TESTUSER T 2005-09-24-18.15.30.428001
:

如果用户希望创建的表名含有小写字符时应如何处理呢?这里简单介绍一下其创建和使用的方法。#p#


解答:

如果需要创建含小写英文字符的 DB2 表名,应使用双引号将表名括起来,为避免双引号被转义,需在双引号前加上转义字符“\”。以创建一个名为 TestName 的表为例,其创建语句应写为:

db2 "create table \"TestName\" (col1 int)" -- Windows & Unix 环境下

如果创建的表名中包含有“$”的特殊字符时,在 Unix 环境下,还需要在这些字符的前面也加一个转义字符,以创建名为 Test$Name 的表为例,创建语句应为:

db2 create table \"Test\$Name\" (col1 int)

而在 Windows 环境下,可直接写为:

db2 create table \"Test$Name\" (col1 int)

表创建完成之后,在以后对这些表进行引用的时候,同样需要象在创建表的语句中那样对表名加转义符进行引用,如:

Windows 环境下:

db2 insert into \"Test$Name\" values (1),(2)
DB20000I SQL 命令成功完成。#p#

db2 select * from \"Test$Name\"

COL1
-----------
1
2
2 条记录已选择。

Unix 环境下:

db2 "insert into \"Test\$Name\" values (1),(2)"
DB20000I SQL 命令成功完成。

db2 "select * from \"Test\$Name\""

COL1
-----------
1
2
2 条记录已选择。

当然除举例中所使用的“$”特殊字符外,还有一些其它的特殊字符,在今后使用中,应根据情况尝试加上转义符,以创建用户需要的表名。

责任编辑:段燃 来源: C++博客
相关推荐

2010-11-02 14:45:12

DB2创建表空间

2010-11-03 15:56:13

DB2创建表

2010-09-30 14:48:26

DB2查询

2010-11-03 15:49:32

DB2删除表

2010-11-01 16:19:18

2010-09-30 09:53:05

DB2创建表空间

2010-09-30 10:04:06

DB2创建表空间

2010-11-02 14:08:29

DB2创建用户

2010-11-03 09:34:39

DB2临时表

2010-11-01 11:13:57

DB2表管理

2010-11-01 12:11:43

DB2表空间

2010-11-01 16:07:22

DB2表空间

2010-11-02 11:36:10

DB2索引创建

2010-11-01 16:30:21

DB2表空间

2010-11-01 16:44:43

DB2表空间

2010-11-01 16:38:13

DB2表空间

2010-09-01 09:32:08

DB2恢复

2010-11-02 14:37:58

DB2临时表定义

2010-09-01 11:17:29

DB2备份

2010-11-03 14:57:44

DB2备份所有表
点赞
收藏

51CTO技术栈公众号