## COLUMNS

### Prerequisites

You have generated the demo data for the SQL Tutorial.

Log on to the demo database instance DEMODB as user MONA.

### Examples

You can use the system table COLUMNS to determine the following database information, among other things:

● Columns of the table RESERVATION in the order in which they were defined, together with the respective comments.

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

● Data types of all columns of the table CUSTOMER

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

● All columns of the base tables of the schema HOTEL that have the data type DATE

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

● All columns of the table HOTEL for which the default value was defined, as well as the default value itself.

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

Note that the column DEFAULT has to be defined as a special identifier (Identifier in double quotes) because DEFAULT is a reserved keyword.

● All primary key columns of the table ROOM, sorted according to sequence in the primary key.

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

● All columns of the table CUSTOMER defined as NOT NULL.

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

● All columns of the table RESERVATION that can be changed by the user MONA.

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

● All columns of the table RESERVATION that can be changed by the user MONA, for whom this privilege may be passed on.

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

The prerequisite for the following example is the definition of the domains and their use in the tables. Proceed as described in SQL Tutorial, Domains.

● All table columns for which the definition of the domain name_domain or birthday_domain was specified.

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

Columns in the index: see INDEXCOLUMNS

Columns in the referential constraint: see FOREIGNKEYCOLUMNS

Primary table or view table columns in the view table: see VIEWCOLUMNS