• Struktura příkazů SQL. Úvod do strukturovaného dotazovacího jazyka SQL

    Jazyk strukturované dotazy Výsledkem vývoje byl strukturní dotazovací jazyk (SQL). relační model dat a je v současnosti de facto jazykovým standardem relační DBMS. Jazyk SQL je dnes podporován velkým množstvím DBMS různých typů.

    název jazyk SQL obvykle se vyslovuje písmeny „es-q-el“. Někdy se používá mnemotechnický název „See-Quel“.

    Jazyk SQL poskytuje uživateli (s minimálním úsilím z jeho strany) následující funkce:

    Vytvářejte databáze a tabulky pomocí plný popis jejich struktury

    Provádějte základní operace manipulace s daty: vkládání, úprava, mazání dat

    Provádějte jednoduché i složité dotazy.

    Jazyk SQL je relativně kompletní.

    Struktura a syntaxe jeho příkazů jsou poměrně jednoduché a jazyk samotný je univerzální, to znamená, že syntaxe a struktura jeho příkazů se při přechodu z jednoho DBMS do druhého nemění.

    Jazyk SQL má dvě hlavní složky:

    DDL (Data Definition Language) pro definování databázových struktur a řízení přístupu k datům

    DML (Data Manipulation Language) se používá k získávání a aktualizaci dat.

    Jazyk SQL je neprocedurální, to znamená, že při jeho používání musíte určit, jaké informace mají být získány, a ne jak je lze získat. SQL příkazy jsou běžná slova v angličtině(SELECT, INSERT atd.). Nejprve zvažte příkazy SQL DML:

    SELECT - načtení dat z databáze

    INSERT - vložení dat do tabulky

    UPDATE - aktualizace dat v tabulce

    DELETE - odstranění dat z tabulky

    příkaz SELECT

    Příkaz SELECT provádí akce ekvivalentní následujícím operacím relační algebra: ukázka, projekce a spojení.

    Nejjednodušší SQL dotaz, který jej používá, vypadá takto:

    SELECT název_sloupce FROM tbl

    Za klíčovým slovem select následuje čárkami oddělený seznam sloupců, jejichž data budou vrácena jako výsledek dotazu. Klíčové slovo from určuje, ze které tabulky (nebo pohledu) jsou data načítána.

    Výsledkem výběrového dotazu je vždy tabulka, která se nazývá výsledková tabulka. Kromě toho lze výsledky dotazu provedeného pomocí příkazu select použít k vytvoření nové tabulky. Pokud výsledky dvou dotazů na různé tabulky mají stejný formát, lze je spojit do jedné tabulky. Také tabulka získaná jako výsledek dotazu se může stát předmětem dalších dotazů.

    Pro výběr všech sloupců a všech řádků tabulky stačí zadat SELECT * FROM tbl;

    Zvažte tabulku produktů obsahující informace o ceně různé druhy produkty:

    Vyžádejte si výsledek

    VYBRAT * Z produktu;

    bude celá tabulka Produkt.

    Pomocí dotazu můžete vybrat konkrétní sloupce tabulky

    SELECT col1, col2, … , coln FROM tbl;

    Takže výsledek dotazu

    SELECT typ, cena FROM produktu;

    bude stůl

    Seznam sloupců v příkazu select se také používá, pokud je potřeba změnit pořadí sloupců ve výsledné tabulce:

    Aby bylo možné vybrat pouze ty řádky tabulky, které splňují určitá omezení, speciální klíčové slovo kde následuje booleovská podmínka. Pokud záznam splňuje tuto podmínku, je zahrnut do výsledku. V opačném případě se záznam zahodí.

    Například výběrem těch produktů z tabulky Produkt, jejichž cena splňuje podmínku Cena<3200, можно осуществить, используя запрос

    SELECT * FROM Product where Price<3200;

    Jeho výsledek:

    Podmínku lze skládat a kombinovat pomocí logických operátorů NOT , AND, OR, XOR, například: kde id_ Cena>500 AND Cena<3500. Допускается также использование выражений в условии: where Price>(1+1) a řetězcové konstanty: kde name= "autobalance".

    Použití konstrukce BETWEEN var1 AND var2 vám umožňuje zkontrolovat, zda hodnoty výrazu spadají do intervalu od var1 do var2 (včetně těchto hodnot):

    VYBERTE * Z Produktu, kde Cena MEZI 3000 A 3500;

    Analogicky k operátoru NOT BETWEEN existuje operátor NOT IN.

    Názvy sloupců zadané v klauzuli SELECT lze přejmenovat. K tomu se používá klíčové slovo AS, které však lze vynechat, protože je implicitně implicitní. Například žádost

    SELECT Typ AS model, Typ_id AS číslo FROM Produkt kde Typ_id =3

    vrátí (názvy aliasů by měly být psány bez uvozovek):

    Operátor LIKE slouží k porovnání řetězce se vzorem:

    SELECT * FROM tbl kde col_name LIKE "abc"

    Tento dotaz vrací pouze záznamy, které obsahují řetězcovou hodnotu abc ve sloupci col_name.

    Ve vzoru jsou povoleny dva zástupné znaky: "_" a "%". První z nich nahrazuje jeden libovolný znak v šabloně a druhý nahrazuje sekvenci libovolných znaků. Takže "abc%" odpovídá jakémukoli řetězci, který začíná na abc, "abc_" odpovídá jakémukoli řetězci 4 znaků, který začíná abc, "%z" odpovídá jakémukoli řetězci, který končí na z, a nakonec "%z%" - sekvence znaky obsahující z.

    Všechny záznamy naleznete v tabulce Produkt, kde hodnota Typ začíná písmenem "a" takto:

    SELECT * FROM Product kde Typ LIKE "a%";

    kamionové váhy

    Pokud hledaný řetězec obsahuje zástupný znak, musíte zadat řídicí znak v klauzuli ESCAPE. Tento řídicí znak musí být ve vzoru použit před zástupným znakem, což znamená, že se s ním má zacházet jako s běžným znakem. Například, pokud chcete najít všechny hodnoty obsahující znak "_" v určitém poli, pak vzor "%_%" vrátí všechny záznamy z tabulky. V tomto případě by měla být šablona napsána takto:

    "%|_%" ESCAPE "|"

    Chcete-li zkontrolovat, zda hodnota odpovídá řetězci "20%", můžete použít následující operátor:

    LIKE "20#%" ESCAPE "#"

    Operátor IS NULL umožňuje kontrolovat nepřítomnost (přítomnost) hodnoty NULL v polích tabulky. Použití normálních operátorů porovnání v těchto případech může vést k nesprávným výsledkům, protože výsledky porovnání s hodnotou NULL jsou v UNKNOWN (neznámé). Podmínka výběru by tedy měla vypadat takto:

    kde název_sloupce JE NULL místo kde název_sloupec=NULL.

    Výchozí výsledek načtení vrátí záznamy ve stejném pořadí, v jakém jsou uloženy v databázi. Pokud chcete záznamy seřadit podle jednoho ze sloupců, musíte použít klauzuli ORDER BY, za kterou je uveden název tohoto sloupce:

    SELECT * FROM tbl ORDER BY col_name;

    V důsledku tohoto dotazu budou záznamy vráceny ve vzestupném pořadí podle hodnoty atributu col_name.

    Záznamy lze také třídit podle více sloupců. Chcete-li to provést, jejich jména musí být uvedena za ORDER BY, oddělená čárkami:

    SELECT * FROM tbl ORDER BY col_name1, col_name2.

    Záznamy budou seřazeny podle pole název_sloupce1; pokud je ve sloupci název_sloupce1 několik záznamů se stejnou hodnotou, budou seřazeny podle pole název_sloupce2.

    Pokud chcete záznamy seřadit v obráceném pořadí (například podle data sestupně), musíte zadat ORDER BY název_sloupce DESC.

    Pro přímé řazení existuje klíčové slovo ASC, které je akceptováno jako výchozí hodnota.

    Pokud výsledek výběru obsahuje stovky a tisíce záznamů, jejich výstup a zpracování zabere značné množství času.

    Proto jsou informace často stránkovány a prezentovány uživateli po částech. Stránkování se používá s klíčovým slovem limit následovaným počtem položek k zobrazení. Následující dotaz načte prvních 10 záznamů a zároveň je seřadí zpět v poli název_sloupec1:

    SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10

    K extrakci dalších 10 záznamů se používá klíčové slovo limit se dvěma hodnotami: první určuje pozici, ze které se má zobrazit výsledek, a druhá určuje počet záznamů, které se mají načíst:

    SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10,10

    Chcete-li načíst dalších 10 záznamů, použijte konstrukci LIMIT 20, 10.

    02/07/07 11,6 tis

    Úvod do správy relačních databází

    sql je často označován jako jazyk esperanto pro systémy správy databází (DBMS). Na světě totiž neexistuje jiný jazyk pro práci s databázemi (DB), který by byl v programech tak hojně využíván. První sol standard se objevil v roce 1986 a nyní získal univerzální přijetí. Lze jej použít i při práci s nerelačními DBMS. Na rozdíl od jiných softwarových nástrojů, jako jsou C a Cobol, které jsou výsadou profesionálních programátorů, sql používají specialisté z nejrůznějších oborů. Programátoři, administrátoři DBMS, obchodní analytici – ti všichni úspěšně zpracovávají data pomocí sql. Znalost tohoto jazyka je užitečná pro každého, kdo musí s databází pracovat.

    V tomto článku se budeme zabývat základními pojmy sql. Prozradíme jeho pozadí (a cestou rozptýlíme pár mýtů). Seznámíte se s relačním modelem a budete moci získat první dovednosti v práci s sql, které pomohou v dalším zvládnutí jazyka.

    Je těžké se naučit sql? Záleží na tom, jak hluboko se hodláte ponořit do podstaty. Abyste se stali profesionály, musíte se toho hodně naučit. Jazyk sql začal v roce 1974 jako předmět malého 23stránkového výzkumného článku a od té doby ušel dlouhou cestu. Text současného standardu - oficiálního dokumentu "mezinárodní standardní databázový jazyk sql" (obvykle nazývaný sql-92) - obsahuje přes šest set stran, ale neříká nic o specifických vlastnostech sol verzí implementovaných v DBMS. microsoft, oracle, sybase atd. Jazyk je tak vyvinutý a rozmanitý, že pouhé uvedení jeho funkcí by vyžadovalo několik článků v časopisech, a pokud shromáždíte vše, co je napsáno na téma sol, získáte vícesvazkovou knihovnu.

    Pro běžného uživatele však není vůbec nutné znát sql celé. Stejně jako turista, který se ocitne v zemi, kde se mluví nesrozumitelným jazykem, se stačí naučit jen pár běžných výrazů a gramatických pravidel, tak v sql – s trochou znalosti, můžete získat spoustu užitečných výsledků. V tomto článku se podíváme na základní příkazy sql, pravidla pro nastavení kritérií pro výběr dat a ukážeme si, jak získat výsledky. Díky tomu budete moci samostatně vytvářet tabulky a zadávat do nich informace, skládat dotazy a pracovat s reporty. Tyto znalosti se mohou stát základem pro další samostatný rozvoj sql.

    Co je sql?

    sql je specializovaný neprocedurální jazyk, který umožňuje popisovat data, vybírat a zpracovávat informace z relačních DBMS. Specializace znamená, že sol je určen pouze pro práci s databází; není možné vytvořit plnohodnotný aplikační systém pouze pomocí prostředků tohoto jazyka - k tomu budete muset použít jiné jazyky, do kterých můžete vkládat příkazy sql. Proto se sql také nazývá pomocný jazykový nástroj pro zpracování dat. Pomocný jazyk se používá pouze v kombinaci s jinými jazyky.

    V obecném aplikačním jazyce obvykle existují prostředky pro vytváření procedur, ale v SQL tomu tak není. Nelze jej použít k určení, jak má být určitý úkol vykonán, ale pouze k určení, o co přesně se jedná. Jinými slovy, při práci s sql nás zajímají výsledky, nikoli postupy k jejich získání.

    Nejdůležitější vlastností sql je možnost přístupu k relačním databázím. Mnoho lidí si dokonce myslí, že výrazy „databáze zpracovaná sql“ a „relační databáze“ jsou synonyma. Brzy však uvidíte, že mezi nimi je rozdíl. Standard sql-92 nemá ani pojem vztah.

    Co je to relační DBMS?

    Aniž bychom zacházeli do podrobností, relační DBMS je systém založený na modelu správy relačních dat.

    Koncept relačního modelu byl poprvé navržen v práci Dr. E. F. Codda, publikované v roce 1970. Popisoval matematický aparát pro strukturování a správu dat a také navrhl abstraktní model pro reprezentaci jakékoli skutečné informace. Předtím bylo při používání databáze nutné vzít v úvahu specifické vlastnosti ukládání informací do ní. Pokud došlo ke změně vnitřní struktury databáze (např. za účelem zvýšení výkonu), bylo nutné přepracovat aplikační programy, i když na logické úrovni nedošlo k žádným změnám. Relační model umožnil oddělit jednotlivé vlastnosti datového úložiště od úrovně aplikačního programu. Model skutečně nepopisuje, jak se informace ukládají a jak se k nim přistupuje. V úvahu se bere pouze to, jak tyto informace vnímá uživatel. Díky nástupu relačního modelu se kvalitativně změnil přístup ke správě dat: z umění se stal vědou, což vedlo k revolučnímu rozvoji odvětví.

    Základní pojmy relačního modelu

    Podle relačního modelu je relace nějaký druh tabulky s daty. Vztah může mít jeden nebo více atributů (vlastností) odpovídajících sloupcům této tabulky a nějakou množinu (případně prázdnou) dat reprezentujících sady těchto atributů (nazývají se n-ární n-tice nebo záznamy) a odpovídající řádkům tabulky.

    U každé n-tice musí hodnoty atributů patřit do takzvaných domén. Ve skutečnosti je doména nějaká sada dat, která definuje sadu všech platných hodnot.

    Podívejme se na příklad. Nechť existuje doména Days of Week obsahující hodnoty od pondělí do neděle. Pokud má vztah atribut DayWeek, který odpovídá této doméně, pak každá n-tice ve vztahu musí mít jednu z hodnot uvedených ve sloupci DayWeek. Zobrazení hodnot Leden nebo Cat není povoleno.

    Poznámka: Atribut musí mít jednu z platných hodnot. Zadání více hodnot najednou je zakázáno. Tedy kromě požadavku, aby hodnoty atributu patřily do určité domény, musí být dodržena podmínka její atomicity. To znamená, že pro tyto hodnoty není povolen rozklad, to znamená, že je nelze rozdělit na menší části, aniž by ztratily hlavní význam. Pokud by například hodnota atributu současně obsahovala pondělí a úterý, pak by bylo možné rozlišit dvě části, které si zachovaly původní význam - Den v týdnu; proto tato hodnota atributu není atomická. Pokud se však pokusíte rozdělit význam „pondělí“ na části, získáte sadu jednotlivých písmen – od „P“ po „K“; původní význam se ztrácí, takže hodnota „pondělí“ je atomická.

    Vztahy mají i další vlastnosti. Nejvýznamnější z nich je matematická vlastnost uzavřených operací. To znamená, že v důsledku provedení jakékoli operace s relací se musí objevit nová relace. Tato vlastnost vám umožňuje získat předvídatelné výsledky při provádění matematických operací s vztahy. Navíc je možné reprezentovat operace jako abstraktní výrazy s různými úrovněmi vnoření.

    Dr. Codd ve své původní práci definoval soubor osmi operátorů nazývaných relační algebra. Čtyři operátory – sjednocení, logické násobení, rozdíl a kartézský součin – byly přeneseny z tradiční teorie množin; zbytek operátorů byl vytvořen speciálně pro zpracování vztahů. Následná práce Dr. Codda, Chrise Date a dalších navrhla další operátory. Dále v tomto článku budou zvažovány tři relační operátory – produkce (projekt), omezení (výběr nebo omezení) a sloučení (spojení).

    sql a relační model

    Nyní, když jste obeznámeni s relačním modelem, zapomeňme na něj. Samozřejmě ne navždy, ale pouze pro vysvětlení následujícího: ačkoli to byl relační model navržený Dr. Coddem, který byl použit při vývoji sql, neexistuje mezi nimi úplná nebo doslovná korespondence (to je jeden z důvodů, proč standard sql-92 neobsahuje termín vztah). Například pojmy sql tabulka a relace nejsou ekvivalentní, protože tabulky mohou mít několik stejných řádků najednou, zatímco identické n-tice nejsou v relacích povoleny. SQL navíc neumožňuje použití relačních domén, i když datové typy do jisté míry hrají roli (někteří vlivní zastánci relačního modelu se nyní snaží relační domény začlenit do budoucího standardu sql).

    Bohužel nesoulad mezi sql a relačním modelem vytvořil v průběhu let mnoho nedorozumění a kontroverzí. Ale protože hlavním tématem článku je studium sql, a ne relační model, tyto problémy zde nejsou zvažovány. Jen si uvědomte, že existují rozdíly mezi pojmy používanými v sql a v relačním modelu. Dále v článku budou použity pouze termíny akceptované v sql. Místo relací, atributů a n-tic použijeme jejich sql protějšky: tabulky, sloupce a řádky.

    statické a dynamické sql

    Možná už znáte pojmy jako statický a dynamický sql. Dotaz SQL je statický, pokud je zkompilován a optimalizován ve fázi před spuštěním programu. O jedné formě statického sql jsme se již zmínili, když jsme mluvili o vkládání příkazů sql do programů C nebo Cobol (pro takové výrazy existuje jiný název - vložené sql). Jak pravděpodobně tušíte, dynamický sql dotaz je kompilován a optimalizován během provádění programu. Běžní uživatelé zpravidla používají dynamické sql, které jim umožňuje vytvářet dotazy podle momentálních potřeb. Jednou z možností využití dynamických sql dotazů je jejich interaktivní nebo přímé volání (existuje i speciální termín - directsql), kdy se dotazy odeslané ke zpracování zadávají interaktivně z terminálu. Mezi statickým a dynamickým sql existují určité rozdíly v syntaxi použitých struktur a vlastnostech provádění, nicméně tyto problémy jsou nad rámec článku. Upozorňujeme pouze, že pro jasnost porozumění jsou příklady uvedeny ve formě přímých dotazů SQL, protože to umožňuje nejen programátorům, ale také většině koncových uživatelů naučit se používat sql.

    jak se naučit sql

    Nyní jste připraveni napsat své první dotazy SQL. Pokud máte přístup k databázi přes sql a chcete naše příklady využít v praxi, pak zvažte následující: musíte se přihlásit jako uživatel s neomezenými oprávněními a budete potřebovat softwarové nástroje pro interaktivní zpracování sql dotazů (pokud se bavíme pokud jde o síťovou databázi, měli byste si promluvit se správcem databáze o udělení příslušných práv). Pokud nemáte přístup k databázi přes sql, nebuďte naštvaní: všechny příklady jsou velmi jednoduché a můžete je vyřešit „nasucho“, aniž byste museli přistupovat ke stroji.

    Chcete-li provést jakoukoli akci v sql, musíte provést výraz v jazyce sql. Existuje několik typů výrazů, ale lze mezi nimi rozlišit tři hlavní skupiny: ddl-commands (jazyk pro definici dat - jazyk pro popis dat), dml-commands (jazyk pro manipulaci s daty - jazyk pro manipulaci s daty) a nástroje pro kontrolu dat. V určitém smyslu jsou tedy v sql kombinovány tři různé jazyky.

    Data Popis Příkazy jazyka

    Začněme jedním z hlavních příkazů ddl – create table (Create a table). V sql existuje několik typů tabulek, hlavní jsou dva typy: základní (základní) a selektivní (pohledy). Základní tabulky jsou tabulky související s reálnými daty; selektivní - jedná se o "virtuální" tabulky, které jsou vytvořeny na základě informací získaných ze základních tabulek; ale uživatelům vypadají formuláře jako běžné tabulky. Příkaz create table slouží k vytváření základních tabulek.

    V příkazu create table musíte zadat název tabulky, určit seznam sloupců a typy dat, které obsahují. Jako parametry mohou být přítomny i další volitelné prvky, ale nejprve se podívejme pouze na hlavní parametry. Ukažme si nejjednodušší syntaktickou formu tohoto příkazu:

    vytvořit tabulku Název_tabulky (Datový typ sloupce) ;

    create a table jsou klíčová slova SQL; TableName, Column a DataType jsou formální parametry, místo kterých uživatel pokaždé zadá skutečné hodnoty. Parametry Column a DataType jsou uzavřeny v závorkách. V sql se závorky běžně používají k seskupování jednotlivých prvků. V tomto případě umožňují kombinovat definice pro sloupec. Středník na konci je oddělovač příkazů. Musí dokončit jakýkoli výraz v jazyce SQL.

    Zvažte příklad. Předpokládejme, že chcete vytvořit tabulku pro ukládání dat o všech schůzkách (schůzkách). Chcete-li to provést, zadejte příkaz v sql:

    vytvořit tabulku schůzek (datum_datum schůzky) ;

    Po provedení tohoto příkazu se vytvoří tabulka s názvem schůzky, kde je jeden sloupec datum_schůzky, do kterého lze ukládat data typu datum. Vzhledem k tomu, že dosud nebyla zadána žádná data, počet řádků v tabulce je nula (pomocí příkazu create table pouze definujete tabulku, skutečné hodnoty se zadávají příkazem insert, o kterém bude řeč později).

    Parametry schůzky a datum_schůzky se nazývají identifikátory, protože určují názvy pro konkrétní databázové objekty, v tomto případě názvy pro tabulku a sloupec. V sql existují dva typy identifikátorů: běžné (běžné) a vyhrazené (oddělené). Identifikátory s oddělovači jsou uzavřeny do dvojitých uvozovek a rozlišují se malá a velká písmena. Běžné identifikátory se nerozlišují žádnými omezenými znaky a nerozlišují velká a malá písmena. Tento článek používá pouze běžné identifikátory.

    Symboly používané ke konstrukci identifikátorů musí splňovat určitá pravidla. Běžné identifikátory mohou používat pouze písmena (ne nutně latinku, ale i jiné abecedy), čísla a podtržítko. Identifikátor nesmí obsahovat interpunkci, mezery ani speciální znaky (#, @, %, nebo!); také nemůže začínat číslicí nebo podtržítkem. Pro identifikátory můžete použít samostatná klíčová slova SQL, ale to se nedoporučuje. Identifikátor je určen k označení nějakého objektu, takže musí mít jedinečný (v určitém kontextu) název: nelze vytvořit tabulku s názvem, který se již nachází v databázi; Ve stejné tabulce nemůžete mít sloupce se stejným názvem. Mimochodem, mějte na paměti, že události a události jsou stejné názvy pro sql. Není možné vytvořit nový identifikátor pouze změnou velikosti písmen.

    Ačkoli tabulka může mít pouze jeden sloupec, v praxi jsou obvykle vyžadovány tabulky s více sloupci. Příkaz k vytvoření takové tabulky obecně vypadá takto:

    vytvořit tabulku název_tabulky (sloupec datového typu [ ( , sloupec datového typu ) ]);

    Hranaté závorky se používají k označení volitelných prvků, složené závorky obsahují prvky, které mohou být seznamem jednosměrných konstrukcí (při zadání skutečného příkazu sql se žádná z těchto závorek nevkládá). Tato syntaxe umožňuje zadat libovolný počet sloupců. Všimněte si, že před druhým prvkem je čárka. Pokud je v seznamu více parametrů, jsou od sebe odděleny čárkami.

    vytvořit tabulku schůzky2 (datum_schůzky datum , čas_schůzky čas , popis varchar (256)) ;

    Tento příkaz vytvoří tabulku události2 (nová tabulka musí mít jiný název, protože tabulka událostí je již v databázi přítomna). Stejně jako první tabulka má sloupec jmenování_datum pro záznam data schůzek; navíc je zde sloupec meeting_time pro záznam časů těchto schůzek. Parametr description je textový řetězec, který může obsahovat až 256 znaků. Typ zadaný pro tento parametr je varchar (zkratka pro proměnlivost znaků), protože není předem známo, kolik místa bude záznam vyžadovat, ale je jasné, že popis nebude mít více než 256 znaků. Při popisu parametru v typu znakového řetězce (a některých dalších typech) je zadána délka parametru. Jeho hodnota je uvedena v závorce vpravo od názvu typu.

    Možná jste si všimli, že ve dvou uvažovaných příkladech je položka příkazu formátována jinak. Pokud je v prvním případě příkaz zcela umístěn na jednom řádku, pak ve druhém, po první otevřené závorce, pokračuje záznam z nového řádku a definice každého dalšího sloupce začíná na novém řádku. V sql nejsou žádné speciální požadavky na formátování záznamů. Rozdělení záznamu na řádky usnadňuje čtení. Jazyk sql umožňuje při psaní příkazů nejen rozdělit příkaz na řádky, ale také vložit odsazení na začátek řádků a mezery mezi prvky záznamu.

    Nyní, když znáte základní pravidla, pojďme se podívat na složitější příklad vytvoření tabulky s více sloupci. Na začátku článku byla zobrazena tabulka zaměstnanců. Obsahuje tyto sloupce: příjmení, jméno, datum zaměstnání, oddělení, kategorie a plat za rok. K definici této tabulky se používá následující příkaz sql:

    vytvořit tabulku zaměstnanci (znak příjmení (13) není null, znak křestního_jména (10) není null, datum_náboru , znak_pobočky (15) , platová_úroveň smallint , plat desítkové (9 , 2)) ;

    V týmu je několik nových prvků. První je nenulový výraz na konci definic sloupců last_name a first_name. Pomocí takových struktur jsou stanoveny požadavky, které je třeba dodržovat. V tomto případě je uvedeno, že při zadávání musí být vyplněna pole příjmení a jméno; nemůžete nechat tyto sloupce prázdné (to je celkem logické: jak můžete identifikovat zaměstnance, aniž byste znali jeho jméno?).

    Kromě toho jsou v příkladu tři nové datové typy: znakový, smallint a desítkový. Zatím jsme se o typech moc nebavili. Přestože v sql nejsou žádné relační domény, existuje sada základních datových typů. Tato informace se používá při přidělování paměti a porovnávání hodnot; zužuje do určité míry seznam možných vstupních hodnot, ale řízení typu sql je méně přísné než v jiných jazycích.

    Všechny datové typy dostupné v sql lze rozdělit do šesti skupin: znakové řetězce, přesné číselné hodnoty, přibližné číselné hodnoty, bitové řetězce, datum a čas a intervaly. Uvedli jsme všechny varianty, ale tento článek se bude podrobně věnovat jen některým z nich (například bitové řetězce běžné uživatele nijak zvlášť nezajímají).

    Mimochodem, pokud jste si mysleli, že datum a čas je překlep, tak jste na omylu. Tato skupina (datetime) zahrnuje většinu časově souvisejících datových typů používaných v sql (parametry jako časové intervaly jsou v samostatné skupině). V předchozím příkladu již byly nalezeny dva datové typy ze skupiny datetime – datum a čas.

    Dalším datovým typem, který již znáte, je proměnlivost znaků (nebo jen varchar); patří do skupiny znakových řetězců. Pokud se varchar používá k ukládání řetězců proměnné délky, pak typ char, se kterým se setkáváme ve třetím příkladu, je určen pro zápis řetězců s pevným počtem znaků. Například sloupec last_name bude obsahovat řetězce o 13 znacích, bez ohledu na skutečně zadaná příjmení, ať už jde o poe nebo penworth-chickering (v případě poe bude zbývajících 10 znaků vyplněno mezerami).

    Z pohledu uživatele mají varchar a char stejný význam. Proč bylo nutné zavést dva typy? Faktem je, že v praxi většinou musíte najít kompromis mezi rychlostí a úsporou místa na disku. Použití řetězců s pevnou délkou zpravidla zvyšuje rychlost přístupu, pokud je však délka řetězce příliš dlouhá, dochází k plýtvání místem na disku. Pokud v události2 pro každý řádek komentáře vyhradíte 256 znaků, může se to ukázat jako iracionální; nejčastěji budou řádky mnohem kratší. Na druhou stranu příjmení mají také různé délky, ale obvykle vyžadují asi 13 znaků; v tomto případě budou ztráty minimální. Existuje dobré pravidlo: pokud je známo, že délka řetězce se mění jen málo nebo je relativně malá, použijte char; jinak varchar.

    Další dva nové datové typy smallint a decimal patří do skupiny přesných číselných hodnot. smallint je zkratka pro malé celé číslo. SQL také poskytuje celočíselný datový typ. Přítomnost dvou podobných typů se v tomto případě vysvětluje také úvahou o úspoře místa. V našem příkladu mohou být hodnoty grade_level ​​reprezentovány jako dvoumístné číslo, takže je použit typ smallint; v praxi však není vždy známo, jaké maximální hodnoty mohou parametry mít. Pokud takové informace neexistují, použijte celé číslo. Skutečný úložný prostor pro parametry smallint a integer a odpovídající rozsah hodnot pro tyto parametry závisí na platformě.

    Desetinný datový typ, běžně používaný pro finanční účetnictví, umožňuje zadat vzor s požadovaným počtem desetinných míst. Protože se tento typ používá pro přesný číselný zápis, zaručuje přesnost při provádění matematických operací s desetinnými daty. Pokud použijete datové typy ze skupiny přibližného číselného zápisu pro desetinné hodnoty, jako je float (číslo s plovoucí desetinnou čárkou), povede to k chybám zaokrouhlování, takže tato možnost není vhodná pro finanční výpočty. K definování parametrů desítkového typu se používá následující zápis:

    kde p je počet desetinných míst, d je počet desetinných míst. Místo p byste měli do použitých hodnot napsat celkový počet platných číslic a místo d počet číslic za desetinnou čárkou.

    Postranní panel "Vytvoření tabulky" zobrazuje úplné shrnutí příkazu vytvořit tabulku. Obsahuje nové prvky a zobrazuje formát pro všechny uvažované datové typy (v zásadě existují i ​​jiné datové typy, ale ty zatím neuvažujeme).

    Zpočátku se může zdát, že syntaxe příkazů sql je příliš složitá. Ale můžete to snadno zjistit, pokud jste pečlivě prostudovali výše uvedené příklady. Na diagramu se objevil další prvek - svislá čára; slouží k rozlišení mezi alternativními návrhy. Jinými slovy, při definování každého sloupce je třeba zvolit vhodný datový typ (jak si pamatujete, volitelné parametry jsou uzavřeny v hranatých závorkách a konstrukce, které se mohou mnohokrát opakovat, ve složených závorkách; tyto speciální znaky nejsou zapsány v reálném sql příkazy). První část schématu zobrazuje úplné názvy datových typů, druhá část zobrazuje jejich zkrácené názvy; v praxi lze použít kterýkoli z nich.

    První část článku je dokončena. Druhý bude věnován studiu příkazů insert, select, update a delete dml. Rovněž budou zváženy podmínky vzorkování dat, porovnání a logické operátory, použití nulových hodnot a ternární logika.

    Vytvoření tabulky. Syntaxe příkazu create table: volitelné parametry jsou uvedeny v hranatých závorkách, opakující se konstrukce jsou uvedeny ve složených závorkách.

    vytvořit tabulku tabulky (znak sloupce (délka) [ omezení ] | proměnlivý znak (délka) [ omezení ] | datum [ omezení ] | čas [ omezení ] | celé číslo [ omezení ] | smallint [ omezení ] | desetinné číslo (přesnost, desetinná místa) [ omezení ] | plovoucí (přesnost) [ omezení ] [( , sloupec char (délka) [ omezení ] | varchar (délka) [ omezení ] | datum [ omezení ] | čas [ omezení ] | int [ omezení ] | smallint [ omezení ] | dec (přesnost, desetinná místa) [ omezení ] | float (přesnost) [ omezení ] )]) ​​​​;

    tajné jméno sql

    Na počátku 70. let 20. století ibm začala uvádět do praxe model relační databáze navržený Dr. Coddem. Donald Chamberlin a skupina dalších v oddělení pokročilého výzkumu vytvořili prototyp jazyka nazvaný strukturovaný anglický dotazovací jazyk nebo jednoduše pokračování. Později byl rozšířen a zdokonalen. Nová varianta navržená společností ibm se nazývá sequel/2. Byl použit jako programovací rozhraní (api) pro návrh prvního relačního databázového systému ibm, system/r. Z právních důvodů se společnost ibm rozhodla změnit název z sequel/2 na sql (strukturovaný dotazovací jazyk). Tato zkratka se často vyslovuje jako „si-ku-el“.

    Mezi prototypy raného pokračování a standardem sql, který nyní uznávají různé organizace, existují značné rozdíly. Jim Melton, který připravil standard sql-92, dokonce uvedl, že mnoho lidí se mýlí, když si myslí, že slovo „strukturovaný“ správně odráží specifika tohoto jazyka (jim melton a alan r. simon „pochopení nového sql: kompletní průvodce San Francisco: morgan kaufmann, 1993. isbn: 1-55860-245-3). Proto je ve skutečnosti sql jen jméno, posloupnost písmen s-q-l a nic víc.

    Dobrý špatný

    databáze, které by mohly fungovat v mnoha počítačových systémech různého druhu. S jeho pomocí mohou uživatelé skutečně manipulovat s daty bez ohledu na to, zda pracují na osobním počítači, síťové pracovní stanici nebo sálovém počítači.

    Jedním z jazyků, který vznikl jako výsledek vývoje relačního datového modelu, je jazyk SQL (Structured Query Language), který je v současné době velmi rozšířen a stal se standardní jazyk relační databáze. Standard SQL byl vydán Americkým národním standardizačním institutem (ANSI) v roce 1986 a v roce 1987 jej Mezinárodní organizace pro standardy (ISO) přijala jako mezinárodní jazyk. Současný standard SQL je znám jako SQL/92.

    S použitím jakýchkoli norem jsou spojeny nejen četné a zcela zřejmé výhody, ale také určité nevýhody. Především normy směrují vývoj příslušného odvětví určitým směrem; v případě jazyka SQL vede existence silných základních principů v konečném důsledku ke kompatibilitě jeho různých implementací a přispívá jak ke zvýšené přenositelnosti softwaru a databází obecně, tak k všestrannosti práce databázových administrátorů. Na druhou stranu normy omezují flexibilitu a funkčnost konkrétní implementace. Pod jazyková implementace SQL označuje softwarový produkt SQL příslušného výrobce. Pro rozšíření funkčnosti přidává mnoho vývojářů založených na standardech standardní jazyk SQL různá rozšíření. Je třeba poznamenat, že normy vyžadují jakékoli dokončené jazykové implementace SQL má určité vlastnosti a široce odráží hlavní trendy, které vedou nejen k interoperabilitě mezi všemi konkurenčními implementacemi, ale také přispívají k hodnotě SQL programátorů a uživatelů. relační databáze na dnešním softwarovém trhu.

    Vše konkrétní jazykové implementace poněkud odlišné od sebe navzájem. Je v nejlepším zájmu výrobců zajistit, aby jejich implementace splňovaly aktuální standardy ANSI pro přenositelnost a uživatelský komfort. Každá implementace SQL však obsahuje vylepšení, aby vyhovovala potřebám konkrétního databázového serveru. Tato vylepšení nebo rozšíření jazyka SQL jsou další příkazy a volby, které jsou dodatky ke standardnímu balíčku a jsou dostupné v této konkrétní implementaci.

    V současné době je jazyk SQL podporován mnoha desítkami DBMS různých typů, navržených pro širokou škálu výpočetních platforem, od osobních počítačů po sálové počítače.

    Všechny jazyky pro manipulaci s daty byly vytvořeny pro mnoho DBMS před příchodem relační databáze, byly zaměřeny na operace s daty reprezentovanými jako záznamy logických souborů. To samozřejmě vyžadovalo, aby uživatel měl podrobné znalosti o organizaci ukládání dat a seriózní snahu specifikovat, jaká data jsou potřeba, kde se nacházejí a jak je získat.

    Uvažovaný jazyk SQL je zaměřen na operace s daty prezentovanými ve formě logicky propojených sad relačních tabulek. Nejdůležitější vlastností jeho struktur je zaměření na konečný výsledek zpracování dat, nikoli na postup při tomto zpracování. Jazyk SQL sám určuje, kde se data nacházejí, indexuje a dokonce i to, jaká nejúčinnější sekvence operací by měla být použita k získání výsledku, a proto není nutné tyto podrobnosti uvádět v databázovém dotazu.

    Úvod do technologie klient-server

    V souvislosti s expanzí trhu informačních služeb začali výrobci softwaru vyrábět stále inteligentnější, a tedy rozsáhlé softwarové systémy. Mnoho organizací a jednotlivých uživatelů často nebylo schopno hostovat zakoupené produkty na svých vlastních počítačích. Pro výměnu informací a jejich šíření byly vytvořeny počítačové sítě a na speciální souborové servery se začaly instalovat zobecňující programy a data.

    Díky DBMS pracujícím se souborovými servery má mnoho uživatelů přístup ke stejným databázím. Vývoj různých automatizovaných systémů pro řízení organizací se zjednodušuje. S tímto přístupem se však veškeré zpracování požadavků z programů nebo z terminálů uživatelských počítačů provádí na nich, takže pro realizaci i jednoduchého požadavku je nutné číst ze souborového serveru nebo na něj zapisovat celé soubory, a to vede ke konfliktním situacím a přetížení sítě. K odstranění těchto nedostatků bylo navrženo technologie klient-server, ale zároveň byl potřeba jediný jazyk pro komunikaci se serverem - volba padla na SQL.

    Technologie klient-server znamená takový způsob interakce mezi softwarovými komponentami, při kterém tvoří jeden systém. Jak název napovídá, existuje určitý klientský proces, který vyžaduje určité zdroje proces serveru která tyto zdroje poskytuje. Není nutné, aby byli na stejném počítači. Je běžné umístit server na jeden uzel v místní síti a klienty na jiné uzly.

    V kontextu databáze spravuje klient uživatelské rozhraní a aplikační logiku a funguje jako pracovní stanice, která spouští databázové aplikace. Klient obdrží požadavek od uživatele, zkontroluje syntaxi a vygeneruje dotaz do databáze v SQL nebo jiném databázovém jazyce, který odpovídá aplikační logice. Poté odešle zprávu na server, čeká na odpověď a naformátuje přijatá data pro prezentaci uživateli. Server přijímá a zpracovává dotazy do databáze a poté posílá výsledky zpět klientovi. Takové zpracování zahrnuje kontrolu přihlašovacích údajů klienta, vynucování požadavků na integritu a dotazování a aktualizaci dat. Podporuje také řízení souběžnosti a obnovy.

    Architektura klient-server má řadu výhod.

    Kurzy SQL „pro panáky“ jsou dnes stále populárnější. To lze vysvětlit velmi jednoduše, protože v moderním světě můžete stále častěji vidět takzvané „dynamické“ webové služby. Vyznačují se poměrně flexibilním shellem a jsou založeny na Všichni začínající programátoři, kteří se rozhodnou věnovat weby, se nejprve zapíší do kurzů SQL "pro figuríny".

    Proč studovat tento jazyk?

    Za prvé, SQL se vyučuje, aby bylo možné dále vytvářet širokou škálu aplikací pro jeden z nejpopulárnějších blogových motorů současnosti - WordPress. Po absolvování pár jednoduchých lekcí již budete umět vytvářet dotazy libovolné složitosti, což jen potvrzuje jednoduchost tohoto jazyka.

    Co je SQL?

    Nebo byl vytvořen strukturovaný dotazovací jazyk s jediným účelem: určit, že k nim bude poskytnut přístup a zpracuje je v poměrně krátkých časových obdobích. Pokud znáte hodnotu SQL, pak vám bude jasné, že tento server patří mezi tzv. „neprocedurální“ jazyky. To znamená, že jeho schopnosti zahrnují pouze popis jakýchkoli součástí nebo výsledků, které chcete na webu v budoucnu vidět. Kdy ale neuvádí, jaké výsledky přesně dosáhnou. Každý nový požadavek v tomto jazyce je jakoby dodatečným „doplňkem“. Dotazy budou provedeny v pořadí, v jakém jsou zadány do databáze.

    Jaké postupy lze pomocí tohoto jazyka provádět?

    Navzdory své jednoduchosti vám SQL databáze umožňuje vytvářet velké množství nejrůznějších dotazů. Co tedy můžete dělat, když se naučíte tento důležitý programovací jazyk?

    • vytvářet různé tabulky;
    • přijímat, ukládat a upravovat přijatá data;
    • změnit strukturu tabulek podle svého uvážení;
    • kombinovat přijaté informace do jednotlivých bloků;
    • vypočítat přijatá data;
    • zajistit úplnou ochranu informací.

    Jaké příkazy jsou v tomto jazyce nejoblíbenější?

    Pokud se rozhodnete navštěvovat kurzy SQL "for dummies", pak získáte podrobné informace o příkazech, které se používají při vytváření dotazů s ním. Nejběžnější jsou dnes:

    1. DDL je příkaz, který definuje data. Používá se k vytváření, úpravě a mazání široké škály objektů v databázi.
    2. DCL je příkaz, který spravuje data. Slouží k poskytování přístupu k informacím v databázi různým uživatelům a také k používání tabulek nebo pohledů.
    3. TCL je tým, který řídí různé transakce. Jeho hlavním účelem je určit průběh transakce.
    4. DML - manipuluje s přijatými daty. Jeho úkolem je umožnit uživateli přesouvat různé informace z databáze nebo je tam zadávat.

    Typy oprávnění, která existují na tomto serveru

    Privilegia jsou ty akce, které může konkrétní uživatel provádět v souladu se svým statusem. Nejminimálnější je samozřejmě běžné přihlášení. Oprávnění se samozřejmě mohou časem změnit. Staré budou odstraněny a přidány nové. Dnes všichni, kdo absolvují kurzy SQL Server „pro figuríny“, vědí, že existuje několik typů povolených akcí:

    1. Typ objektu - uživatel smí provádět jakýkoli příkaz pouze ve vztahu ke konkrétnímu objektu, který je v databázi. Zároveň se oprávnění pro různé objekty liší. Jsou také vázány nejen na konkrétního uživatele, ale také na tabulky. Pokud někdo pomocí svých schopností vytvořil tabulku, je považován za jejího vlastníka. Proto je v jeho právu přidělit nová oprávnění dalším uživatelům související s informacemi v něm obsaženými.
    2. Typ systému je tzv. datová autorská práva. Uživatelé, kteří obdrželi taková oprávnění, mohou v databázi vytvářet různé objekty.

    Historie tvorby SQL

    Tento jazyk vytvořila IBM Research Lab v roce 1970. V té době byl jeho název poněkud jiný (SEQUEL), ale po pár letech používání byl pozměněn, mírně zredukován. Navzdory tomu i dnes mnoho známých světových odborníků v oblasti programování vyslovuje název po staru. SQL vznikl s jediným cílem vymyslet jazyk, který by byl tak jednoduchý, že by se jej bez problémů naučili i běžní uživatelé internetu. Zajímavostí je, že v té době nebyl SQL jediným takovým jazykem. V Kalifornii vyvinula další skupina specialistů podobný Ingres, ale nikdy se nerozšířil. Před rokem 1980 existovalo několik variant SQL, které se od sebe jen mírně lišily. Aby se předešlo zmatkům, byla v roce 1983 vytvořena standardní verze, která je populární dodnes. Kurzy SQL „pro blbce“ vám umožní dozvědět se o službě mnohem více a plně jí porozumět za pár týdnů.

    Klientské programy

    protokol TFTP

    TFTP- i protokol FTP, ale přes protokol UDP (tedy protokol bez garantovaného doručení). Lze použít v místní síti, kde je důležitější přenosová rychlost. V praxi málo používaný.

    FTP- Program se spouští z příkazového řádku.

    Windows Commander- může pracovat jako FTP klient. Umožňuje pracovat se vzdálenými adresáři stejným způsobem jako s místními adresáři.

    NetVampire- Specializovaný FTP klient, který vám umožní stahovat velké soubory a stahovat přes špatné kanály.

    SQL (Structured Query Language) je strukturovaný dotazovací jazyk pro relační databáze. Pomocí tohoto jazyka lze formulovat výrazy (dotazy), které extrahují požadovaná data, upravují je, vytvářejí tabulky a mění jejich struktury, určují přístupová práva k datům a mnoho dalšího.

    Dotazy jsou prováděny systémem správy databází (DBMS). Pokud nejste specialistou na vývoj a správu databází, můžete být jejich uživatelem, který prohlíží a/nebo mění data v existujících tabulkách. V mnoha případech jsou tyto a další databázové operace prováděny pomocí speciálních aplikací, které poskytují uživatelsky přívětivé rozhraní. Aplikace jsou obvykle psány ve speciálních programovacích jazycích (C, Pascal, Visual Basic atd.) a nejčastěji jsou vytvářeny pomocí integrovaných vývojových prostředí, jako je Delphi, C++ Builder atd. Můžete však přistupovat k databázi bez nich - pouze pomocí SQL. Je třeba také poznamenat, že specializované aplikace obvykle při přístupu k databázi používají fragmenty kódu SQL.

    SQL je tedy široce přijímaný standardní jazyk pro práci s relačními databázemi. Syntaxe tohoto jazyka je natolik jednoduchá, že ji mohou používat i běžní uživatelé, nejen programátoři. V dnešní době by měl typický uživatel počítače ovládat alespoň textový editor (např. Microsoft Word) a tabulkový procesor (např. Microsoft Excel). Není to špatné, pokud také umí používat databáze. Existuje mnoho různých DBMS, ale univerzální nástroj pro práci s databázemi existuje pouze jeden – SQL. Znalost jazyka SQL, alespoň jeho základů, a schopnost s ním vyhledávat a analyzovat data je základní součástí počítačové gramotnosti i pro běžné uživatele.

    První vývoj systémů pro správu relačních databází (relační DBMS) byl uskutečněn v IBM na počátku 70. let 20. století. Zároveň byl vytvořen datový jazyk, který byl navržen pro práci v těchto systémech. Experimentální verze tohoto jazyka se jmenovala SEQUEL – z angličtiny. Structured English QUEry Language (strukturovaný anglický dotazovací jazyk). Oficiální verze se však jmenovala kratší – SQL (Structured Query Language). Přesněji řečeno, SQL je podjazyk dat, protože DBMS obsahuje další jazykové prostředky.

    V roce 1981 IBM uvolňuje SQL/DS relační DBMS. Do této doby společnost Relation Software Inc. (dnes je to Oracle Corporation) již vydala svůj relační DBMS. Tyto produkty se okamžitě staly standardem pro systémy správy databází. Mezi tyto produkty patřil i SQL, který se stal de facto standardem pro datové podjazyky. Výrobci jiných DBMS vydali své vlastní verze SQL. Měly nejen základní vlastnosti produktů IBM. Aby dodavatelé získali nějakou výhodu pro „své“ DBMS, zavedli některá rozšíření SQL. Zároveň byly zahájeny práce na vytvoření obecně uznávaného standardu SQL.

    V roce 1986 vydal American National Standards Institute (ANSI) oficiální standard SQL-86, který byl v roce 1989 aktualizován na SQL-89. V roce 1992 byl tento standard pojmenován SQL-92 (ISO/IEC 9075:1992). Nejnovější verze standardu SQL je SQL:2003 (ISO/IEC 9075X:2003).

    Jakákoli implementace SQL v konkrétním DBMS se poněkud liší od standardu deklarovaného výrobcem. Takže mnoho DBMS (například Microsoft Access 2003, PostgreSQL 7.3) plně nepodporuje SQL-92, ale pouze s určitou úrovní souladu. Navíc podporují i ​​prvky, které standard neobsahuje. Vývojáři DBMS se však snaží zajistit, aby nové verze jejich produktů co nejvíce odpovídaly standardu SQL.

    Pozornost. Tento kurz popisuje prvky SQL2003, z nichž ne všechny jsou podporovány stávajícími DBMS. Než je uvedete do praxe, měli byste se ujistit, že budou fungovat ve vašem DBMS. To lze nalézt v technické dokumentaci. Většina popsaných prvků odpovídá dřívějším verzím SQL, zejména rozšířenému SQL-92.

    SQL byl koncipován jako jednoduchý dotazovací jazyk pro relační databázi, blízký přirozenému (přesněji angličtině) jazyku. Formální blízkost přirozenému jazyku měla z SQL učinit nástroj pro široké použití běžnými databázovými uživateli, nejen programátory. Původně SQL neobsahoval žádnou z řídicích struktur, které se vyskytují v běžných programovacích jazycích. Požadavky, jejichž syntaxe je poměrně jednoduchá, byly zadávány přímo z konzole jeden po druhém a prováděny ve stejném pořadí. SQL se však nikdy nestal nástrojem pro bankéře, prodejce letenek a letenek, ekonomy a další zaměstnance různých firem využívajících informace uložené v databázích. Jednoduché SQL se pro ně ukázalo jako příliš komplikované a nepohodlné, a to i přes svou blízkost k přirozenému jazyku otázek.

    V praxi se s databází obvykle pracuje prostřednictvím aplikací napsaných programátory v procedurálních jazycích, jako je C, Visual Basic, Pascal, Java atd. Aplikace jsou často vytvářeny ve speciálních vizuálních vývojových prostředích, jako jsou Delphi, Microsoft Access, Visual dBase atd. Vývojář aplikace přitom prakticky nemusí psát programové kódy, protože to za něj dělá vývojový systém. Každopádně práce s programovým kódem je minimální. Tyto aplikace mají uživatelsky přívětivé grafické rozhraní, které nenutí uživatele přímo zadávat SQL dotazy. Místo toho to dělá aplikace. Aplikace však může nebo nemusí používat SQL pro přístup k databázi. SQL není jediným, i když velmi účinným prostředkem pro získávání, přidávání a změnu dat, a pokud je možné jej použít v aplikaci, pak by to mělo být provedeno.

    Relační databáze mohou existovat a existují nezávisle na aplikacích, které poskytují uživatelské rozhraní. Pokud z nějakého důvodu takové rozhraní neexistuje, lze k databázi přistupovat pomocí SQL, pomocí konzole nebo nějaké aplikace, pomocí které se lze k databázi připojit, zadat a odeslat SQL dotaz (například Borland SQL Explorer ).

    Jazyk SQL je považován za deklarativní (popisný) jazyk, na rozdíl od jazyků, ve kterých jsou programy napsány. To znamená, že příkazy SQL popisují, co je třeba udělat, nikoli jak.

    Například pro výběr informací o jménech a pozicích zaměstnanců oddělení 102 z tabulky zaměstnanců stačí provést následující dotaz:

    SELECT Příjmení, Pozice FROM Zaměstnanci WHERE Oddělení=102;

    V ruštině tento výraz zní takto:

    VYBRAT Příjmení, pozice Z Zaměstnanci POKUD oddělení = 102;

    Chcete-li změnit hodnotu " Ivanov "zapnuto" Petrov " sloupec Příjmení , stačí spustit následující dotaz:

    AKTUALIZACE Zaměstnanci SET Příjmení="Petrov" WHERE Příjmení="Ivanov";

    V ruštině tento výraz vypadá takto:

    AKTUALIZACE Zaměstnanci NASTAVENÍM Příjmení ROVNAT SE" Petrov "KDE Příjmení = "Ivanov" ;

    Nemusíte podrobně popisovat akce, které musí DBMS provést, aby z tabulky vybral data uvedená v dotazu. Jednoduše popíšete, co chcete dostávat. V důsledku provedení dotazu DBMS vrátí tabulku obsahující data, která jste požadovali. Pokud v databázi nejsou žádná data odpovídající dotazu, bude vrácena prázdná tabulka.

    Nejnovější verze SQL však podporují příkazy řízení výpočtu, které jsou nativní pro jazyky procedurálního řízení (příkazy podmíněného skoku a smyčky). SQL proto nyní není čistě deklarativní jazyk.

    Kromě načítání, přidávání, upravování a mazání dat z tabulek vám SQL umožňuje provádět všechny potřebné akce k vytváření, úpravě a zabezpečení databází. Všechny tyto funkce jsou rozděleny mezi tři komponenty SQL:

    · DML (Jazyk pro manipulaci s daty - jazyk pro manipulaci s daty ) je navržena tak, aby podporovala databázi: select ( VYBRAT ), doplňky ( VLOŽIT ), Změny ( AKTUALIZACE ) a odstranění ( VYMAZAT ) údaje z tabulek. Tyto operátory (příkazy) mohou obsahovat výrazy, včetně těch, které se počítají, a také poddotazy – dotazy obsažené v jiném dotazu. Obecně může být výraz dotazu tak složitý, že nemůžete okamžitě říct, co dělá. Složitý dotaz však lze mentálně rozdělit na části, které se snáze analyzují. Podobně jsou složité dotazy sestaveny z relativně snadno srozumitelných výrazů (poddotazů).

    · DDL (Jazyk definice dat - jazyk pro definici dat ) je určen k vytváření, úpravě a mazání tabulek a celé databáze. Příklady příkazů zahrnutých v DDL jsou VYTVOŘIT TABULKU (vytvořit tabulku)," VYTVOŘIT ZOBRAZENÍ (vytvořit pohled) VYTVOŘTE SHEMA (vytvořit schéma) ALTER TABULKA (přebalovací stůl), POKLES (odstranit) atd.

    · DCL (Jazyk ovládání dat - jazyk pro správu dat ) je navržen tak, aby chránil databázi před různými druhy poškození. DBMS poskytuje určitou ochranu dat automaticky. V některých případech by však měla být zvážena další opatření poskytovaná společností DCL.