Co je datový slovník SQL Server?

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.

SSMS Průzkumník Objektů
SQL Server Management Studio Objekt aplikace Explorer

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.

Related Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *