|
知识路径: > 数据库技术 > 数据库标准语言—SQL > SQL-99所支持的对象关系模型 > 复杂类型 >
|
相关知识点:3个
|
|
|
|
在SQL-99中构造器函数(constructor function)用来创建结构类型的值。与结构类型同名的函数就是这个结构类型的构造器函数。
|
|
|
然后我们可以用Publisher('McGraw-Hill','New York')来创建Publisher类型的值。
|
|
|
SQL-99也支持除构造器之外的其他函数。这些函数的名字必须不同于任何结构类型的名字。注意在SQL-99中,不像在面向对象数据库中,构造器创建的是类型的一个值,而不是类型的一个对象。也就是说,构造器创建的值没有对象标识。在SQL-99中对象相当于关系中的元组,通过在关系中插入一个元组来创建。
|
|
|
默认的情况下,每一个结构类型都有一个不带参数的构造器,它将属性设为默认值。任何其他的构造器必须被显式地创建。对同一个结构类型可以有不止一个构造器,虽然它们有一个相同的名字,但是它们必须以参数的个数和类型来相互区别。
|
|
|
|
|
我们可以在圆括号中列出它的属性来构造一行的值。例如,我们声明Publisherl属性为一个行类型,我们可以这样构造它的值:
|
|
|
|
|
通过在关键字set之后的圆括号内列举它的元素的方法创建以集合为值的属性,例如keyword-set。可以像集合值一样创建多重集合值,此时只需要用multiset替换set。
|
|
|
可以创建用一个books关系定义的类型的一个元组如下:
|
|
|
|
这里通过合适参数调用Publisher的构造器函数创建了Publisher属性的值。如果想在books关系中插入上述元组,可以执行语句:
|
|
|
|