# CHAPTER 1: Introduction

## 1.1 Overview

This chapter is the reference for the Empress SQL Precompiler for C of the Empress Relational Database Management System (RDBMS).

An overview of the Empress Query Language, details of its operating conventions, and the conventions of syntax notation used in the Empress manual set, are presented in the Empress SQL: Reference.

We assume that you are familiar with the C programming language and with the necessary database principles. This manual is intended as a guide and reference to the Empress SQL Precompiler and not as a general guide to programming or creating Empress applications or databases.

The Empress SQL Precompiler allows you to access and process data stored in Empress databases, using SQL commands from within a C program. The following operations on tables in Empress databases are supported:

- Adding rows to a table.
- Updating rows in a table.
- Deleting rows from a table.
- Selecting rows from a table.
- Adding, updating and deleting all or part of a context of selected rows.
- Use of the transaction facilities of Empress to maintain data integrity.

The following sections discuss the conventions for naming and calling databases, tables, and attributes as well as the notation used in presenting the SQL Precompiler command syntax.

## 1.2 Reserved Keywords

The Precompiler recognizes a number of keywords, related to both SQL and host languages. None of the keywords can be used as a program variable name in the SQL declaration section.

For a complete list of all reserved keywords, please refer to our Reserved Keyword document.

Although the Precompiler accepts keywords typed in any combination of upper- or lowercase, keywords specific to the host language should be typed according to the conventions adopted by the local compiler.

If a table or attribute has been named with one of the above keywords, this name must be treated as a complex name, rather than as a simple one. The attribute name should be enclosed in quotes and either preceded by the keyword `ATTR` or prefixed with the table name and a period (following the `TABLE_NAME.ATTR_NAME` convention).

Beside the keyword sets mentioned above, the name of the functions that are stored as Persistent Stored Modules (PSM) are also considered as Keywords for that database.

## 1.3 Synonyms

The following is a list of synonyms to Precompiler keywords:

`!=` | `~=`
`!MATCH` | `~MATCH`
`!SMATCH` | `~SMATCH`
`ASC` | `ASCENDING`
`ATTR` | `ATTRIBUTE`
`CANCEL` | `ROLLBACK`
`DATABASE` | `DB`
`DESC` | `DESCENDING`
`DISTINCT` | `UNIQUE`
`EXCL` | `EXCLUSIVE`
`INCL` | `INCLUSIVE`
`ORDER` | `SORT`
`TRANSACTION` | `WORK`