Video: Section 8 2024
En situation kan uppstå där du måste ge SQL-privilegier över nivåer. Mycket av strukturen i strukturerad typ härleds ur ideerna om objektorienterad programmering. En av de idéer som kommer ut ur det är tanken på en hierarki , där en typ kan ha undertyper som härleder några av deras attribut från den typ de kommer ifrån (deras supertyp ).
Förutom de arvade egenskaperna kan de också ha attribut som exklusivt är egna. Det kan finnas flera nivåer av en sådan hierarki, med typen längst ner kallad en bladtyp .
Ett typat bord är ett bord där varje rad som lagras i tabellen är en förekomst av den associerade strukturerade typen. Ett skrivetabell har en kolumn för varje attribut av dess associerade strukturerade typ. Kolumnens namn och datatyp är samma som attributets namn och datatyp.
Anta att du är en skapare av målningar som du säljer genom gallerier. Förutom originalverk, säljer du även signerade, numrerade, begränsade utgåvor, osignerade onummererade öppna versioner och affischer. Du kan skapa en strukturerad typ för ditt konstverk enligt följande:
CREATE TYPE artwork (artist CHARACTER VARYING (30), titel CHARACTER VARYING (50), beskrivning CHARACTER VARYING (256), medium CHARACTER VARYING (20), creationDate DATE) NOT FINAL
Här är ett annat fall av en funktion som inte finns på alla DBMS-produkter. PostgreSQL har dock CREATE TYPE-satsen, liksom Oracle 11g och SQL Server 2012.
Som en artist som försöker hålla reda på din inventering vill du skilja mellan original och reproduktioner. Du kanske vill skilja mellan olika typer av reproduktioner. Konstverkstypen kan ha undertyper, som i sin tur kan ha egna undertyper.
Det finns en en-till-en-korrespondens mellan typerna i typhierarkin och tabellerna i den typade tabellenhierarkin. Standard tabeller kan inte placeras i en hierarki som liknar den som diskuteras här för typade tabeller.
I stället för en primär nyckel har ett skrivetabell en självreferenskolonn som garanterar unikhet, inte bara för den maximala supertabellen för en hierarki utan också för alla dess undergrupper. Självreferenskolumnen specificeras av en REF IS-klausul i den maximala supertabellen CREATE-satsen. När referensen är systemgenererad garanteras unikhet över hela linjen.