SQL中的Collection和Library有区别吗?

时间:2013-11-25 16:47:50

标签: sql db2

我们教授分配给我们的任务表明我们需要做以下事情:

将包含SQL语句的sql脚本文件提交到以下问题

  • 创建收藏
  • 创建所有表格,从分配1解决方案上载到黑板
  • 添加主键和外键给他们
  • INSERT(3个记录的最小值)到每个表
  • 从每个表中更新和删除(最少1条记录)

然而,在非讲座中他使用了术语集合,我总是听到图书馆和其他一些东西。什么是收藏品?

我使用notepad ++并将语言设置为SQL,然后输入

创建集合但是,以蓝色创建高光,但集合没有分配颜色(图书馆也没有)。

当我尝试谷歌搜索答案时,我从IBM那里得到了这个

“SQL集合是放置表,视图,索引和包的基本对象”

所以一个集合只是一个图书馆不是吗?

所以如果是这种情况,那么在iSeries(AS / 400)中我会在命令行上输入

CREATE COLLECTION ASSIGN1

但是在脚本中会是同样的事情吗?

感谢您的时间。

修改 的 我的教授给我发了一个例子,一个.sql文件在iSeries程序中打开,名为“Run SQL Scripts”,然而,他没有解释任何内容,只是把这个作为一个例子发送给我.....所以是假设Collection与创建库相同是安全的吗?

CREATE COLLECTION FARA042;

CREATE TABLE FARA043.EMPLOYEE (
    EMP_NUM VARCHAR(10) CONSTRAINT FARA043.EMPLOYEE_PK PRIMARY KEY,
    EMP_FNAME VARCHAR(50),
    EMP_LNAME VARCHAR(50));

SELECT * FROM FARA043.SYSTABLES;
SELECT * FROM FARA043.SYSCOLUMNS
    WHERE TABLE_NAME = 'CHARTER';

1 个答案:

答案 0 :(得分:2)

你是对的。在 IBM i (以前称为iSeries,System i)中,术语LibraryCOLLECTIONSCHEMA都指向相同的内容。 IBM现在使用术语SCHEMA而不是术语COLLECTION来符合更新的SQL标准,但它们是同义词。但是,术语COLLECTION已被弃用,因此不应再使用。

CRTLIB和`CREATE SCHEMA'(或创建收集)之间存在一些细微差别。

CL command CRTLIB允许您指定library的描述,就像任何IBM i对象都有对象描述一样。您还可以指定在有人调试时是否将库视为*PROD*TEST库。在IBM i上,当开发人员开始调试时,其中一个设置是一个安全功能,指示是否允许会话更新*PROD库中的文件(表)。

另一方面,SQL CREATE SCHEMA statement不仅创建了一个库,而且还使用目录视图和自动数据库日志记录(日志记录)进行设置。

在SQL中创建模式后,您可以返回CL并使用CHGLIB command来设置库类型和描述,从而获得两种方法的好处。

另一个区别是,SQL CREATE SCHEMA语句允许您创建{i}比IBM i 10-character标准names longer的模式。如果您这样做,我强烈建议您使用FOR SYSTEM NAME子句为其提供有效的10个字符的OS对象名称,否则操作系统将被强制生成10个字符的库名称。