SQL – kde najít seznam tabulek?

Přestože náš miniseriál o SQL skončil již takřka před rokem, dodnes od vás dostávám zajímavé otázky či žádosti o radu s řešením různorodých problémů.
Přestože náš miniseriál o SQL skončil již takřka před rokem, dodnes od vás dostávám zajímavé otázky či žádosti o radu s řešením různorodých problémů. Nejnovější dotaz zněl "Jak mohu pomocí SQL získat seznam tabulek?" Vzhledem k tomu, že se jedná o problém obecnějšího rázu, podívejme se na něj podrobněji.

Prakticky každý SŘBD uchovává informace o tabulkách v tzv. systémovém katalogu (někdy se na základě anglického originálu Data Dictionary můžete také setkat s pojmem datový slovník). Zpravidla je katalog realizován ve formě několika desítek interních tabulek, o jejichž obsah se stará sám systém – uživatel tedy ani nemusí vědět, že nějaký systémový katalog existuje. Tomu může být obsah systémového katalogu zpřístupněn několika způsoby, například jednoúčelovou utilitou umožňující klást jednoduché dotazy ve formátu QBE či správcovskou konzolou. Nejčastěji však uživatelé přistupují k jednotlivým tabulkám systémového katalogu (či k předpřipraveným pohledům vytvořeným nad těmito tabulkami) prostřednictvím příkazu SELECT. A odtud je již jen kousek k odpovědi na výše uvedený dotaz. Ale aby to nebylo zase tak jednoduché, mají v každém systému tabulky katalogu jinou podobu. Následující příklady ukazují, jak problém vyřešit v produktech Oracle 8.x, MS SQL 7.0 a Sybase Adaptive Server Anywhere 6.0 (ke kterým dotaz směřoval):

Oracle 8.x
Seznam všech tabulek, které jsou ve vlastnictví uživatele, lze získat z pohledu USER_TABLES (synonymum pro tento pohled je TABS):

SELECT table_name FROM user_tables
Seznam všech pohledů ve vlastnictví uživatele lze obdobně získat z pohledu USER_VIEWS:

SELECT view_name FROM user_views

MS SQL 7.0
Seznam objektů vytvořených v databázi je obsažen v tabulce SYSOBJECTS, přičemž atribut xtype {char(2)} určuje, o jaký typ objektu se jedná (U=uživatelská tabulka, S=systémová tabulka, V=pohled apod.), a atribut uid {smallint} určuje vlastníka objektu:

SELECT name,uid FROM sysobjects WHERE xtype=`U`

Sybase Adaptive Server Anywhere 6.0
Seznam tabulek vytvořených v databázi je v tomto prostředí možné získat dotazem na tabulku SYSTABLE, přičemž atribut table_type {char(10)} určuje, zda se jedná o tabulku (BASE) či pohled (VIEW), a atribut creator {smallint} určuje vlastníka objektu:

SELECT table_name,creator FROM systable WHERE table_type=`BASE`
Uvedená řešení není možné chápat jako jediná možná – cest je vždy více, především díky tomu, že požadované informace bývají obsaženy ve více různých pohledech/tabulkách systémového katalogu.

Uvědomte si také, že systémový katalog obsahuje podstatně více informací – od definice všech objektů v databázi přes přístupová práva až po uživatelské komentáře k objektům či protokoly o provedených akcích. Nespornou výhodou v SQL systémech je, že k jednotlivých pohledům/tabulkám katalogu můžete přistupovat právě pomocí standardních příkazů SQL (vlastně ne všech, málokdy totiž můžete měnit obsah systémového katalogu přímo pomocí příkazů UPDATE, INSERT či DELETE). Určitou nevýhodou je skutečnost, že katalog má v každém systému jinou podobu – musíte se tedy takřka vždy obrátit se žádostí o pomoc na dokumentaci k danému produktu. A nebo se zeptejte nás – nezapomínejte, že nabídka na řešení vašich problémů s SQL pořád platí.

Diskuze (3) Další článek: Týden: I Love You a zbývající bezvýznamnosti

Témata článku: Software, Programování, Tab, Select, Pre, SQL, From, Starý kousek, Creator, Určitý objekt


Určitě si přečtěte

Pozor, na Česko v těchto dnech útočí falešné Tesco, Penny Market a Lidl

Pozor, na Česko v těchto dnech útočí falešné Tesco, Penny Market a Lidl

** Máme tu další českou phishingovou vlnu ** Podle průzkumů máme stále problém s kybernetickou gramotností ** Nebezpečím jsou děti, které opouštějí rodiče

Jakub Čížek | 34

Co všechno se spouští se startem Windows a proč by vás to mělo zajímat

Co všechno se spouští se startem Windows a proč by vás to mělo zajímat

** Společně s operačním systémem se spouští řada aplikací a služeb ** Mohou mít negativní dopad na celkovou dobu startu Windows ** Jak získat kontrolu nad automaticky spouštěnými programy?

Karel Kilián | 57

Nové iPhony, hodinky a další novinky Applu: Zase bude za co utrácet

Nové iPhony, hodinky a další novinky Applu: Zase bude za co utrácet

Dnes proběhla další velká prezentační akce Applu, na které došlo k odhalení nových iPhonů a dalších novinek. Událost jsme sledovali online, a tak se můžete podívat na chronologický zápis těch nejdůležitějších informací.

David Polesný | 136


Aktuální číslo časopisu Computer

Megatest: 20 powerbank s USB-C

Test: mobily do 3 500 Kč

Radíme s výběrem routeru

Tipy na nejlepší vánoční dárky