SQL中的Collection和Library之间有区别吗



教授分配给我们的一项任务指出,我们需要做以下事情:

提交一个包含sql语句的sql脚本文件,回答以下问题

  • 创建集合
  • 创建上传到黑板的作业1解决方案中的所有表格
  • 向它们添加主键和外键
  • 在每张表中插入(至少3条记录)
  • 从每个表中更新和删除(至少1条记录)

然而,在没有一次讲座中,他使用了"收藏"一词,我总是听到图书馆和其他一些东西。什么是收藏品?

我正在使用notepad++并将语言设置为SQL,然后我在中键入

然而,CREATE COLLECTION会以蓝色创建高光,但该系列没有指定颜色(Library也没有)。

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

"SQL集合是放置表、视图、索引和包的基本对象"

所以一个收藏品就是一个图书馆,不是吗?

因此,如果是这样的话,那么在iSeries(AS/400)中,我会在命令行上键入

CREATE COLLECTION ASSIGN1

但在剧本中,这会是一样的吗?

谢谢你抽出时间。

编辑我的教授给我发了一个例子,一个.sql文件,在iSeries的一个名为"运行sql脚本"的程序中打开,然而,他没有解释任何事情,只是给我发一个例子。。。。。那么,假设收藏和创建图书馆是一样的,这安全吗?

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';

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

然而,CRTLIB和"CREATE SCHEMA"(或CREATE COLLECTION)之间存在一些细微的差异。

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

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

一旦在SQL中创建了模式,就可以返回CL并使用CHGLIB命令来设置库类型和描述,从而获得这两种方法的好处。

另一个区别是,SQLCREATE SCHEMA语句将允许您创建名称比IBMi10字符标准更长的模式。如果您这样做,我强烈建议您还使用FOR SYSTEM NAME子句为其提供一个有效的10个字符的操作系统对象名称,否则操作系统将被迫生成一个10个字符库名称。

最新更新