Synonyme vs Alias (dans les bases de données ORACLE) | Synonymes privés et synonymes publics
En anglais, synonyme et alias ont presque le même sens. Mais dans les bases de données, ce sont deux choses différentes. Surtout dans les bases de données ORACLE, leur utilisation est différente. Les synonymes sont utilisés pour référencer des objets d'un schéma ou d'une base de données à partir d'un autre schéma. Le synonyme est donc un type d'objet de base de données. Mais les alias arrivent d'une manière différente. Cela signifie; ce ne sont pas des objets de base de données. Les alias sont utilisés pour référencer des tables, des vues et des colonnes dans des requêtes.
Synonymes
Il s'agit d'un type d'objets de base de données. Ils font référence à d'autres objets de la base de données. L'utilisation la plus courante du synonyme est de faire référence à un objet d'un schéma séparé en utilisant un autre nom. Mais des synonymes peuvent également être créés pour référencer les objets d'une autre base de données (dans les bases de données distribuées, en utilisant des liens de base de données). Les tables, les vues, les fonctions, les procédures, les packages, les séquences, les vues matérialisées, les objets de classe Java et les déclencheurs peuvent être utilisés comme références pour les synonymes. Il existe deux types de synonymes.
- Synonymes privés (ne peuvent être utilisés que par l'utilisateur qui les a créés.)
- Synonymes publics (peuvent être utilisés par tous les utilisateurs disposant des privilèges appropriés)
Voici une syntaxe simple pour créer un synonyme dans une base de données séparée, créer un synonyme myschema.mytable1 pour [email protected]_link1
Puisque nous avons un synonyme nommé mytable1 dans myschema pour [email protected]_link1 (table de base de données distribuée), nous pouvons facilement référencer la table de base de données distribuée en utilisant mytable1. Nous n'avons pas besoin d'utiliser partout le nom d'objet long avec le lien de la base de données.
Alias
Il s'agit simplement d'un autre nom pour une vue, une table ou une colonne dans une requête. Ce ne sont pas des objets de base de données. Par conséquent, les alias ne sont pas valides partout dans le schéma/la base de données. Ils sont valides uniquement à l'intérieur de la requête. Voyons cet exemple, sélectionner tab1.col1 comme c1, tab2.col2 comme c2
depuis user1.tab1 tab1, user1.tab2 tab2
où tab1.col1=tab2.col2
Ici, c1 et c2 sont des alias de colonne, qui sont utilisés pour tab1.col1 et tab2.col2, et tab1 et tab2 sont des alias de table, qui sont utilisés pour user1.table1 et user2.table2. Tous ces alias sont valides uniquement dans cette requête.
Quelle est la différence entre Synonyme et Alias (dans les bases de données ORACLE) ?