Synonymum vs Alias (v databázích ORACLE) Soukromá synonyma a veřejná synonyma
V angličtině mají synonymum a alias téměř stejný význam. Ale v databázích jsou to dvě různé věci. Obzvláště v databázích ORACLE je jejich použití odlišné. Synonyma se používají k odkazování objektů schématu nebo databáze z jiného schématu. Synonymum je tedy typ databázového objektu. Ale aliasy přicházejí jiným způsobem. To znamená; nejsou to databázové objekty. Aliasy se používají k odkazování tabulek, pohledů a sloupců uvnitř dotazů.
Synonyma
Jedná se o typ databázových objektů. Odkazují na jiné objekty v databázi. Nejběžnějším použitím synonym je odkazování na objekt samostatného schématu pomocí jiného jména. Synonyma však lze vytvořit i pro odkazování na objekty jiné databáze (v distribuovaných databázích pomocí databázových odkazů). Tabulky, pohledy, funkce, procedury, balíčky, sekvence, materializované pohledy, objekty třídy Java a spouštěče mohou být použity jako reference pro synonyma. Existují dva typy synonym.
Zde je jednoduchá syntaxe pro vytvoření synonyma v samostatné databázi,
vytvořit synonymum myschema.mytable1 pro [e-mail chráněný] _link1
Protože máme synonymum pojmenované mytable1 v myschema pro [chráněno e-mailem] _link1 (tabulka distribuované databáze), můžeme snadno rozdělit tabulku distribuované databáze pomocí mytable1. Nepotřebujeme používat dlouhý název objektu s databázovým odkazem všude.
Alias
Jedná se pouze o jiné jméno pohledu, tabulky nebo sloupce uvnitř dotazu. Nejedná se o databázové objekty. Proto aliasy nejsou platné všude ve schématu / databázi. Platí pouze uvnitř dotazu. Podívejme se na tento příklad,
vyberte tab1.col1 jako c1, tab2.col2 jako c2
z user1.tab1 tab1, user1.tab2 tab2
kde tab1.col1 = tab2.col2
Zde jsou cl a c2 aliasy sloupců, které se používají pro tab1.col1 a tab2.col2 a tab1 a tab2 jsou tabulkové aliasy, které se používají pro user1.table1 a user2.table2. Všechny tyto aliasy jsou platné pouze v tomto dotazu.
Jaký je rozdíl mezi synonymem a aliasem? (v databázích ORACLE)?
|