Eşanlamlılıkla Alias ​​Arasındaki Fark

Anonim

Eşanlamlılar ve Alias ​​ (ORACLE veritabanlarında) | Özel eş anlamlılar ve Genel eş anlamlılar

İngilizce, eşanlamlılar ve takma adlar neredeyse aynı anlamlara sahiptir. Fakat veritabanlarında bunlar iki farklı şey. Özellikle ORACLE veritabanlarında, her iki kullanım farklıdır. Eşanlamlılar, bir şemanın veya başka bir şemadaki bir veritabanının nesnelerini belirtmek için kullanılır. Eşanlamlı bir veritabanı nesnesi türüdür. Ancak takma adlar farklı bir şekilde geliyor. Bunun anlamı; bunlar veritabanı nesneleri değildir. Takma adlar, sorguların içindeki tabloları, görünümleri ve sütunları belirtmek için kullanılır.

Eşanlamlar

Bunlar veritabanı nesnelerinin bir türüdür. Veritabanındaki diğer nesnelere atıfta bulunurlar. Eşanlamın en yaygın kullanımı, ayrı bir şemanın bir nesnesini başka bir ad kullanarak yönlendirmektir. Ancak eşanlamlılar başka bir veritabanının nesnelerini de yönlendirecek şekilde oluşturulabilir (dağıtılmış veritabanlarında, veritabanı bağlantılarını kullanarak). Eşanlamlılar için referanslar olarak tablolar, görünümler, işlevler, prosedürler, paketler, diziler, somutlaştırılmış görünümler, java sınıfı nesneler ve tetikleyiciler kullanılabilir. İki tür eş anlamlı var.

Özel eşanlamlar (sadece onları yaratan kullanıcı tarafından kullanılabilir.)
  1. Ortak eşanlamlar (uygun ayrıcalıklara sahip tüm kullanıcılar tarafından kullanılabilir)
  2. Burada basittir sözdizimi, ayrı bir veritabanında eşanlamlı oluşturmak için

myschema eşanlamlısı oluşturun. userA için mytable1. table1 @ database_link1

mytable1 myschema - için userA adlı eş anlamlılığımız olduğu için. table1 @ database_link1 (dağıtılmış veritabanı tablosu) , dağıtık veritabanı tablosunu mytable1 kullanarak kolayca yönlendirebiliriz. Veritabanı bağlantılı uzun nesne adını her yerde kullanmamız gerekmiyor.

Alias ​​

Bunlar, bir sorgunun içindeki bir görünüm, tablo veya bir sütun için başka bir addır. Bunlar veritabanı nesneleri değildir. Bu nedenle, takma adlar şema / veritabanında her yerde geçerli değildir. Bunlar yalnızca sorgu içinde geçerlidir. Bu örneği görelim,

tab1'i seçin. col1 c1, tab2 olarak. col2, c2

olarak kullanıcı1'den. tab1 tab1, kullanıcı1. tab2 tab2

burada tab1. col1 = tab2. col2

Burada c1 ve c2, tab1 için kullanılan sütun takma adlarıdır. col1 ve tab2. col2 ve tab1 ve tab2, kullanıcı1 için kullanılan tablo takma adlarıdır. tablo1 ve kullanıcı2. Tablo 2. Bu takma adların tümü yalnızca bu sorgu içinde geçerlidir.

Eş Anlam ve Alias ​​

(ORACLE veritabanlarında) arasındaki fark nedir? Eşanlamlılar bir veritabanı nesne türüdür. Ancak takma adlar, bir sorgunun içindeki bir tablo, görünüm veya bir sütunu ifade etmek için yalnızca bir addır. Bir veritabanı nesnesi değil.