- Hvad er en Dataordbog?
- Sådan bruger vi Dataordbogen
- andre anvendelser til Dataordbogen
- Information_schema-visninger
- eksempler ved hjælp af INFORMATION_SCHEMA-visninger
- liste over alle tabeller, der indeholder en specificeret kolonne
- liste alle tabeller i en database
- liste antallet af tabeller i hvert skema
- katalogvisningerne er en anden måde at se dataordbogen på. Jeg føler, at objektkatalogvisningerne giver flere oplysninger, og jeg har tendens til at bruge disse synspunkter over information_schema-visningerne.
- eksempler ved hjælp af Katalogvisninger
- liste alle tabeller i en database
- liste antal tabeller i hvert skema
Hvad er en Dataordbog?
dataordbogen er et sæt databasetabeller, der bruges til at gemme oplysninger om en databases definition. Ordbogen indeholder oplysninger om databaseobjekter som tabeller, indekser, kolonner, datatyper og visninger.dataordbogen bruges af
alle eksemplerne til denne artikel er baseret på Microsoft Server Management Studio og Adventurearbejds2012-databasen. Du kan komme i gang med at bruge disse gratis værktøjer ved hjælp af min Guide.
Sådan bruger vi Dataordbogen
vi bruger databaseordbogen til at verificere vores udsagn. DBMS (Database Management System) analyserer sætningen og afgør derefter, om de tabeller og felter, du refererer til, er gyldige. For at gøre dette hurtigt refererer det til dataordbogen.
ud over at teste gyldigheden af udsagn bruger vi dataordbogen til at hjælpe med generering af forespørgselsplaner og til at henvise til oplysninger, der definerer databasens struktur.
dataordbogen bliver i sig selv en guidebog, som vi kan bruge til at få adgang til dine data. Kort sagt, uden dataordbogen, ville det ikke vide om dine databasetabeller og kolonner, men det ville derfor ikke være i stand til at forespørge dem.
andre anvendelser til Dataordbogen
da dataordbogen indeholder definitionen af databasen, er det en rigtig god ressource for dig at bruge til at få oplysninger om databasen. Den virkelig seje ting er, at dataordbogen består af tabeller og visninger. Det betyder, at du kan få oplysninger om DB gennem forespørgsler!
dataordbøger bruges af designere og udviklere til at forstå databasens struktur. Du kan tænke på ordbogen som et opdateret referencedokument.
designværktøjer som f.eks. Server Management Studio viser oplysninger om databaserne gennem objektudforskeren ved hjælp af dataordbogen.
tabellerne, der er anført ovenfor, er ikke magisk kendt, snarere udstedte objektudforskeren en forespørgsel til dataordbogen for at hente alle brugeren, der er i stand til at borde.
dataordbogen gemmes i en række systemtabeller. Selvom du direkte kan forespørge på disse tabeller, forbeholder Microsoft sig ret til at ændre de systemtabeller, der udgør dataordbogen. På grund af dette anbefaler de, at du forespørger information_schema-visningerne i modsætning til direkte adgang til tabellerne.
da du selv kan forespørge dataordbogen, kan du besvare nogle spørgsmål, der ellers ville kræve en masse jagt og hakke gennem objektudforsker. For eksempel, hvordan kan du nemt finde alle tabeller og visninger ved hjælp af kolonnen BusinessEntityID? Uden dataordbogen skal du bruge objektstifinder og åbne hver tabel og se og se gennem definitionerne for kolonnen. Men ved hjælp af dataordbogen kan dette gøres ved hjælp af en simpel forespørgsel.
Information_schema-visninger
de information_schema-visninger, der er inkluderet i serveren, overholder ISO-standarden. Dette betyder, at andre databaseleverandører, der overholder ISO-standarden, leverer det samme sæt visninger.
Her er nogle af de mere almindeligt anvendte visninger og deres beskrivelser:
- kolonner – returner en række for hver kolonne, som den aktuelle bruger har adgang til at bruge i den aktuelle database. Denne visning kan bruges til at bestemme datatypen og tabellen kolonnen er defineret til brug.
- tabeller-returner en række for hver tabel, som brugerne har adgang til at bruge i den aktuelle database. Bemærk, at både tabeller og visninger returneres ved hjælp af tabelvisningen.
- VISNING_TABLE_USAGE – returner en række for hver tabel, der bruges i en visning i den aktuelle database.
- visninger-returner en række for visninger, der kan tilgås ved hjælp af strømbrugerens tilladelser fra den aktuelle database.
eksempler ved hjælp af INFORMATION_SCHEMA-visninger
liste over alle tabeller, der indeholder en specificeret kolonne
Du kan gøre dette ved hjælp af INFORMATION_SCHEMA.Kolonner visning. For eksempel indeholder følgende lister alle tabeller og visninger kolonnen BusinessEntityID
SELECT TABLE_NAMEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.COLUMNSWHERE COLUMN_NAME = 'BusinessEntityID'
som du kan forestille dig, kan dataordbogen komme til nytte! Kan du forestille dig at skulle søge hver definition i hånden for at finde alle forekomsten af et felt i databasen?
liste alle tabeller i en database
brug INFORMATION_SCHEMA.Tabeller for at gøre dette.
SELECT TABLE_NAME, TABLE_TYPEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESORDER BY TABLE_NAME
denne forespørgsel returnerer både basistabeller samt visninger.
liste antallet af tabeller i hvert skema
i dette eksempel vises hvert skema og antallet af tabeller og visninger, der er defineret i dem:
SELECT TABLE_SCHEMA, Count(TABLE_SCHEMA)FROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESGROUP BY TABLE_SCHEMA
katalogvisningerne er en anden måde at se dataordbogen på. Jeg føler, at objektkatalogvisningerne giver flere oplysninger, og jeg har tendens til at bruge disse synspunkter over information_schema-visningerne.
nogle af de visninger, jeg har fundet mest nyttige, inkluderer:
- objekter – indeholder en række for hvert objekt, f.eks. en fremmed nøgle eller primær nøglebegrænsning defineret i databasen.
- kolonner-indeholder en række for hver kolonne i et objekt, f.eks. visning eller tabeller.
- tabeller – returner en række for hvert tabelobjekt
eksempler ved hjælp af Katalogvisninger
følgende eksempler bruger Microsoft SERVERKATALOGVISNINGER til at få de samme oplysninger Brug gjorde det ovenfor ved hjælp af INFORMATION_SCHEMA.
liste over alle tabeller, der indeholder en bestemt kolonne
for at få navnene på tabellerne ved hjælp af en bestemt kolonne, både sys.tabeller og sys.kolonnevisning skal bruges sammen. De er forbundet via object_id, som bruges til at identificere fælles database objekter såsom tabeller og visninger.
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'
liste alle tabeller i en database
sys.tabelvisning kan bruges til at få navne på alle tabeller, der er defineret i databasen. Denne visning returnerer både basistabeller og visninger.
SELECT name, type_descFROM AdventureWorks2012_Data.sys.tablesORDER BY Name
liste antal tabeller i hvert skema
sys.tabelvisning indeholder ikke et skemanavn, så det indbyggede FUNKTIONSSKEMANAVN bruges til at hente det.
SELECT SCHEMA_NAME(schema_id), count(name)FROM AdventureWorks2012_Data.sys.tablesGROUP BY SCHEMA_NAME(schema_id)
som du kan se fra eksemplet, er det lidt mere teknisk end at bruge INFORMATION_SCHEMA. Jeg siger dog af erfaring, at der er meget mere information indeholdt i katalogvisningerne… hvis du har et bestemt spørgsmål om strukturen i en database, er dette tabellen, der skal rammes.