- mikä on tietosanakirja?
- miten SQL Server käyttää Data-sanakirjaa
- tieto-sanakirjan muut käyttötarkoitukset
- INFORMATION_SCHEMA Views
- esimerkkejä käyttäen INFORMATION_SCHEMA näkymiä
- listaamalla kaikki taulukot, jotka sisältävät tietyn sarakkeen
- luetteloi kaikki tietokannan taulukot
- listaa taulukoiden lukumäärä kussakin skeemassa
- SQL Server Catalog Views
- Examples using Catalog Views
- luetteloi kaikki tietokannan taulukot
- luetteloi taulukoiden lukumäärä kussakin skeemassa
mikä on tietosanakirja?
SQL Server-palvelimessa data-sanakirja on joukko tietokantataulukoita, joita käytetään tietokannan määritelmää koskevien tietojen tallentamiseen. Sanakirja sisältää tietoa tietokantakohteista, kuten taulukoista, indekseistä, sarakkeista, tietotyypeistä ja näkymistä.
SQL Server käyttää Data-sanakirjaa kyselyiden suorittamiseen, ja se päivittyy automaattisesti aina, kun objekteja lisätään, poistetaan tai muutetaan tietokannassa.
Kaikki tämän artikkelin esimerkit perustuvat Microsoft SQL Server Management studioon ja AdventureWorks2012-tietokantaan. Voit aloittaa käyttämällä näitä ilmaisia työkaluja käyttämällä My Guide aloittaminen SQL Server.
miten SQL Server käyttää Data-sanakirjaa
SQL Server käyttää tietokantasanakirjaa SQL-väittämien todentamiseen. Kun suoritat SQL-lausekkeen, DBMS (tietokannan hallintajärjestelmä) jäsentää lausuman ja määrittää sitten, ovatko viittaamasi taulukot ja kentät kelvollisia. Voit tehdä tämän nopeasti se viittaa data sanakirja.
väittämien oikeellisuuden testaamisen lisäksi SQL Server käyttää data-sanakirjaa apuna kyselysuunnitelman laadinnassa ja viitetietokannan rakennetta määrittävässä informaatiossa.
data-sanakirjasta tulee sinänsä opaskirja, jonka avulla SQL Server voi käyttää tietojasi. Yksinkertaisesti sanottuna, ilman data dictionary, vaikka SQL Server tuntisi ja ymmärtäisi SQL kieli, se ei tiedä tietokantataulukoita ja sarakkeita; siksi, se ei voi kysellä niitä.
tieto-sanakirjan muut käyttötarkoitukset
koska tieto-sanakirja sisältää tietokannan määritelmän, on se todella hyvä resurssi, jota voi käyttää tietokannasta saatavan tiedon hankkimiseen. Todella siistiä on, että data-sanakirja koostuu SQL taulukoita ja näkemyksiä. Tämä tarkoittaa, että saat tietoa DB kautta kyselyt!
datasanakirjoja käyttävät suunnittelijat ja Kehittäjät tietokannan rakenteen ymmärtämiseen. Sanakirjan voi ajatella olevan ajan tasalla oleva viiteasiakirja.
suunnittelutyökalut, kuten SQL Server Management Studio, näyttävät tietoja tietokannoista object Explorerin kautta data Dictionaryn avulla.
yllä luetellut taulukot eivät ole maagisesti tunnettuja, pikemminkin object explorer antoi kyselyn data-sanakirjaan hakeakseen kaikki käyttäjätaulukot.
tieto-sanakirja on tallennettu sarjaan järjestelmätaulukoita. Vaikka voit suoraan kysellä näitä taulukoita, Microsoft pidättää oikeuden muokata järjestelmätaulukoita, jotka muodostavat tietosanakirjan. Tämän vuoksi he suosittelevat kyselyä INFORMATION_SCHEMA näkymiä eikä suoraan päästä taulukoihin.
koska datasanakirjaa voi kysellä itse, voi vastata joihinkin kysymyksiin, jotka muuten vaatisivat paljon metsästystä ja nokittelua object Explorerin kautta. Esimerkiksi, miten voit helposti löytää kaikki taulukot ja näkymät käyttäen sarake BusinessEntityID? Ilman data dictionary, sinun täytyy käyttää object explorer ja avata jokainen taulukko ja katsella ja katsoa läpi määritelmät sarake. Data-sanakirjan avulla tämä voidaan kuitenkin tehdä yksinkertaisella kyselyllä.
INFORMATION_SCHEMA Views
SQL Serverin INFORMATION_SCHEMA-näkymät ovat SQL-92 ISO-standardin mukaisia. Tämä tarkoittaa, että muut tietokantatoimittajat, jotka noudattavat ISO-standardia, tarjoavat samat näkymät.
Tässä muutamia yleisemmin käytettyjä näkemyksiä ja niiden kuvauksia:
- sarakkeet – Palauta yksi rivi jokaista saraketta kohden, jota nykyinen käyttäjä voi käyttää nykyisessä tietokannassa. Tätä näkymää voidaan käyttää tietotyypin määrittämiseen ja taulukkoon, jota varten sarake on määritelty.
- taulukot – Palauta yksi rivi jokaista taulukkoa kohden, jota käyttäjät voivat käyttää nykyisessä tietokannassa. Huomaa, että sekä taulukot että näkymät palautetaan taulukoiden näkymän avulla.
- VIEW_TABLE_USAGE – Return one row for each table that is used in a view in the current database.
- VIEWS – Palauta yksi rivi näkymille, joihin pääsee virtatietokannan käyttöoikeuksien avulla.
esimerkkejä käyttäen INFORMATION_SCHEMA näkymiä
listaamalla kaikki taulukot, jotka sisältävät tietyn sarakkeen
voit tehdä tämän käyttämällä INFORMATION_SCHEMAA.Sarakkeet näkymä. Esimerkiksi seuraavissa luetteloissa kaikki taulukot ja näkymät sisältävät sarakkeen BusinessEntityID
SELECT TABLE_NAMEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.COLUMNSWHERE COLUMN_NAME = 'BusinessEntityID'
, koska datasanakirjasta voi kuvitella olevan hyötyä! Voitko kuvitella ottaa etsiä jokainen määritelmä käsin löytää kaikki esiintyminen kentän tietokannasta?
luetteloi kaikki tietokannan taulukot
käytä INFORMATION_SCHEMAA.Pöydät näkymä tehdä tämän.
SELECT TABLE_NAME, TABLE_TYPEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESORDER BY TABLE_NAME
Tämä kysely palauttaa molemmat perustaulukot sekä näkymät.
listaa taulukoiden lukumäärä kussakin skeemassa
tässä esimerkissä jokainen skeema ja niiden sisällä määriteltyjen taulukoiden ja näkymien lukumäärä:
SELECT TABLE_SCHEMA, Count(TABLE_SCHEMA)FROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESGROUP BY TABLE_SCHEMA
SQL Server Catalog Views
luettelonäkymät ovat toinen tapa tarkastella data-sanakirjaa. Tunnen objektiluettelon näkymät tarjoavat enemmän tietoa ja minulla on tapana käyttää näitä näkemyksiä INFORMATION_SCHEMA näkymiä.
joitakin hyödyllisimmiksi havaitsemiani näkymiä ovat:
- objektit – sisältävät rivin jokaiselle objektille, kuten vieraan avaimen tai ensisijaisen avaimen rajoituksen, joka on määritelty tietokannassa.
- sarakkeet – sisältävät rivin jokaiselle objektin, kuten näkymän tai taulukoiden sarakkeelle.
- tables – return a row for each table object
Examples using Catalog Views
the following examples use the Microsoft SQL Server catalog views to get the same information use did so above using the INFORMATION_SCHEMA.
luetteloidaan kaikki taulukot, jotka sisältävät määrätyn sarakkeen
, jotta taulukoiden nimet saadaan tiettyä saraketta käyttäen, sekä sys.Pöydät ja sys.sarakenäkymää on käytettävä yhdessä. Ne yhdistetään object_id: n kautta, jota käytetään tunnistamaan yleisiä tietokantaobjekteja, kuten taulukoita ja näkymiä.
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'
luetteloi kaikki tietokannan taulukot
sys.taulukoiden näkymän avulla voidaan saada kaikkien tietokannassa määriteltyjen taulukoiden nimet. Tämä näkymä palauttaa sekä peruspöydät että näkymät.
SELECT name, type_descFROM AdventureWorks2012_Data.sys.tablesORDER BY Name
luetteloi taulukoiden lukumäärä kussakin skeemassa
sys.taulukoiden näkymässä ei ole skeemanimeä, joten sen saamiseksi käytetään sisäänrakennettua funktion SCHEMA_NIMEÄ.
SELECT SCHEMA_NAME(schema_id), count(name)FROM AdventureWorks2012_Data.sys.tablesGROUP BY SCHEMA_NAME(schema_id)
kuten esimerkistä näkyy, se on hieman teknisempi kuin INFORMATION_SCHEMAN käyttäminen. Kuitenkin, sanon kokemuksesta, että on paljon enemmän tietoa sisältyvät luettelo näkymät… Jos sinulla on tietty kysymys rakenteesta tietokannan, nämä ovat taulukon osuma.