zobrazení sql serveru. Sql zobrazení. Proč potřebujeme pohledy?

Pohledy lze manipulovat v Editoru dotazů spuštěním skriptů SQL, které používají příkazy DDL CREATE, ALTER a DROP. Základní syntaxe pro vytvoření pohledu je následující:

CREATE VIEW název_zobrazení JAKO příkaz SELECT

Chcete-li například programově vytvořit pohled v_Customer, který vrací seznam zákazníků a jejich město bydliště, spustili byste v okně dotazu následující příkaz.

VYTVOŘIT ZOBRAZENÍ.

SELECT dbo.Customer.IdCust, dbo.Customer.FName, dbo.Customer.LName, dbo.City.CityName

OD dbo.Customer INNER JOIN

dbo.City ON dbo.Customer.IdCity = dbo.City.IdCity

Pokus o vytvoření pohledu, který již existuje, vyvolá chybu. Jakmile je pohled vytvořen, lze příkaz SELECT snadno upravit pomocí příkazu ALTER:

ALTER název_zobrazení JAKO upravený příkaz_SELECT

Pokud změna pohledu znamená také změnu jeho přístupových oprávnění, je lepší jej odstranit a vytvořit znovu, protože odstraněním pohledu dojde také k odstranění dříve nastavených přístupových oprávnění.

Chcete-li odebrat pohled z databáze, použijte příkaz DROP:

DROP VIEW view_name

pořadí podle doložky a pohledů

Pohledy slouží jako zdroj dat pro další dotazy a nepodporují interní řazení. Například následující kód načte data ze zobrazení v_Customer a uspořádá je podle polí LName a FName. Klauzule ORDER BY není součástí pohledu v_Customer, ale aplikuje se na něj voláním příkazu SQL:

SELECT IdCust, FName, LName, CityName

OD dbo.v_Customer

OBJEDNAT PODLE LName, FName

Provádění pohledů

Výkon nelze provést samostatně. Příkaz SELECT, ze kterého je pohled vytvořen, lze provést, ale v této podobě není příkaz SQL technicky pohledem. Pohled je užitečný pouze jako zdroj dat v dotazu.

Proto kontextová nabídka Open View v ManagementStudio automaticky vygeneruje jednoduchý dotaz, který načte všechny sloupce z pohledu. Zobrazení zobrazuje pouze výsledky. Zapnutí ostatních panelů Návrháře dotazů vám však umožní vidět samotný dotaz jako extrahovaný ze zobrazení.

Panel SQL zobrazí pohled v klauzuli FROM příkazu SELECT. Toto je formulář, ve kterém uživatelé odkazují na zobrazení:

SELECT * FROM v_Customer

Zadání pro samostatnou práci: Vytvořte zobrazení, které vrátí seznam objednávek s uvedením jména zákazníka a počtu položek v každé objednávce. Výsledek by tedy měl obsahovat následující atributy: IdOrd, OrdDate, IdCust, FName, LName, Počet typů produktů v objednávce.

Laboratoř č. 7: Programování t-sql Syntaxe a konvence t-sql

Pravidla pro generování identifikátorů

Všechny objekty v SQLServeru mají názvy (identifikátory). Příklady objektů jsou tabulky, pohledy, uložené procedury atd. Identifikátory mohou mít až 128 znaků, včetně písmen, _@$# a číslic. První znak musí být vždy abecední. Proměnné a dočasné tabulky používají speciální schémata pojmenování. Název objektu nesmí obsahovat mezery a nemůže být stejný jako vyhrazené klíčové slovo SQLServer, bez ohledu na velikost písmen. Přiložením identifikátorů do hranaté závorky, můžete v názvech objektů používat zakázané znaky.

Dokončení pokynů

Standard ANSISQL vyžaduje, aby byl na konci každého příkazu umístěn středník. Přitom při programování v T-SQL středník není potřeba.

Komentáře

Jazyk T-SQL umožňuje dva styly komentářů: ANCI a C. První z nich začíná dvěma pomlčkami a končí na konci řádku:

Toto je jednořádkový komentář ve stylu ANSI

Komentáře ve stylu ANSI lze také vložit na konec řádku příkazu:

SELECT CityName – sloupce, které mají být načteny

FROM City – zdrojová tabulka

WHERE IdCity = 1; -- limit linky

SQL editor může aplikovat a odstranit komentáře na všech vybraných řádcích. Chcete-li to provést, vyberte příslušné příkazy v nabídce Upravit nebo na panelu nástrojů.

Předchozí články pojednávaly o příkazech DDL a DML ve vztahu k základním tabulkám. Data základní tabulky jsou uložena na disku. Na rozdíl od základních tabulek výchozí pohledy fyzicky neexistují, tzn. jejich obsah se neukládá na disk. To se netýká tzv. indexovaných pohledů, o kterých bude řeč později. Pohledy jsou databázové objekty, které jsou vždy vytvořeny z jedné nebo více základních tabulek (nebo jiných pohledů) pomocí informací metadat. Tyto informace (včetně názvu pohledu a způsobu načítání řádků z podkladových tabulek) jsou vše, co je pro pohled fyzicky uloženo. Z tohoto důvodu se pohledům také říká virtuální tabulky.

Vytvoření pohledu

Pohled je vytvořen prostřednictvím příkazu VYTVOŘIT ZOBRAZENÍ, jehož syntaxe je následující:

CREATE VIEW název_zobrazení [(seznam_sloupců)] AS konvence syntaxe příkazu select

Příkaz CREATE VIEW musí být jediným příkazem v balíčku. (To znamená, že tato instrukce by měla být oddělena od ostatních instrukcí ve skupině pomocí instrukce GO.)

Parametr view_name určuje název pohledu, který má být definován, a parametr column_list určuje seznam názvů, které mají být použity jako názvy sloupců pohledu. Pokud je tento volitelný parametr vynechán, použijí se názvy sloupců tabulek, ze kterých je pohled vytvořen. Parametr select_statement určuje příkaz SELECT, který načítá řádky a sloupce z tabulek (nebo jiných pohledů). S možností ŠIFROVÁNÍ specifikuje šifrování příkazu SELECT, čímž zvyšuje bezpečnost databázového systému.

doložka SCHEMABINDING sváže pohled se schématem tabulky, pod kterým je vytvořen. Když je uvedena tato klauzule, názvy databázových objektů v příkazu SELECT musí mít dvě části, tj. ve tvaru schema.db_object, kde schema je vlastník a db_object může být tabulka, pohled nebo uživatelsky definovaná funkce.

Jakýkoli pokus o úpravu struktury pohledů nebo tabulek, na které odkazuje pohled vytvořený tímto způsobem, selže. Než lze takové tabulky nebo pohledy upravit (příkazem ALTER) nebo odstranit (příkazem DROP), musí být pohled odstraněn nebo z něj musí být odstraněna klauzule SCHEMABINDING.

Při vytváření pohledu zadáte parametr VIEW_METADATA, lze aktualizovat všechny jeho sloupce (kromě sloupců s typem datové časové razítko), pokud má pohled spouštěče INSERT nebo UPDATE INSTEAD OF.

Příkaz SELECT v pohledu nemůže obsahovat doložka ORDER Parametr BY nebo INTO. Kromě toho nelze provádět dotazy na dočasné tabulky.

Pohledy lze použít k různým účelům:

    Chcete-li omezit použití určitých sloupců a/nebo řádků tabulek. Pohledy lze tedy použít k řízení přístupu k určité části jedné nebo více tabulek.

    Chcete-li skrýt podrobnosti složité dotazy. Pokud vaše databázová aplikace vyžaduje dotazy se složitými operacemi spojení, vytvoření vhodných pohledů může tyto dotazy zjednodušit.

    Chcete-li omezit vkládané nebo aktualizované hodnoty na určitý rozsah.

Níže uvedený příklad ukazuje, jak vytvořit zobrazení:

Dotaz v tomto příkladu vybere řádky z tabulky Works_on, které splňují podmínku Job="Consultant". View_Consultant je definován řádky a sloupci vrácenými tímto dotazem. Obrázek níže ukazuje tabulku Works_on s řádky vybranými v zobrazení view_Consultant zvýrazněnými červeně:

Dotaz v tomto příkladu určuje výběr řádků, tj. vytvoří vodorovnou podmnožinu základní tabulky Works_on. Je také možné vytvořit pohled s omezeními na sloupce a řádky, které obsahuje. Níže uvedený příklad ukazuje, jak vytvořit takový pohled:

POUŽÍVEJTE SampleDb; GO CREATE VIEW view_WithoutBudget AS SELECT Číslo, ProjectName FROM Project;

Dotaz v tomto příkladu vybere všechny sloupce tabulky Project kromě sloupce Budget pro zahrnutí do zobrazení view_WithoutBudget.

Jak již bylo zmíněno dříve, v obecném formátu příkazu CREATE VIEW není nutné zadávat názvy sloupců zobrazení. Na druhou stranu v následujících dvou případech je povinné výslovně uvést názvy sloupců:

    pokud je sloupec zobrazení vytvořen z výrazu nebo agregační funkce;

    pokud dva nebo více sloupců zobrazení mají v základní tabulce stejný název.

Níže uvedený příklad ukazuje, jak vytvořit zobrazení, kde jsou názvy sloupců specifikovány explicitně:

POUŽÍVEJTE SampleDb; GO CREATE VIEW view_Count(projectNumber, countProject) AS SELECT ProjectNumber, COUNT(*) FROM Works_on GROUP BY ProjectNumber;

Zde musí být názvy sloupců view_Count specifikovány explicitně, protože příkaz SELECT obsahuje agregační funkce count(*), který vyžaduje, aby byly všechny sloupce pohledu pojmenovány.

Pokud použijete záhlaví sloupců, nemusíte v příkazu CREATE VIEW výslovně uvádět sloupce, jak je znázorněno v příkladu níže:

POUŽÍVEJTE SampleDb; GO CREATE VIEW view_Count1 AS SELECT ProjectNumber, COUNT(*) countProject FROM Works_on GROUP BY ProjectNumber;

Pohled lze vytvořit z jiného pohledu, jak ukazuje příklad:

Pohled view_project_p2 v příkladu níže je vytvořen z pohledu view_Consultant. Všechny dotazy, které používají zobrazení view_project_p2, jsou převedeny na ekvivalentní dotazy vůči podkladové tabulce Works_on.

Pohledy lze vytvářet i prostřednictvím prostředí Management Studio. Chcete-li to provést, vyberte databázi v Průzkumníku objektů, ve které chcete vytvořit pohled, a klikněte do ní klikněte pravým tlačítkem umístěte kurzor myši nad uzel Pohledy a z kontextové nabídky, která se otevře, vyberte Nový pohled. Otevře se editor zobrazení, který vám umožní provádět následující:

    vyberte základní tabulky a řádky v těchto tabulkách pro vytvoření pohledu;

    Dejte pohledu název a definujte podmínky v klauzuli WHERE odpovídajícího dotazu.

Úpravy nebo mazání pohledů

Chcete-li změnit definici pohledu v Jazyk Transact-SQL platí pokyny ALTER VIEW. Syntaxe tohoto příkazu je podobná syntaxi příkazu CREATE VIEW použitého k vytvoření pohledu.

Použití příkazu ALTER VIEW zabrání opětovnému přiřazení stávající povolení pro prezentaci. Navíc změna pohledu pomocí tohoto příkazu neovlivní databázové objekty, které na tomto pohledu závisí. Pokud pohled upravíte tak, že jej nejprve odstraníte (příkaz DROP VIEW) a poté vytvoříte nový pohled s požadovanými vlastnostmi ( příkaz CREATE VIEW), pak všechny databázové objekty, které odkazují na tento pohled, nebudou fungovat očekávaným způsobem, alespoň během doby mezi odstraněním pohledu a opětovným vytvořením pohledu.

Použití příkazu ALTER VIEW je znázorněno v příkladu níže:

V tomto příkladu se rozbalí příkaz ALTER VIEW příkaz SELECT v view_WithoutBudget s novou podmínkou v klauzuli WHERE.

Instrukce DROP VIEW odebere definici v něm zadaného pohledu ze systémových tabulek. Použití této instrukce je znázorněno na příkladu níže:

POUŽÍVEJTE SampleDb; GO DROP VIEW view_Count;

Když odstraníte pohled pomocí příkazu DROP VIEW, budou odstraněny i všechny ostatní pohledy založené na smazaném pohledu, jak ukazuje příklad níže:

USE SampleDb; GO DROP VIEW view_Consultant;

Zde příkaz DROP VIEW explicitně odstraní view_Consultant, zatímco implicitně odstraní view_project_p2, který je založen na view_Consultant. Nyní pokus o dotaz view_project_p2 vrátí chybovou zprávu.

Když zrušíte základní tabulku, pohledy, které jsou na ní založeny, nebudou automaticky odstraněny. To znamená, že všechny pohledy pro zrušenou tabulku musí být zrušeny explicitně pomocí příkazu DROP VIEW. Na druhou stranu pohledy na smazanou tabulku lze znovu použít na nový stůl, mající to samé logická struktura, stejně jako dálkové.

Příklad vytvoření pohledu v databázi MS SQL Server pomocí MS Visual Studio. Vytvořte výpočtové pole

Toto téma popisuje podrobný proces vytváření pohledu krok za krokem na příkladu databáze Education.mdf, která se nachází v místní soubor. Databáze je navržena tak, aby fungovala pod kontrolou Microsoft DBMS SQL Server

Použití tento příklad, můžete se naučit tvořit vlastní podání data získaná z tabulek. Na základě pohledů můžete vytvářet sestavy pro zobrazení výsledků programu v pohodlné (papírové) podobě.

Problémový stav

Nechť je dána databáze, která se nachází v souboru Education.mdf. Databáze obsahuje dvě související tabulky: Student a Session.

Tabulky jsou vzájemně propojeny polem ID_Book.

Použití nástroje společnosti Microsoft Visual Studio vytvořte pohled (View) s názvem View1, který bude mít následující strukturu:

Název pole Tabulka
Num_Book Student
Jméno Student
Matematika Zasedání
Informatika Zasedání
Filozofie Zasedání
Průměrný Vypočítané pole

Provedení (pokyny krok za krokem)

1. Stáhněte si Microsoft Visual Studio
2. Připojte databázi Education.mdf k seznamu pomocných databází Server Explorer

Abyste neztráceli čas vývojem a propojováním databázových tabulek Education.mdf, připravená základna data lze stáhnout. Po stažení a uložení do určité složky je potřeba databázi připojit k seznamu databází v obslužném programu Server Explorer.

Připojení databáze je realizováno jedním z několika standardních způsobů:

  • výběrem příkazu „Připojit k databázi...“ z nabídky Nástroje;
  • výběrem tlačítka (příkazu) „Připojit k databázi...“ z nástroje Server Explorer.

V důsledku toho se otevře okno průvodce, ve kterém je třeba nakonfigurovat databázi.

Rýže. 1. Metody přidávání/připojování databáze

Proces konfigurace databáze se provádí postupně s upřesněním. Otevře se okna, ve kterých jsou zadána příslušná nastavení.

Podrobný popis způsobu připojení typu databáze Microsoft SQL Server v Microsoft Visual Studio, uvedený v tématu:

Po připojení bude okno nástroje Server Explorer vypadat jako na obrázku 2.

Rýže. 2. Nástroj Server Explorer s připojenou databází Education.mdf

3. Přidání nového pohledu (View). Přidat příkaz Nový pohled

Systém Microsoft Visual Studio umožňuje vytvářet reprezentace dat (pohledy). Samotné pohledy zobrazují pouze data tabulky ve snadno čitelném formátu. Nejsou to přímo tabulková data (Tabulky). V našem případě potřebujeme vytvořit pohled v souladu s podmínkou úlohy.

Pohled se vytvoří pomocí příkazu „Přidat nový pohled“, který se volá z kontextové menu(Obrázek 3).

Rýže. 3. Příkaz „Přidat nový pohled...“

V důsledku toho se otevře okno „Přidat tabulku“, ve kterém je třeba vybrat tabulky, jejichž data budou v pohledu použita (obrázek 4).

Rýže. 4. Výběr tabulek, které mají být použity v dotazu

Pro náš případ musíme vybrat obě tabulky.

V důsledku toho bude okno Microsoft Visual Studio vypadat jako na obrázku 5.

Rýže. 5. Okno Microsoft Visual Studio po vytvoření pohledu

V tabulkách je třeba vybrat pole, která budou v pohledu použita. Pořadí výběru polí může odpovídat jejich zobrazení v dotazu v souladu s podmínkami úlohy. To znamená, že se nejprve vyberou pole tabulky Student (Číslo, Jméno) a poté se vyberou pole tabulky Session (Matematika, Informatika, Filozofie).

Pro náš případ je výběr polí znázorněn na obrázku 6.

Rýže. 6. Výběr polí pro prezentaci

Jak je vidět na obrázku 6, ve spodní části okna je zobrazen pohled jazyk SQL, generované systémem

VYBRAT dbo.Student.Num_Book, dbo.Student.Name, dbo.Session.Mathematics, dbo.Session.Informatics, dbo.Session.Philosophy Z
4. Přidejte vypočítané pole Průměr

Pro vytvoření počítaného pole Průměr je potřeba změnit text SQL dotazu pro pohled ve spodní části (viz obrázek 6, spodní část). Například:

VYBRAT dbo.Student.Num_Book, dbo.Student.Name, dbo.Session.Mathematics, dbo.Session.Informatics, dbo.Session.Philosophy, (dbo.Session.Mathematics + dbo.Session.Informatika +.dbo.Session) 3,0 AS Průměr Z dbo.Session INNER JOIN dbo.Student ON dbo.Session.ID_Book = dbo.Student.ID_Book

Přidá se vypočítané pole Průměr, což je aritmetický průměr (obrázek 7).

Rýže. 7. Přidání průměrného vypočítaného pole

5. Spusťte dotaz SQL pro zobrazení pohledu

Obrázek 7 ve spodní části okna ukazuje výsledek provedení SQL dotazu pro pohled. Dotaz se provede vyvoláním příkazu „Execute SQL“ z nabídky „Query Designer“ nebo kliknutím na tlačítko ‘!’ , jak je znázorněno na obrázku 8).

Rýže. 8. Zavolejte pro spuštění dotazu SQL

6. Uložení pohledu

Po zavolání příkazu

Soubor->Uložit vše

Otevře se okno „Choose Name“ (Obrázek 9), ve kterém musíte zadat název nově vytvořeného pohledu. V našem případě můžeme ponechat název ( View1 ), který je standardně navržen systémem.

Rýže. 9. Okno pro nastavení názvu pohledu

7. Zobrazte pohled v okně Server Explorer

Po uložení pohledu bude okno nástroje Server Explorer vypadat jako na obrázku 10. Jak můžete vidět na obrázku, View1 se zobrazí v okně Server Explorer.

SQL-výkon(SQL pohled) je virtuální tabulka složená z jiných tabulek nebo pohledů. Pohled nemá vlastní data, ale spíše agreguje data z tabulek nebo pohledů, které jsou v něm zahrnuty. Pohledy se vytvářejí pomocí příkazů SELECT a mají mnoho využití:

    S jejich pomocí se můžete skrýt před přístupem samostatné sloupce nebo struny. Jedná se o bezpečnostní mechanismus, který uživatelům umožňuje přístup k datům prostřednictvím pohledů, ale neuděluje jim oprávnění k přímému přístupu k podkladovým tabulkám.

    Umožňují vám zobrazit vypočítané sloupce a skrýt složité příkazy SQL pro zjednodušení a přizpůsobení toho, jak každý uživatel vnímá informace v databázi.

    Pohledy také poskytují vrstvu abstrakce mezi daty zpracovávanými aplikací a reálná data obsažené v tabulkách. Níže jsou uvedeny příklady každého z těchto použití a diskutována některá další použití pohledů.

    1. Sql indexy

Index(anglicky index) - databázový objekt vytvořený pro zlepšení výkonu načítání dat. Tabulky v databázi mohou mít velký početřádky, které jsou uloženy v náhodném pořadí, a jejich vyhledávání na základě daného kritéria postupným prohledáváním tabulky řádek po řádku může trvat dlouho. Index je tvořen z hodnot jednoho nebo více sloupců tabulky a ukazatelů na odpovídající řádky tabulky a umožňuje tak vyhledávat řádky, které splňují kritéria vyhledávání. Zrychlení práce pomocí indexů je dosaženo především díky tomu, že index má strukturu optimalizovanou pro vyhledávání – například vyvážený strom.

    1. Spouštěče

Spouštěče jsou techniky, které lze použít k zajištění integrity databáze, i když ji používá více aplikací.

Spoušť - Jedná se o speciální typ uložené procedury, která se automaticky spustí při každém pokusu o změnu dat, která chrání. Spouštěče zajišťují integritu dat tím, že zabraňují neoprávněným nebo nesprávným změnám dat.

Řekněme, že databáze má tabulky propojené přes pole Zastávka. Jméno. Může to být například tabulka zastávek a tras městské dopravy. Je rozumné definovat spouštěč, který při každém pokusu o smazání záznamu zastávky zkontroluje přítomnost tras procházejících touto zastávkou a umožní smazání záznamu pouze v případě, že žádné nejsou.

Spouštěče nepřijímají parametry a nevracejí hodnoty. Provádějí se implicitně, to znamená, že spouštěč se spustí pouze při pokusu o změnu dat.

    1. Uložené procedury

Uložená procedura - je sekvence zkompilovaných příkazů Transact-SQL uložených v základna systému Data serveru SQL. Uložené procedury jsou předkompilovány, takže jejich provádění je efektivnější než běžné dotazy. Uložené procedury běží přímo na serveru a dobře zapadají do modelu klient-server.

Existují dva typy uložených procedur: systémové a uživatelské.

Systémové uložené procedury jsou určeny k získávání informací ze systémových tabulek a provádění různých servisních operací a jsou užitečné zejména při správě databází. Jejich názvy začínají sp_ (uložená procedura).

Vlastní uložené procedury vytvořené přímo vývojáři nebo správci databází.

Užitečnost uložených procedur je dána především vysokou (ve srovnání s běžnými T-SQL dotazy) rychlostí jejich provádění. Navíc jsou prostředkem k systematizaci často prováděných operací. Při prvním provádění uložené procedury existuje řada kroků, které lze rozlišit.

    Postup je rozdělen na jednotlivé komponenty lexikální analyzátor výrazy.

    Komponenty, které odkazují na databázové objekty (tabulky, indexy, pohledy atd.), jsou mapovány na tyto objekty, přičemž se nejprve zkontroluje jejich existence. Tento proces se nazývá jednouodkazové řešení.

    Uloženo v systémové tabulce syscomments zdroj procedura a v tabulce sysobjects - její název.

    Je vytvořen předběžný plán provádění dotazu. Tento předběžný plán se nazývá normalizovaný plán nebo strom dotazů a je uložen v systémové tabulce sysprocedures.

    Při prvním spuštění uložené procedury je strom dotazů přečten a nakonec optimalizován.

Provede se dříve vytvořený plán postupu.

Toto schéma umožňuje opakovaným voláním zabránit plýtvání časem analýzou, řešením odkazů a kompilací stromu dotazů. A při následujících voláních se provede pouze pátý krok. Plán uložené procedury po prvním spuštění je navíc obsažen ve vysokorychlostní mezipaměti procedur. To znamená, že během volání procedury bude rychlost čtení velmi vysoká.

Použití uložených procedur má řadu dalších výhod.

1. Uložené procedury umožňují oddělit pravidla do samostatné struktury. Tato pravidla pak používá mnoho aplikací k vytvoření datového rozhraní odolného vůči chybám. Výhodou tohoto přístupu je, že můžete změnit pravidla pouze pro samostatnou část databázových objektů a ne pro všechny její aplikace.

2. Použití uložených procedur výrazně zlepšuje výkon dotazů, ale největšího zvýšení je dosaženo při provádění opakovaných operací, kdy je plán dotazů neustále uložen v systémové mezipaměti.

3. Uložené procedury mohou při spuštění přijímat argumenty a vracet hodnoty (jako sady výsledků).

4. Uložené procedury lze spouštět podle plánu (v režimu automatického provádění) zadaného při spuštění serveru SQL.

6. Uložené procedury jsou na rozdíl od triggerů volány explicitně. Tedy při přímém přístupu k proceduře z aplikace, skriptu, balíčku nebo úlohy.

Uložené procedury - mocný nástroj zpracování dat. Velmi důležitou roli hrají systémové uložené procedury důležitou roli ve správě a podpoře databáze. Vlastní uložené procedury se používají k řešení téměř jakéhokoli problému. Uživateli může být navíc uděleno právo spustit uloženou proceduru, i když nemá přístupová práva k objektům, ke kterým procedura přistupuje.

Podání

Odstranění

Přejmenování

Přeměna

Správa uložených procedur

Ke změně stávající postup použitý příkaz ALTER PROC, parametry tohoto příkazu jsou stejné jako parametry příkazu create procedure.

Chcete-li to provést, musíte použít speciální systémovou uloženou proceduru:

sp_rename 'ObjectName' 'NewObjectName'.

Chcete-li odstranit uloženou proceduru, použijte příkaz Transact-SQL:

DROP PROC Název procedury.

Výkon(View) je další objekt, který tvoří logickou strukturu každé databáze. Prezentace pro koncoví uživatelé vypadá jako tabulka, ale neobsahuje data, ale pouze je reprezentuje. Fyzicky reprezentovaná data jsou umístěna v různých databázových tabulkách.

Pohled je implementován jako uložený dotaz, na jehož základě se provádí výběr z různých databázových tabulek.

Reprezentace mají následující výhody:

· zajistit důvěrnost informací, protože umožňují pouze zobrazení potřebné informace, skrývání určitých polí;

· zjednodušit prezentaci dat, protože uživatel pracuje s pohledem jako s jednou tabulkou, která je vytvořena na základě výběru dat z více tabulek;

· například spravovat přístupová práva k datům, místo udělování práv k provádění dotazů na určitá pole tabulek je snazší povolit provádění dotazů prostřednictvím pohledu.

MS SQL Server poskytuje různými způsoby vytváření pohledů: pomocí nástrojů Transact-SQL a v obslužném programu pro správu Management Studio.

Chcete-li vytvořit pohled, použijte příkaz CREATE VIEW a členové role mají právo jej spustit sysadmin, db_owner, db_dlladmin:

VYTVOŘIT ZOBRAZENÍ Název pohledu [(pole [,...n])]

Vzorky dotazů

Při specifikaci ViewName je nutné dodržet dříve definovaná pravidla pro pojmenování objektů, toto jméno by se také nemělo shodovat s názvem již existující tabulky v databázi; Parametr SE ŠIFROVÁNÍM definuje šifrování kódu požadavku a zajišťuje, že jej uživatelé nemohou zobrazit ani použít.

Vzorky dotazů je příkaz SELECT, jehož parametry určují obsah pohledu. Názvy polí zobrazení se zadávají buď pomocí aliasů v příkazu select, nebo se zadávají v parametru pole.

Vytvořme například pohled obsahující pouze následující informace o zaměstnancích společnosti AdventureWorks , jako jsou: pozice a přihlašovací jméno zaměstnance, datum narození.

VYTVOŘIT ZOBRAZENÍ InfoZaměstnanci ([číslo], [Příjmení], [Datum narození]) JAKO

SELECT BusinessEntityID, JobTitle + "(" + LoginID + ")",

CONVERT (znak(10), datum narození, 104)

OD HumanResources.Employee

Pro zobrazení obsahu projekce se provede následující dotaz:

SELECT * FROM InfoEmployees

Pomocí tohoto zobrazení je omezený přístup k některým polím zdrojové tabulky Zaměstnanec, v tomto případě říkají, že tabulka je překrytá vertikální filtr, tj. Přístup k některým polím tabulky je omezen bez ochrany na úrovni sloupců.

Pokud je v kódu výběrového dotazu definována podmínka pro výběr záznamů, pak se říká, že tabulka podléhá horizontální filtr. Například, další představení poskytuje přístup k informacím o výrobcích, kteří mají online služby pro objednávání zboží:

VYTVOŘIT ZOBRAZENÍ OnlineVendors

OD Nákupu. Prodejce

KDE PurchasingWebServiceURL NENÍ NULL

V žádosti o výběr může být zadán příkaz SELECT jakékoli složitosti, ale je zakázáno používat sekce OBJEDNAT PODLE, který lze později použít při načítání dat z vytvořeného pohledu. Také se doporučuje vytvářet pohledy pouze na základě tabulek, které mají vnitřní spojení.

Vytvořme například pohled, který zobrazuje celkové náklady na každou objednávku s uvedením zákazníka a jeho čísla:

VYTVOŘIT ZOBRAZENÍ informačních objednávek

SELECT Jméno + " " + Příjmení jako [ Název společnosti],

SalesOrderHeader.SalesOrderID jako [ Číslo objednávky],

Převést (peníze, součet(jednotková cena*množství objednávky*(1-sleva na jednotkovou cenu)),0) jako [celkem]

OD (Osoba. Kontakt INNER JOIN Sales.SalesOrderHeader

ON Contact.ContactID=SalesOrderHeader.ContactID)

INNER JOIN Sales.SalesOrderDetail

ON SalesOrderHeader.SalesOrderID=SalesOrderDetail.SalesOrderID

GROUP BY SalesOrderHeader.SalesOrderID, Jméno + " " + Příjmení

Mějte na paměti, že použití zobrazení nezlepší výkon. Volání pohledu tedy způsobí provedení jeho vnitřního kódu nejlepší scénář podání NE sníží výkon databáze.




Nahoru