Sinonimo vs Alias (nei database ORACLE) | Sinonimi privati e sinonimi pubblici
In inglese, sinonimo e alias hanno quasi gli stessi significati. Ma nei database sono due cose diverse. Soprattutto nei database ORACLE, il loro utilizzo è diverso. I sinonimi sono usati per fare riferimento a oggetti di uno schema o database da un altro schema. Quindi sinonimo è un tipo di oggetto di database. Ma gli alias stanno arrivando in un modo diverso. Questo significa; non sono oggetti di database. Gli alias vengono utilizzati per fare riferimento a tabelle, viste e colonne all'interno di query.
Sinonimi
Questi sono un tipo di oggetti di database. Si riferiscono ad altri oggetti nel database. L'uso più comune del sinonimo è fare riferimento a un oggetto di uno schema separato utilizzando un altro nome. Ma è anche possibile creare sinonimi per fare riferimento agli oggetti di un altro database (nei database distribuiti, utilizzando i collegamenti al database). Tabelle, viste, funzioni, procedure, pacchetti, sequenze, viste materializzate, oggetti di classe java e trigger possono essere usati come riferimenti per i sinonimi. Esistono due tipi di sinonimi.
- Sinonimi privati (possono essere utilizzati solo dall'utente che li ha creati.)
- Sinonimi pubblici (possono essere utilizzati da tutti gli utenti che dispongono dei privilegi appropriati)
Qui, c'è una semplice sintassi per creare un sinonimo in un database separato, crea il sinonimo myschema.mytable1 per [email protected]_link1
Dato che abbiamo un sinonimo chiamato mytable1 in myschema per [email protected]_link1 (tabella del database distribuito), possiamo facilmente fare riferimento alla tabella del database distribuito usando mytable1. Non è necessario utilizzare ovunque il nome dell'oggetto lungo con il collegamento al database.
Alias
Questi sono solo un altro nome per una vista, una tabella o una colonna all'interno di una query. Non sono oggetti di database. Pertanto, gli alias non sono validi ovunque nello schema/database. Sono validi solo all'interno della query. Vediamo questo esempio, seleziona tab1.col1 come c1, tab2.col2 come c2
da user1.tab1 tab1, user1.tab2 tab2
dove tab1.col1=tab2.col2
Qui, c1 e c2 sono alias di colonna, utilizzati per tab1.col1 e tab2.col2, e tab1 e tab2 sono alias di tabella, utilizzati per user1.table1 e user2.table2. Tutti questi alias sono validi solo all'interno di questa query.
Qual è la differenza tra sinonimo e alias (nei database ORACLE)?