stringtranslate.com

Tipo estructurado

El estándar SQL:1999 introdujo una serie de características de bases de datos relacionales de objetos en SQL , principalmente entre ellas los tipos estructurados definidos por el usuario , generalmente llamados simplemente tipos estructurados . Estos pueden definirse tanto en SQL simple con CREATE TYPEcomo también en Java a través de SQL/JRT . Los tipos estructurados de SQL permiten la herencia única .

Los tipos estructurados son compatibles en distintos grados en Oracle Database , IBM Db2 , PostgreSQL y Microsoft SQL Server , aunque este último solo permite tipos estructurados definidos en CLR .

Ejemplos de SQL

Tipo estructurado de objeto

Para definir un tipo de estructura personalizado utilizando Oracle Database, se pueden utilizar instrucciones como estas:

CREAR TIPO Tipo_Persona COMO OBJETO ( titulo_persona VARCHAR2 ( 10 ), nombre_persona VARCHAR2 ( 20 ), apellido_persona VARCHAR2 ( 20 ), ) NO FINAL ;             

Este tipo de estructura se puede utilizar luego para crear una tabla que también contendría todas las columnas definidas en Person_Type :

CREAR TABLA Tabla_Persona DE Tipo_Persona ;    

Los tipos de estructura personalizados admiten la herencia, lo que significa que se puede crear otro tipo que herede del anterior. NOT FINALSin embargo, la declaración debe incluirse en una definición de tipo de estructura base para permitir la creación de otros subtipos.

CREAR TIPO Tipo_Estudiante DEBAJO DE Tipo_Persona ( número_matrícula NÚMERO ( 10 ) );       

Student_Type se puede utilizar para crear una Student_Table que también incluirá todas las columnas definidas en Person_Type . La clave principal y las restricciones se deben definir durante o después de la creación de la tabla y no se pueden definir dentro del tipo de estructura en sí.

CREAR TABLA Student_Table OF Student_Type ( numero_matrícula CLAVE PRIMARIA , RESTRICCIÓN person_title_not_null_constraint NOT NULL ( person_title ), );             

Cada tipo de estructura personalizada también puede contener otros tipos para admitir estructuras más complejas:

CREAR TIPO Address_Type COMO OBJETO ( address_street VARCHAR2 ( 30 ), address_city VARCHAR2 ( 30 ), );         CREAR TIPO Universidad COMO OBJETO ( nombre_universidad VARCHAR2 ( 30 ), dirección_universidad Tipo_Dirección );         

Lectura adicional