- co je datový slovník?
- jak SQL Server používá datový slovník
- další použití pro datový slovník
- zobrazení INFORMATION_SCHEMA
- příklady použití zobrazení INFORMATION_SCHEMA
- seznam všech tabulek, které obsahují zadaný sloupec
- seznam všech tabulek v databázi
- Seznam Počet Tabulek v Každém Schématu
- SQL Server Zobrazení zboží
- Příklady použití Zobrazení zboží
- seznam všech tabulek v databázi
- seznam počtu tabulek v každém schématu
co je datový slovník?
v SQL Serveru je datový slovník sada databázových tabulek používaných k ukládání informací o definici databáze. Slovník obsahuje informace o databázových objektech, jako jsou tabulky, indexy, sloupce, datové typy a pohledy.
datový slovník používá SQL Server k provádění dotazů a je automaticky aktualizován při každém přidání, odebrání nebo změně objektů v databázi.
všechny příklady tohoto článku jsou založeny na Microsoft SQL Server Management Studio A databázi AdventureWorks2012. Můžete začít používat tyto bezplatné nástroje pomocí mého průvodce Začínáme používat SQL Server.
jak SQL Server používá datový slovník
SQL Server používá databázový slovník k ověření příkazů SQL. Při spuštění příkazu SQL analyzuje příkaz DBMS (Database Management System) a poté určí, zda jsou tabulky a pole, na které odkazujete, platné. K tomu rychle odkazuje na datový slovník.
kromě testování platnosti prohlášení, SQL Server používá data slovník na pomoc s plán dotazu generace a referenční informace definování struktury databáze.
datový slovník se stává příručkou, sama o sobě, pro SQL Server použít pro přístup k vašim datům. Jednoduše řečeno, bez datového slovníku, ačkoli SQL Server by věděl a rozuměl jazyku SQL, nevěděl by o databázových tabulkách a sloupcích; proto by je nemohl dotazovat.
další použití pro datový slovník
protože datový slovník obsahuje definici databáze, je to opravdu dobrý zdroj, který můžete použít k získání informací o databázi. Opravdu skvělá věc je, že datový slovník je tvořen tabulkami a pohledy SQL. To znamená, že můžete získat informace o DB prostřednictvím dotazů!
datové slovníky používají návrháři a vývojáři k pochopení struktury databáze. Slovník si můžete představit jako aktuální referenční dokument.
návrhové nástroje, jako je SQL Server Management Studio, zobrazují informace o databázích prostřednictvím Průzkumníka objektů pomocí datového slovníku.
tabulky uvedené výše nejsou magicky známý spíše průzkumník objektů vydaných dotaz na datový slovník načíst všechny uživatele tabulky.
datový slovník je uložen v řadě systémových tabulek. Přestože tyto tabulky můžete přímo dotazovat, společnost Microsoft si vyhrazuje právo upravit systémové tabulky, které tvoří datový slovník. Z tohoto důvodu doporučujeme dotazovat zobrazení INFORMATION_SCHEMA na rozdíl od přímého přístupu k tabulkám.
vzhledem k tomu, že se můžete dotazovat na datový slovník sami, můžete odpovědět na některé otázky, které by jinak vyžadovaly hodně lovu a klování pomocí Průzkumníka objektů. Například, jak můžete snadno najít všechny tabulky a pohledy pomocí sloupce BusinessEntityID? Bez datového slovníku budete muset použít Průzkumník objektů a otevřít každou tabulku a zobrazit a prohlédnout si definice sloupce. Pomocí datového slovníku to však lze provést pomocí jednoduchého dotazu.
zobrazení INFORMATION_SCHEMA
zobrazení INFORMATION_SCHEMA obsažené v SQL Serveru jsou v souladu s normou ISO SQL-92. To znamená, že ostatní dodavatelé databází, kteří splňují normu ISO, dodají stejnou sadu zobrazení.
zde jsou některé z běžně používaných pohledů a jejich popisy:
- sloupce-vrátí jeden řádek pro každý sloupec, který má Aktuální uživatel přístup k použití v aktuální databázi. Toto zobrazení lze použít k určení typu dat a tabulky, pro kterou je sloupec definován.
- tabulky-vrátí jeden řádek pro každou tabulku, kterou mají uživatelé přístup k použití v aktuální databázi. Všimněte si, že tabulky i pohledy jsou vráceny pomocí zobrazení tabulky.
- VIEW_TABLE_USAGE-vrátí jeden řádek pro každou tabulku, která je použita v pohledu v aktuální databázi.
- zobrazení-vrátí jeden řádek pro zobrazení, ke kterým lze přistupovat pomocí oprávnění uživatele currents z aktuální databáze.
příklady použití zobrazení INFORMATION_SCHEMA
seznam všech tabulek, které obsahují zadaný sloupec
můžete to provést pomocí INFORMATION_SCHEMA.Zobrazení sloupců. Například následující seznamy všechny tabulky a pohledy obsahují sloupec BusinessEntityID
SELECT TABLE_NAMEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.COLUMNSWHERE COLUMN_NAME = 'BusinessEntityID'
Jak si dokážete představit datový slovník může přijít vhod! Dokážete si představit, že budete muset hledat každou definici ručně, abyste našli veškerý výskyt pole v databázi?
seznam všech tabulek v databázi
použijte INFORMATION_SCHEMA.Tabulky to provedou.
SELECT TABLE_NAME, TABLE_TYPEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESORDER BY TABLE_NAME
tento dotaz vrací jak základní tabulky, tak pohledy.
Seznam Počet Tabulek v Každém Schématu
V tomto příkladu každé schéma a počet tabulek a zobrazení definované v rámci nich jsou uvedeny:
SELECT TABLE_SCHEMA, Count(TABLE_SCHEMA)FROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESGROUP BY TABLE_SCHEMA
SQL Server Zobrazení zboží
katalog názory jsou další způsob, jak zobrazit data slovník. Mám pocit, že zobrazení katalogu objektů poskytují více informací a mám tendenci používat tyto pohledy na zobrazení INFORMATION_SCHEMA.
některé pohledy, které jsem našel nejužitečnější, zahrnují:
- objekty-obsahují řádek pro každý objekt, například cizí klíč nebo omezení primárního klíče definované v databázi.sloupce
- – obsahují řádek pro každý sloupec objektu, například zobrazení nebo tabulky.
- tabulky – vrátí řádek pro každý objekt tabulky
Příklady použití Zobrazení zboží
následující příklady používají Microsoft SQL Server katalog výhledem na získání stejné informace pomocí udělal tak především pomocí INFORMATION_SCHEMA.
výpis všech tabulek, které obsahují zadaný sloupec
za účelem získání názvů tabulek pomocí konkrétního sloupce, a to jak sys.tabulky a sys.zobrazení sloupců musí být použito společně. Jsou spojeny pomocí object_id, který se používá k identifikaci běžných databázových objektů, jako jsou tabulky a pohledy.
SELECT t.name, t.type_descFROM AdventureWorks2012_Data.sys.columns AS cINNER JOIN sys.tables AS t ON c.object_id = t.object_idWHERE c.name = 'BusinessEntityID'
seznam všech tabulek v databázi
sys.zobrazení tabulek lze použít k získání názvů všech tabulek definovaných v databázi. Toto zobrazení vrací základní tabulky i pohledy.
SELECT name, type_descFROM AdventureWorks2012_Data.sys.tablesORDER BY Name
seznam počtu tabulek v každém schématu
sys.zobrazení tabulek neobsahuje název schématu, proto se k jeho získání používá Vestavěná funkce SCHEMA_NAME.
SELECT SCHEMA_NAME(schema_id), count(name)FROM AdventureWorks2012_Data.sys.tablesGROUP BY SCHEMA_NAME(schema_id)
jak můžete vidět z příkladu, je to trochu techničtější než použití INFORMATION_SCHEMA. Nicméně, já z vlastní zkušenosti říci, že tam je mnohem více informací, obsažených v katalogu názory… Pokud máte konkrétní otázku o struktuře databáze, tyto jsou v tabulce zasáhnout.