Skillnad mellan synonym och alias

Anonim

Synonym vs Alias ​​ (i ORACLE-databaser) | Privata synonymer och offentliga synonymer

På engelska har synonymer 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 också (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.

  1. Public synonymer (kan användas av alla användare som har rätt behörighet)
  2. Här är det enkelt syntax för att skapa en synonym i en separat databas,

skapa synonym myschema. mytable1 för användareA. table1 @ database_link1

Eftersom vi har en synonym som heter

mytable1 i myschema för userA. tabell1 @ database_link1 (distribuerad databastabell) kan vi enkelt hänvisa den distribuerade databastabellen 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 flik1. kol1 som c1, tab2. col2 som c2

från användare1. tab1 tab1, user1. tab2 tab2

där flik1. col1 = tab2. kol2

Här är c1 och c2 kolonnaliaser, vilka används för tab1. col1 och tab2. col2 och tab1 och tab2 är tabellaliaser, som används för användare1. tabell1 och användare2. Tabell2. Alla dessa alias gäller endast i denna fråga.

Vad är skillnaden mellan Synonym och Alias ​​

(i ORACLE-databaser) ? Synonymer är en databasobjekt typ. Men alias är bara ett namn för att hänvisa till ett bord, en vy eller en kolumn i en fråga. Inte ett databasobjekt.