Synonym vs Alias (i ORACLE-databaser) | Private synonymer og offentlige synonymer
På engelsk har synonym og alias næsten samme betydning. Men i databaser er det to forskellige ting. Især i ORACLE-databaser er begge anvendelser forskellige. Synonymer bruges til at henvise objekter fra et skema eller en database fra et andet skema. Så synonym er en databaseobjektype. Men aliasser kommer på en anden måde. Det betyder; de er ikke databaseobjekter. Aliaser bruges til at henvise til tabeller, visninger og kolonner i forespørgsler.
Synonymer
Dette er en type databaseobjekter. De henviser til andre objekter i databasen. Den mest almindelige anvendelse af synonym er at henvise et objekt til et separat skema ved hjælp af et andet navn. Men synonymer kan også oprettes for at henvise objekterne til en anden database (i distribuerede databaser ved hjælp af databaselink). Tabeller, visninger, funktioner, procedurer, pakker, sekvenser, materialiserede visninger, java-klasseobjekter og udløsere kan bruges som referencer til synonymerne. Der er to typer synonymer.
- Private synonymer (kan kun bruges af den bruger, der oprettede dem.)
- Offentlige synonymer (kan bruges af alle brugere, der har de rette privilegier)
Her er en simpel syntaks til at oprette et synonym i en separat database, Opret synonym myschema.mytable1 for [email protected] _link1
Da vi har et synonym med navnet mytable1 i myschema for [email protected] _link1 (distribueret databasetabel), kan vi nemt henvise den distribuerede databasetabel ved hjælp af mytable1. Vi behøver ikke bruge det lange objektnavn med databaselink overalt.
Alias
Dette er bare et andet navn for en visning, en tabel eller en kolonne inde i en forespørgsel. De er ikke databaseobjekter. Derfor er aliaser ikke gyldige overalt i skemaet / databasen. De er kun gyldige i forespørgslen. Lad os se dette eksempel, vælg tab1.col1 som c1, tab2.col2 som c2
fra bruger1.tab1 fane1, bruger1.tab2 fane2
hvor tab1.col1 = tab2.col2
Her er c1 og c2 kolonnealiaser, der bruges til tab1.col1 og tab2.col2, og tab1 og tab2 er tabelaliaser, der bruges til bruger1.tabel1 og bruger2.tabel2. Alle disse aliasser er kun gyldige i denne forespørgsel.
Hvad er forskellen mellem Synonym og Alias (i ORACLE-databaser)? Synonymer er en databaseobjektype. Men aliaser er bare et navn, der skal henvises til en tabel, visning eller en kolonne inde i en forespørgsel. Ikke et databaseobjektSynonymer kan oprettes til tabeller, visninger, funktioner, procedurer, pakker, sekvenser, materialiserede visninger, java-klasse objekttyper og udløsere. Men aliaser bruges kun til visninger, tabeller og deres kolonnerDa synonymer er et databaseobjekt, er de gyldige inde i skemaet (privat synonym) eller inde i databasen (offentligt synonym). Men aliaser, der er gyldige i forespørgslen, hvor de brugesHvert skema har brug for "opret synonym" -ret til at oprette synonymer. Men der er ikke noget privilegium at bruge aliaser |