Synonym vs Alias (in ORACLE-Datenbanken) | Private Synonyme und öffentliche Synonyme
Im Englischen haben Synonym und Alias fast die gleiche Bedeutung. In Datenbanken sind dies jedoch zwei verschiedene Dinge. Insbesondere in ORACLE-Datenbanken ist ihre Verwendung unterschiedlich. Synonyme werden verwendet, um Objekte eines Schemas oder einer Datenbank aus einem anderen Schema zu referenzieren. Das Synonym ist also ein Datenbankobjekttyp. Aber Aliase kommen auf eine andere Art und Weise. Das bedeutet; Sie sind keine Datenbankobjekte. Aliase werden verwendet, um Tabellen, Ansichten und Spalten in Abfragen zu referenzieren.
Synonyme
Dies ist eine Art von Datenbankobjekten. Sie verweisen auf andere Objekte in der Datenbank. Die häufigste Verwendung von Synonymen besteht darin, ein Objekt eines separaten Schemas unter Verwendung eines anderen Namens zu referenzieren. Es können jedoch auch Synonyme erstellt werden, um auf die Objekte einer anderen Datenbank zu verweisen (in verteilten Datenbanken mithilfe von Datenbankverknüpfungen). Tabellen, Ansichten, Funktionen, Prozeduren, Pakete, Sequenzen, materialisierte Ansichten, Java-Klassenobjekte und Trigger können als Referenzen für die Synonyme verwendet werden. Es gibt zwei Arten von Synonymen.
- Private Synonyme (können nur von dem Benutzer verwendet werden, der sie erstellt hat.)
- Öffentliche Synonyme (können von allen Benutzern verwendet werden, die über die entsprechenden Berechtigungen verfügen)
Hier ist eine einfache Syntax zum Erstellen eines Synonym in einer separaten Datenbank:
Erstellen Sie das Synonym myschema.mytable1 für [email protected] _link1
Da wir in myschema ein Synonym mit dem Namen mytable1 für [email protected] _link1 (verteilte Datenbanktabelle) haben, können wir die verteilte Datenbanktabelle einfach mit mytable1 referenzieren. Wir müssen den langen Objektnamen nicht überall mit Datenbankverknüpfung verwenden.
Alias
Dies ist nur ein anderer Name für eine Ansicht, eine Tabelle oder eine Spalte in einer Abfrage. Sie sind keine Datenbankobjekte. Daher sind Aliase nicht überall im Schema / in der Datenbank gültig. Sie sind nur innerhalb der Abfrage gültig. Lassen Sie uns dieses Beispiel sehen,
Wählen Sie tab1.col1 als c1, tab2.col2 als c2
von user1.tab1 tab1, user1.tab2 tab2
Dabei ist tab1.col1 = tab2.col2
Hier sind c1 und c2 Spaltenaliasnamen, die für tab1.col1 und tab2.col2 verwendet werden, und tab1 und tab2 sind Tabellenaliasnamen, die für user1.table1 und user2.table2 verwendet werden. Alle diese Aliase sind nur in dieser Abfrage gültig.
Was ist der Unterschied zwischen Synonym und Alias (in ORACLE-Datenbanken)? Synonyme sind ein Datenbankobjekttyp. Aliase sind jedoch nur ein Name, der auf eine Tabelle, Ansicht oder Spalte in einer Abfrage verweist. Kein DatenbankobjektSynonyme können für Tabellen, Ansichten, Funktionen, Prozeduren, Pakete, Sequenzen, materialisierte Ansichten, Java-Klassenobjekttypen und Trigger erstellt werden. Aliase werden jedoch nur für Ansichten, Tabellen und deren Spalten verwendetDa Synonyme ein Datenbankobjekt sind, sind sie innerhalb des Schemas (privates Synonym) oder innerhalb der Datenbank (öffentliches Synonym) gültig. Aliase sind jedoch innerhalb der Abfrage gültig, in der sie verwendet werdenJedes Schema benötigt die Berechtigung "Synonym erstellen", um Synonyme zu erstellen. Es gibt jedoch kein Privileg, Aliase zu verwenden |