การสร้างค่าข้อมูลที่ซับซ้อนและการสร้างวัตถุ
ที่ผ่านมาเป็นการกำหนดชนิดข้อมูลที่ซับซ้อน และการสืบค้นข้อมูลในรีเลชันที่มีการกำหนดชนิดข้อมูลที่ซับซ้อน ในหัวข้อนี้จะเป็นการสร้างและปรับปรุงข้อมูลในรีเลชันที่มีชนิดข้อมูลที่ซับซ้อน
เราสามารถเพิ่มข้อมูลหนึ่งทูเปิลในรีเลชัน employee ได้ดังนี้
(105, John, set(Jane, Eric), set((125, 02/05/80), (168, 07/06/81), (198, 03/04/83)))
จากคำสั่งดังกล่าว จะเห็นว่าเราสร้างค่าข้อมูลของแอตทริบิวต์ผสม(composite attribute) โดยการกำหนดเป็นรายการไว้ในวงเล็บ และใช้คำหลัก set เป็นตัวบอกว่า เป็นชนิดข้อมูลที่ซับซ้อน ดังนั้นถ้าจะเขียนให้อยู่ในรูปของคำสั่ง SQL สามารถเขียนได้ดังนี้
insert into employee values (
105, John, set(Jane, Eric),
set((125, 02/05/80), (168, 07/06/81), (198, 03/04/83)) )
อีกทั้งเราสามารถที่จะใช้ข้อมูลที่ซับซ้อนในการสืบค้นข้อมูลได้อีกด้วย ดังตัวอย่างเช่น
select empno, name
from employee
where name in set(John,Anna,Tom)
คำสั่งข้างต้นเป็นการสืบค้นข้อมูล รหัสพนักงานและชื่อพนักงาน จากรีเลชัน employee ที่มีชื่อเป็น John หรือ Anna หรือ Tom
เราสามารถสร้างค่าข้อมูลแบบ multiset โดยใช้คำสั่ง multiset แทน set ได้ ซึ่งผลลัพธ์จะเป็นการสร้างรายการหรืออะเรย์ของข้อมูลภายในทูเปิลหนึ่ง ๆ
ในการสร้างอ๊อปเจ็กของข้อมูล เราจะใช้ฟังก์ชัน constructor ซึ่งฟังก์ชัน constructor ของชนิดข้อมูล T คือ T() เมื่อ constructor ถูกเรียกขึ้นมาสร้างอ๊อปเจ็กใหม่ของ T ก็จะทำการกำหนด oid ให้กับอ๊อปเจ็กและส่งอ๊อปเจ็ก กลับมา จากนั้นข้อมูลแต่ละตัวของอ๊อปเจ็กก็จะถูกกำหนดค่าข้อมูล
เราสามารถใช้คำสั่ง update เพื่อปรับปรุงข้อมูลในรีเลชันที่ซับซ้อนได้ เหมือนกับคำสั่ง update ที่ใช้ในฐานข้อมูลเชิงสัมพันธ์