首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于添加具有短和长字段名的新列的AS400 DDL语法

用于添加具有短和长字段名的新列的AS400 DDL语法
EN

Stack Overflow用户
提问于 2015-09-08 14:57:19
回答 2查看 2.5K关注 0票数 1

AS400 SQL向现有表添加列的语法是什么?我还需要指定长字段名和短字段名。

(SQL -结构化查询语言) (DDL -数据定义语言:这是改变表结构或修改数据库设置的SQL )。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-09 11:49:51

若要添加新列:

代码语言:javascript
复制
ALTER TABLE mytable 
   ADD long_column_name FOR COLUMN shortname VARCHAR(21)
        BEFORE existing_column_name;

如果要在记录末尾添加列,则可以省略record子句。

大多数IBM商店也希望定义列文本描述和列标题。

代码语言:javascript
复制
LABEL ON COLUMN mytable.colname    TEXT IS '50 char description goes here';

LABEL ON COLUMN mytable.colname    IS 'Heading Line 1      Heading Line 2      Heading Line 3';   

其中列标题字符串包含最多3个部分,每个部分20个字符,允许标题显示3行高。

定义列文本描述的语句通过使用text关键字进行区分。

票数 6
EN

Stack Overflow用户

发布于 2015-09-08 14:57:19

代码语言:javascript
复制
ALTER TABLE Student ADD StaffId_Advisor FOR COLUMN Advisor VARCHAR(21)

您将看到Advisor,而不是在sysibm.SQLColumns中看到一个名为sysibm.SQLColumns的字段。

下面是描述表的一些代码:

代码语言:javascript
复制
SELECT table_name, system_column_name, column_text, Type_Name, column_Size
FROM sysibm.SQLColumns
WHERE table_schem IN ('UWSP_TEST', 'UWSP_PROD') -- Library Name
AND upper(table_name) like 'STUDENT' -- Table name make sure it is upper case
--order by system_column_name

关于我使用的字段命名约定: StaffId_Advisor假设我有一个名为Staff的表。在这个表中,我有一个名为StaffId的主键。工作人员表包括教授、助理、秘书、附属学院、学生顾问、警卫等。学生可能有多个字段,带有外键约束和Staff表。为了避免混淆(并坚持1NF,我认为),我使用主键表的字段名来命名字段,后面跟着字段的用途。这将确保其他开发人员理解该字段的使用。除了单一用途值之外,我认为1NF还需要对字段进行唯一的命名,而且在任何使用该字段的地方,名称都应该是相同的。虽然这是一个隐含的定义,但我认为这应该是一个重要的区别。在这种情况下,使用修饰符来澄清字段的用途。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32461074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档