- Hva er En Dataordbok?
- HVORDAN SQL Server bruker Dataordlisten
- Andre Bruksområder For Dataordboken
- INFORMATION_SCHEMA Visninger
- Eksempler med information_schema visninger
- Liste alle tabeller som inneholder en spesifisert kolonne
- Liste alle tabeller i en database
- Oppgi Antall Tabeller i Hvert Skjema
- Katalogvisninger for SQL Server
- Eksempler ved Hjelp Av Katalogvisninger
- List alle tabeller i en database
- Liste Antall Tabeller i Hvert Skjema
Hva er En Dataordbok?
i SQL Server er dataordlisten et sett med databasetabeller som brukes til å lagre informasjon om en databases definisjon. Ordlisten inneholder informasjon om databaseobjekter som tabeller, indekser, kolonner, datatyper og visninger.
dataordlisten brukes AV SQL Server til å utføre spørringer og oppdateres automatisk når objekter legges til, fjernes eller endres i databasen.
alle eksemplene for denne artikkelen er basert På Microsoft SQL Server Management Studio og AdventureWorks2012-databasen. Du kan komme i gang med DISSE gratis verktøyene ved hjelp av Min Guide Komme I GANG MED SQL Server.
HVORDAN SQL Server bruker Dataordlisten
SQL Server bruker databaseordlisten til å bekrefte SQL-setninger. NÅR DU utfører EN SQL-setning dbms (Database Management System) analyserer setningen og deretter bestemmer om tabellene og feltene du refererer er gyldige. For å gjøre dette raskt refererer det til dataordboken.
I tillegg til å teste gyldigheten av setninger, BRUKER SQL Server dataordlisten til å hjelpe med spørring plan generasjon og referanse informasjon som definerer strukturen i databasen.
dataordlisten blir i seg selv en guidebok SOM SQL Server kan bruke for å få tilgang til dataene dine. Enkelt sagt, uten dataordboken, selv OM SQL Server ville vite OG forstå SQL-språket, ville DET ikke vite om databasetabeller og kolonner; derfor ville det ikke kunne spørre dem.
Andre Bruksområder For Dataordboken
siden dataordboken inneholder definisjonen av databasen, er det en veldig god ressurs for deg å bruke for å få informasjon om databasen. Den virkelig kule tingen er at dataordboken består AV SQL-tabeller og visninger. Dette betyr at du kan få informasjon om DB gjennom spørringer!
dataordbøker brukes av designere og utviklere for å forstå strukturen i databasen. Du kan tenke på ordboken som et oppdatert referansedokument.
Designverktøy, for EKSEMPEL SQL Server Management Studio, viser informasjon om databasene via objektutforskeren ved hjelp av dataordlisten.
tabellene som er oppført ovenfor, er ikke magisk kjent, men objektutforskeren utstedte en spørring til dataordlisten for å hente alle brukertabellene.
dataordlisten lagres i en rekke systemtabeller. Selv om Du kan spørre disse tabellene direkte, Forbeholder Microsoft seg retten til å endre systemtabellene som utgjør dataordlisten. På grunn av dette anbefaler de at du spør INFORMATION_SCHEMA-visningene i motsetning til direkte tilgang til tabellene.
Siden du kan spørre dataordboken selv, kan du svare på noen spørsmål som ellers ville kreve mye jakt og hakke gjennom object explorer. For eksempel, hvordan kan du enkelt finne alle tabellene og visningene ved hjelp Av kolonnen BusinessEntityID? Uten dataordlisten må du bruke object explorer og åpne hver tabell og se og se gjennom definisjonene for kolonnen. Men ved hjelp av dataordboken kan dette gjøres ved hjelp av en enkel spørring.
INFORMATION_SCHEMA Visninger
INFORMATION_SCHEMA visninger inkludert I SQL Server i samsvar MED SQL – 92 ISO-standarden. Dette betyr at andre databaseleverandører som overholder ISO-standarden, vil levere samme sett med visninger.
Her er noen av de mer brukte visningene og deres beskrivelser:
- KOLONNER-Returner en rad for hver kolonne den gjeldende brukeren har tilgang til å bruke i gjeldende database. Denne visningen kan brukes til å bestemme datatypen og tabellen kolonnen er definert for bruk.
- TABELLER-Returner en rad for hver tabell brukerne har tilgang til å bruke i gjeldende database. Obs! både tabeller og visninger returneres ved HJELP AV TABELLER-visningen.
- VIEW_TABLE_USAGE – Returner en rad for hver tabell som brukes i en visning i gjeldende database.
- VISNINGER-Returner en rad for visninger som kan nås ved hjelp av strøm brukerens tillatelser fra gjeldende database.
Eksempler med information_schema visninger
Liste alle tabeller som inneholder en spesifisert kolonne
DU kan gjøre DETTE ved Å bruke INFORMATION_SCHEMA.KOLONNER visning. For eksempel følgende lister alle tabeller og visninger inneholder kolonnen BusinessEntityID
SELECT TABLE_NAMEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.COLUMNSWHERE COLUMN_NAME = 'BusinessEntityID'
som du kan forestille deg data ordbok kan komme godt med! Kan du forestille deg å måtte søke hver definisjon for hånd for å finne all forekomst av et felt i databasen?
Liste alle tabeller i en database
Bruk INFORMATION_SCHEMA.TABELLER vise å gjøre dette.
SELECT TABLE_NAME, TABLE_TYPEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESORDER BY TABLE_NAME
denne spørringen returnerer både grunntabeller og visninger.
Oppgi Antall Tabeller i Hvert Skjema
i dette eksemplet er hvert skjema og antall tabeller og visninger definert i dem oppført:
SELECT TABLE_SCHEMA, Count(TABLE_SCHEMA)FROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESGROUP BY TABLE_SCHEMA
Katalogvisninger for SQL Server
katalogvisninger er en annen måte å vise dataordlisten på. Jeg føler at objektkatalogvisningene gir mer informasjon, og jeg pleier å bruke disse visningene over INFORMATION_SCHEMA-visningene.
noen av visningene jeg har funnet mest nyttige inkluderer:
- objekter-inneholder en rad for hvert objekt, for eksempel EN SEKUNDÆRNØKKEL eller primærnøkkelbegrensning definert i databasen.
- kolonner-inneholder en rad for hver kolonne i et objekt, for eksempel visning eller tabeller.
- tabeller-returner en rad for hvert tabellobjekt
Eksempler ved Hjelp Av Katalogvisninger
følgende eksempler bruker Katalogvisninger For Microsoft SQL Server til å hente samme informasjon bruk gjorde det ovenfor ved HJELP AV INFORMATION_SCHEMA.
Viser alle tabeller som inneholder en spesifisert kolonne
for å få navnene på tabellene ved hjelp av en bestemt kolonne, både sys.tabeller og sys.kolonner visning må brukes sammen. De slås sammen via object_id, som brukes til å identifisere vanlige databaseobjekter 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'
List alle tabeller i en database
sys.tabeller visning kan brukes til å få navn på alle tabeller som er definert i databasen. Denne visningen returnerer både grunntabeller og visninger.
SELECT name, type_descFROM AdventureWorks2012_Data.sys.tablesORDER BY Name
Liste Antall Tabeller i Hvert Skjema
sys.tabellvisning inneholder ikke et skjemanavn, så den innebygde funksjonen SCHEMA_NAME brukes til å hente den.
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 litt mer teknisk enn Å bruke INFORMATION_SCHEMA. Men jeg sier fra erfaring at det er mye mer informasjon i katalogvisningene… Hvis du har et bestemt spørsmål om strukturen i en database, er dette bordet å treffe.