Synonym vs Alias (i ORACLE-databaser) | Privata synonymer och offentliga synonymer
På engelska har synonym och alias nästan samma betydelser. Men i databaser är det två olika saker. Speciellt i ORACLE-databaser är båda deras användning olika. Synonymer används för att hänvisa objekt till ett schema eller en databas från ett annat schema. Så synonym är en databasobjekt typ. Men aliaserna kommer på ett annat sätt. Det betyder; de är inte databasobjekt. Aliaser används för att referera till tabeller, vyer och kolumner inuti frågor.
synonymer
Dessa är en typ av databasobjekt. De hänvisar till andra objekt i databasen. Den vanligaste användningen av synonym är att hänvisa till ett objekt med ett separat schema genom att använda ett annat namn. Men synonymer kan skapas för att hänvisa föremålen till en annan databas (i distribuerade databaser, med databas länkar). Tabeller, visningar, funktioner, procedurer, paket, sekvenser, materialiserade vyer, java-klassobjekt och triggers kan användas som referenser för synonymerna. Det finns två typer av synonymer.
Här är en enkel syntax för att skapa en synonym i en separat databas,
skapa synonym myschema.mytable1 för [email protected]_link1
Eftersom vi har en synonym som heter MyTable1 i myschema för [email protected]_link1 (distribuerad databastabell), Vi kan enkelt hänvisa den distribuerade databas tabellen med MyTable1. Vi behöver inte använda det långa objektnamnet med databaslänk överallt.
Alias
Dessa är bara ett annat namn för en vy, ett bord eller en kolumn inuti en fråga. De är inte databasobjekt. Därför är alias inte giltiga överallt i schemat / databasen. De är giltiga endast i frågan. Låt oss se detta exempel,
välj tab1.col1 som c1, tab2.col2 som c2
från user1.tab1 tab1, user1.tab2 tab2
där tab1.col1 = tab2.col2
Här är c1 och c2 kolumnalias som används för tab1.col1 och tab2.col2 och tab1 och tab2 är tabellaliaser, som används för user1.table1 och user2.table2. Alla dessa alias gäller endast i denna fråga.
Vad är skillnaden mellan Synonym och Alias (i ORACLE-databaser)?
|