What is the Difference Between Synonym and Alias?

🆚 Go to Comparative Table 🆚

The main difference between a synonym and an alias lies in their definitions and usage:

  • Synonym: A synonym is a word that has the same or nearly the same meaning as another word. For example, the words "time," "moment," "period," "term," and "duration" are synonyms of one another. In the context of databases, a synonym is a database object type that is used to refer to objects of a schema or a database from another schema. Synonyms can be private (usable only by the user who created them) or public (usable by all users who have the appropriate privileges).
  • Alias: An alias is a name that is used for another name instead of the real name. In databases, an alias is not a database object but rather a name used to refer to a table, view, or column inside a query. Aliases are not valid everywhere in the schema/database; they are valid only inside the query.

Here are some key points to differentiate between synonyms and aliases:

  • Synonyms are database objects, while aliases are not.
  • Synonyms can be private or public, while aliases are not associated with any privileges.
  • Synonyms are used to refer to objects in a schema or database, while aliases are used to refer to tables, views, or columns inside a query.
  • Synonyms are dropped when the table or tablespace is dropped, while aliases are retained even if the table or tablespace is dropped.

Comparative Table: Synonym vs Alias

The main differences between a synonym and an alias are as follows:

Feature Synonym Alias
Definition A synonym is a database object that refers to another object in the database, such as a table or view. An alias is a temporary name used in a query to refer to a table, view, or column.
Scope Synonyms can be used to refer to objects in separate schemas or databases. Aliases are only applicable within the query they are defined in.
Object Type Synonyms are database objects. Aliases are not database objects and are only applicable within the query they are defined in.
Visibility Synonyms can be public (accessible to all users with appropriate privileges) or private (accessible only to the creator). Aliases are generally temporary and specific to the query they are used in.
Creation Synonyms can be created for tables, views, and even databases in distributed environments. Aliases can be defined on an undefined name and are used only within the query they are defined in.
Persistence Synonyms are retained as long as the object they refer to exists. Aliases are temporary and are only applicable within the query they are defined in.

In summary, synonyms are database objects that refer to other objects, while aliases are temporary names used within queries. Synonyms can be used to refer to objects in separate schemas or databases, while aliases are limited to the query they are defined in.