## COLUMNS

### Voraussetzungen

Sie haben die Demo-Daten für das SQL-Tutorial erzeugt.

Melden Sie sich als Benutzer MONA an die Demo-Datenbankinstanz DEMODB an.

### Beispiele

Anhand der Systemtabelle COLUMNS können Sie unter anderem folgende Datenbankinformationen ermitteln:

● Spalten der Tabelle RESERVATION in der Reihenfolge ihrer Definition, zusammen mit den zugehörigen Kommentaren

SELECT columnname, comment
FROM DOMAIN.COLUMNS
WHERE tablename = 'RESERVATION' ORDER BY pos

● Datentypen aller Spalten der Tabelle CUSTOMER

SELECT columnname, datatype, len, dec, codetype
FROM DOMAIN.COLUMNS
WHERE tablename = 'CUSTOMER'

● Alle Spalten der Basistabellen des Schemas HOTEL, die den Datentyp DATE besitzen

SELECT tablename,columnname
FROM DOMAIN.COLUMNS
WHERE schemaname = 'HOTEL'
AND tabletype = 'TABLE'
AND datatype = 'DATE'

● Alle Spalten der eigenen Tabelle HOTEL, für die ein Vorschlagswert definiert wurde, sowie dieser Vorschlagswert

SELECT columnname, "DEFAULT"
FROM DOMAIN.COLUMNS
WHERE schemaname = 'HOTEL'
AND tablename = 'HOTEL'
AND "DEFAULT" IS NOT NULL

Beachten Sie, dass die Spalte DEFAULT als spezieller Bezeichner (Bezeichner eingeschlossen in doppelte Anführungszeichen) angegeben werden muss, da DEFAULT ein reserviertes Schlüsselwort ist.

● Alle Primärschlüsselspalten der Tabelle ROOM, sortiert nach ihrer Reihenfolge im Primärschlüssel

SELECT columnname
FROM DOMAIN.COLUMNS
WHERE tablename = 'ROOM' AND mode = 'KEY' ORDER BY keypos

● Alle mit NOT NULL definierten Spalten der Tabelle CUSTOMER

SELECT columnname
FROM DOMAIN.COLUMNS
WHERE tablename = 'CUSTOMER' AND mode = 'MAN'

● Alle für den Benutzer MONA änderbaren Spalten der Tabelle RESERVATION

SELECT columnname
FROM DOMAIN.COLUMNS
WHERE tablename = 'RESERVATION' AND columnprivileges LIKE '%UPD%'

● Alle für den Benutzer MONA änderbaren Spalten der Tabelle RESERVATION, für die er dieses Privileg weitervergeben darf

SELECT columnname
FROM DOMAIN.COLUMNS
WHERE tablename = 'RESERVATION' AND columnprivileges LIKE '%UPD+%'

Voraussetzung für das folgende Beispiel ist die Definition von Wertebereichen und deren Verwendung in Tabellen. Verfahren Sie dazu z.B. wie im SQL-Tutorial, Wertebereiche beschrieben.

● Alle Tabellenspalten, für die bei der Definition der Wertebereich name_domain oder birthday_domain angegeben wurden

SELECT schemaname, tablename, columnname
FROM DOMAIN.COLUMNS
WHERE domainname = 'NAME_DOMAIN' OR domainname = 'BIRTHDAY_DOMAIN'

Spalten im Index: siehe INDEXCOLUMNS

Spalten im referentiellen Constraint: siehe FOREIGNKEYCOLUMNS

Primärtabellen- oder View-Tabellen-Spalten in View-Tabelle: siehe VIEWCOLUMNS