Jak psát SQL dotazy - podrobné příklady. Výběr materiálů pro studium databází a SQL

Dotazy jsou psány bez uvozovek, protože MySQL, MS SQL A PostGree jsou různé.

SQL dotaz: získání zadaných (nezbytných) polí z tabulky

SELECT id, country_title, count_people FROM table_name

Získáme seznam záznamů: VŠECHNY země a jejich populace. Názvy povinných polí jsou označeny oddělenými čárkami.

SELECT * FROM název_tabulky

* označuje všechna pole. To znamená, že budou představení ÚPLNĚ VŠECHNO datová pole.

SQL dotaz: výstup záznamů z tabulky s výjimkou duplikátů

SELECT DISTINCT country_title FROM table_name

Získáme seznam záznamů: země, kde se nacházejí naši uživatelé. Může být mnoho uživatelů z jedné země. V tomto případě je to váš požadavek.

SQL dotaz: výstup záznamů z tabulky na základě dané podmínky

SELECT id, country_title, city_title FROM table_name WHERE count_people>100000000

Získáme seznam rekordů: země, kde je počet lidí vyšší než 100 000 000.

SQL dotaz: zobrazení záznamů z tabulky s řazením

SELECT id, název_města FROM název_tabulky ORDER BY název_města

Získáme seznam záznamů: města v abecedním pořadí. Na začátku A, na konci Z.

SELECT id, název_města FROM název_tabulky ORDER BY název_města DESC

Získáme seznam záznamů: města obráceně ( DESC) v pořádku. Na začátku já, na konci A.

SQL dotaz: počítání počtu záznamů

SELECT COUNT(*) FROM název_tabulky

Dostaneme počet (počet) záznamů v tabulce. V tomto případě NEEXISTUJE ŽÁDNÝ seznam záznamů.

SQL dotaz: výstup požadovaného rozsahu záznamů

SELECT * FROM název_tabulky LIMIT 2, 3

Z tabulky získáme 2 (druhý) a 3 (třetí) záznamy. Dotaz je užitečný při vytváření navigace na WEB stránkách.

SQL dotazy s podmínkami

Zobrazení záznamů z tabulky na základě dané podmínky pomocí logických operátorů.

SQL dotaz: konstrukce AND

SELECT id, city_title FROM table_name WHERE country="Russia" AND oil=1

Dostáváme seznam rekordů: města z Ruska A mít přístup k ropě. Kdy použít operátora A, pak se obě podmínky musí shodovat.

SQL dotaz: konstrukce NEBO

SELECT id, city_title FROM table_name WHERE country="Russia" OR country="USA"

Získáme seznam záznamů: všechna města z Ruska NEBO USA. Kdy použít operátora NEBO, pak musí odpovídat ALESPOŇ jedna podmínka.

SQL dotaz: AND NOT konstrukce

SELECT id, user_login FROM table_name WHERE country="Russia" AND NOT count_comments<7

Získáme seznam záznamů: všichni uživatelé z Ruska A kdo udělal NE MÉNĚ 7 komentářů.

SQL dotaz: IN konstrukce (B)

SELECT id, user_login FROM table_name WHERE country IN ("Rusko", "Bulharsko", "Čína")

Získáme seznam záznamů: všichni uživatelé, kteří žijí v ( V) (Rusko nebo Bulharsko nebo Čína)

SQL dotaz: NOT IN construction

SELECT id, user_login FROM table_name WHERE country NOT IN ("Rusko","Čína")

Získáme seznam záznamů: všichni uživatelé, kteří nežijí v ( NENÍ IN) (Rusko nebo Čína).

SQL dotaz: konstrukce IS NULL (prázdné nebo NE prázdné hodnoty)

SELECT id, user_login FROM table_name WHERE status IS NULL

Získáme seznam záznamů: všichni uživatelé, kde není definován stav. NULL je samostatný problém, a proto se kontroluje samostatně.

SELECT id, user_login FROM table_name WHERE state IS NOT NULL

Získáme seznam záznamů: všichni uživatelé, kde je definován stav (NOT NULL).

SQL dotaz: konstrukce LIKE

SELECT id, user_login FROM table_name WHERE příjmení LIKE "Ivan%"

Získáme seznam záznamů: uživatelé, jejichž příjmení začíná kombinací „Ivan“. Znak % znamená JAKÝKOLI počet LIBOVOLNÝCH znaků. Chcete-li najít znak %, musíte použít escape „Ivan\%“.

SQL dotaz: BETWEEN konstrukce

SELECT id, user_login FROM table_name WHERE plat MEZI 25000 A 50000

Získáme seznam záznamů: uživatelé, kteří dostávají mzdu od 25 000 do 50 000 včetně.

Logických operátorů je HODNĚ, proto si podrobně prostudujte dokumentaci k SQL serveru.

Složité SQL dotazy

SQL dotaz: kombinace více dotazů

(SELECT id, user_login FROM table_name1) UNION (SELECT id, user_login FROM table_name2)

Získáme seznam záznamů: uživatelé, kteří jsou registrováni v systému, a také uživatelé, kteří jsou registrováni samostatně na fóru. Operátor UNION může kombinovat více dotazů. UNION se chová jako SELECT DISTINCT, to znamená, že zahodí duplicitní hodnoty. Chcete-li získat absolutně všechny záznamy, musíte použít operátor UNION ALL.

SQL dotaz: počítání hodnot polí MAX, MIN, SUM, AVG, COUNT

Zobrazení jedné, maximální hodnoty počítadla v tabulce:

SELECT MAX(počítadlo) FROM název_tabulky

Výstup jedné, minimální hodnoty čítače v tabulce:

SELECT MIN(počítadlo) FROM název_tabulky

Zobrazení součtu všech hodnot čítače v tabulce:

SELECT SUM(počítadlo) FROM název_tabulky

Zobrazení průměrné hodnoty počítadla v tabulce:

SELECT AVG(počítadlo) FROM název_tabulky

Zobrazení počtu počítadel v tabulce:

SELECT COUNT(počítadlo) FROM název_tabulky

Zobrazení počtu metrů v dílně č. 1 v tabulce:

SELECT COUNT(counter) FROM table_name WHERE office="Workshop č. 1"

Toto jsou nejoblíbenější týmy. Tam, kde je to možné, je doporučeno používat pro výpočty SQL dotazy tohoto druhu, protože žádné programovací prostředí se nemůže srovnávat v rychlosti zpracování dat než samotný SQL server při zpracování vlastních dat.

SQL dotaz: seskupování záznamů

SELECT kontinent, SUM(country_area) FROM země GROUP BY kontinentu

Získáme seznam záznamů: s názvem kontinentu a součtem oblastí všech jejich zemí. To znamená, že pokud existuje adresář zemí, kde má každá země zaznamenanou svou oblast, pak pomocí konstrukce GROUP BY můžete zjistit velikost každého kontinentu (na základě seskupení podle kontinentů).

SQL dotaz: pomocí více tabulek přes alias

SELECT o.order_no, o.amount_paid, c.company FROM orders AS o, customer AS with WHERE o.custno=c.custno AND c.city="Tyumen"

Dostáváme seznam záznamů: objednávky od zákazníků, kteří žijí pouze v Ťumenu.

Ve skutečnosti u správně navržené databáze tohoto typu je požadavek nejčastější, proto byl do MySQL zaveden speciální operátor, který pracuje mnohonásobně rychleji než výše psaný kód.

SELECT o.order_no, o.amount_paid, z.company FROM orders AS o LEFT JOIN customer AS z ON (z.custno=o.custno)

Vnořené poddotazy

SELECT * FROM název_tabulky WHERE plat=(SELECT MAX(plat) FROM zaměstnance)

Získáme jeden záznam: informace o uživateli s maximální mzdou.

Pozor! Vnořené poddotazy jsou jednou z největších překážek na serverech SQL. Spolu se svou flexibilitou a výkonem také výrazně zvyšují zátěž serveru. Což vede ke katastrofálnímu zpomalení pro ostatní uživatele. Případy rekurzivních volání ve vnořených dotazech jsou velmi časté. Proto důrazně doporučuji NEPOUŽÍVAT vnořené dotazy, ale rozdělit je na menší. Nebo použijte kombinaci LEFT JOIN popsanou výše. Tento typ požadavku je navíc zvýšeným zdrojem narušení bezpečnosti. Pokud se rozhodnete použít vnořené poddotazy, musíte je navrhnout velmi pečlivě a provést počáteční spuštění na kopiích databází (testovací databáze).

SQL dotazy mění data

SQL dotaz: INSERT

Instrukce VLOŽIT umožňují vkládat záznamy do tabulky. Jednoduše řečeno, vytvořte řádek s daty v tabulce.

Možnost #1. Často používaný návod je:

INSERT INTO table_name (id, user_login) VALUES (1, "ivanov"), (2, "petrov")

Ke stolu" název_tabulky"Najednou budou vloženi 2 (dva) uživatelé.

Možnost #2. Je pohodlnější použít styl:

INSERT název_tabulky SET id=1, user_login="ivanov"; INSERT název_tabulky SET id=2, user_login="petrov";

To má své výhody i nevýhody.

Hlavní nevýhody:

  • Mnoho malých SQL dotazů se bude provádět o něco pomaleji než jeden velký SQL dotaz, ale ostatní dotazy budou řadit do fronty na službu. To znamená, že pokud dokončení velkého SQL dotazu trvá 30 minut, pak po celou tuto dobu budou zbývající dotazy kouřit bambus a čekat, až na ně přijde řada.
  • Požadavek se ukazuje být masivnější než předchozí verze.

Hlavní výhody:

  • Během malých SQL dotazů nejsou ostatní SQL dotazy blokovány.
  • Snadnost čtení.
  • Flexibilita. V této možnosti se nemusíte řídit strukturou, ale přidávat pouze nezbytná data.
  • Při vytváření archivů tímto způsobem můžete snadno zkopírovat jeden řádek a spustit jej přes příkazový řádek (konzole), čímž neobnovíte celý ARCHIV.
  • Styl psaní je podobný příkazu UPDATE, což usnadňuje zapamatování.

SQL dotaz: AKTUALIZACE

AKTUALIZACE SET table_name user_login="ivanov", user_surname="Ivanov" WHERE id=1

V tabulce" název_tabulky"v záznamu s číslem id=1 se hodnoty polí user_login a user_surname změní na zadané hodnoty.

SQL dotaz: DELETE

DELETE FROM název_tabulky WHERE id=3

V tabulce název_tabulky bude smazán záznam s ID číslem 3.

  1. Pro zajištění kompatibility s různými programovacími jazyky, jako jsou Delphi, Perl, Python a Ruby, se doporučuje psát všechny názvy polí malými písmeny a v případě potřeby je oddělit vynucenou mezerou „_“.
  2. Kvůli čitelnosti pište příkazy SQL VELKÝMI písmeny. Vždy si pamatujte, že kód po vás mohou přečíst jiní lidé a s největší pravděpodobností vy sami po N množství času.
  3. Pole pojmenujte nejprve podstatným jménem a poté akcí. Například: city_status, user_login, user_name.
  4. Snažte se vyhnout rezervovaným slovům v různých jazycích, která mohou způsobit problémy v SQL, PHP nebo Perl, jako je (název, počet, odkaz). Například: odkaz lze použít v MS SQL, ale je rezervován v MySQL.

Tento materiál je krátkou referencí pro každodenní práci a nepředstírá, že je super mega autoritativní zdroj, který je původním zdrojem SQL dotazů konkrétní databáze.

Předkládám Vaší pozornosti volný překlad článku SQL pro začátečníky

Stále více moderních webových aplikací interaguje s databázemi, obvykle pomocí jazyka SQL. Naštěstí pro nás je tento jazyk docela snadné se naučit. V tomto článku se začneme učit základy SQL dotazů a jak interagují s databází. MySQL.

co potřebuješ

SQL (Structured Query Language) je jazyk navržený pro interakci se systémy pro správu relačních databází (DBMS), jako je např. MySQL, Oracle, Sqlite a další. Chcete-li spustit dotazy SQL v tomto článku, předpokládám, že ano MySQL. Také doporučuji používat phpMyAdmin jako nástroj pro vizuální zobrazení MySQL.

Následující aplikace vám usnadní instalaci MySQL A phpMyAdmin do vašeho počítače:

  • WAMP pro Windows
  • MAMP pro Mac

Začněme provádět dotazy na příkazovém řádku. WAMP již obsahuje v konzoli MySQL. Pro MAMP, možná si budete muset přečíst toto.

CREATE DATABASE: Vytvořte databázi

Naše úplně první žádost. Vytvoříme si databázi, se kterou budeme pracovat.

Nejprve otevřete konzolu MySQL a přihlaste se. Pro WAMP Ve výchozím nastavení se používá prázdné heslo. Pro MAMP Heslo musí být "root".

Po přihlášení zadejte tento požadavek a klikněte Vstupte:

CREATE DATABASE my_first_db;

Všimněte si, že středník (;) je přidán na konec dotazu, stejně jako na konec řádku v kódu.

Také klíčová slova VYTVOŘIT DATABÁZI nerozlišují malá a velká písmena, stejně jako všechna klíčová slova v SQL. Budeme je ale psát velkými písmeny, abychom zlepšili čitelnost.

Poznámka: znaková sada a pořadí řazení

Pokud chcete nastavit výchozí znakovou sadu a pořadí řazení, použijte dotaz jako je tento:

CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Seznam podporovaných znakových sad a řazení naleznete v MySQL.

ZOBRAZIT DATABÁZE: Seznam všech databází

Tento dotaz slouží k zobrazení všech databází.

DROP DATABASE: Zrušte databázi

Pomocí tohoto dotazu můžete smazat existující databázi.

Buďte opatrní s tímto požadavkem, protože negeneruje žádná varování. Pokud máte v databázi tabulky a data, dotaz je všechny během okamžiku smaže.

Z technického hlediska se nejedná o požadavek. Toto je "operátor" a nevyžaduje středník na konci.

Hlásí se MySQLže je potřeba vybrat výchozí databázi a pracovat s ní až do konce relace. Nyní jsme připraveni vytvořit tabulky a vše ostatní v této databázi.

Co je databázová tabulka?

Tabulku v databázi si můžete představit jako běžnou tabulku nebo jako soubor csv, který obsahuje strukturovaná data.

Stejně jako v tomto příkladu má tabulka názvy řádků a sloupce dat. Pomocí SQL dotazů můžeme vytvořit tuto tabulku. Můžeme také přidávat, číst, měnit a mazat data.

CREATE TABLE: Vytvořte tabulku

Pomocí tohoto dotazu můžeme vytvořit tabulku v databázi. Bohužel dokumentace pro MySQL není příliš přátelský k novým uživatelům. Struktura tohoto dotazu může být velmi složitá, ale začneme jednoduše.

Následující dotaz vytvoří tabulku se dvěma sloupci.

CREATE TABLE uživatelé (uživatelské jméno VARCHAR(20), datum vytvoření DATE);

Všimněte si, že dotaz můžeme napsat na více řádků a použít Tab pro odsazení.

První řádek je jednoduchý. Vytvoříme tabulku s názvem uživatelů. Dále jsou sloupce tabulky uvedeny v závorkách oddělené čárkami. Za každým názvem sloupce následuje datový typ, např. VARCHAR nebo DATUM.

VARCHAR(20) znamená, že sloupec je typu řetězce a nemůže mít více než 20 znaků. DATUM- datový typ určený pro ukládání dat ve formátu: "RRRR-MM-DD".

Primární klíč

Než spustíme tento dotaz, musíme vložit sloupec user_id, což bude primární klíč (PRIMARY KEY). Aniž byste zacházeli do přílišných podrobností, můžete si primární klíč představit jako způsob, jak identifikovat každý řádek dat v tabulce.

Požadavek vypadá takto:

CREATE TABLE uživatelé (id_uživatele INT AUTO_INCREMENT PRIMARY KEY, uživatelské jméno VARCHAR(20), datum vytvoření DATE);

INT- 32bitový typ celého čísla (numerický). AUTO_INCREMENT automaticky vytvoří nové identifikační číslo pokaždé, když je přidán datový řádek. Není to nutné, ale je to pohodlnější.

Tento sloupec nemusí být celé číslo, ačkoli se jedná o nejběžnější datový typ. Sloupec primárního klíče je volitelný, ale doporučuje se pro zlepšení výkonu a architektury databáze.

Spustíme dotaz:

ZOBRAZIT TABULKY: Seznam všech tabulek

Dotaz umožňuje získat seznam všech tabulek v aktuální databázi.

VYSVĚTLIT: Zobrazit strukturu tabulky

Tento dotaz použijte k zobrazení struktury existující tabulky.

Výsledek ukazuje pole (sloupce) a jejich vlastnosti.

DROP TABLE: Pusťte stůl

Jako DROP DATABÁZE, tento dotaz smaže tabulku a její obsah bez varování.

ALTER TABLE: Změna stolu

Takový dotaz může mít složitou strukturu, protože může provést více změn v tabulce. Podívejme se na jednoduché příklady.

Díky čitelnosti SQL, tento dotaz nepotřebuje vysvětlení.

Odstranění je stejně snadné. Požadavek používejte opatrně; data jsou bez varování vymazána.

Pojďme znovu přidat pole e-mail, budete to potřebovat později:

ALTER TABLE uživatelé PŘIDAT e-mail VARCHAR(100) AFTER uživatelské jméno;

Někdy může být nutné změnit vlastnosti sloupce, nemusíte jej odstraňovat a vytvářet znovu.

Tento požadavek přejmenuje pole uživatelské jméno PROTI uživatelské_jméno a změní jeho typ z VARCHAR(20) na VARCHAR(30). Tyto změny nemají vliv na údaje v tabulce.

INSERT: Přidání dat do tabulky

Přidejme záznamy do tabulky pomocí dotazů.

Jak můžete vidět, VALUES() obsahuje čárkami oddělený seznam hodnot. Hodnoty řetězce jsou uzavřeny v jednoduchých uvozovkách. Hodnoty musí být v pořadí určeném při vytváření tabulky.

Všimněte si, že první hodnota je NULL pro primární klíč, jehož pole jsme pojmenovali user_id. To vše proto, že pole je označeno jako AUTO_INCREMENT a id se generuje automaticky. První řádek dat bude mít id 1. Další přidaný řádek bude 2 atd.

Alternativní syntaxe

Zde je další syntaxe pro vkládání řádků.

Tentokrát jsme použili klíčové slovo SOUBOR místo HODNOTY. Všimněme si několika věcí:

  • Sloupec lze vynechat. Pole jsme například nepřiřadili žádnou hodnotu user_id, protože je označen jako AUTO_INCREMENT. Pokud k poli s typem nepřiřadíte hodnotu VARCHAR, pak bude standardně přebírat hodnotu prázdného řetězce (pokud nebyla při vytváření tabulky zadána jiná výchozí hodnota).
  • Ke každému sloupci lze přistupovat podle názvu. Pole tedy mohou být v libovolném pořadí, na rozdíl od předchozí syntaxe.

Alternativní syntaxe číslo 2

Zde je další příklad.

Stejně jako dříve lze k polím přistupovat podle názvu a mohou být v libovolném pořadí.

Tento dotaz použijte k získání ID posledního vloženého řádku.

TEĎ()

Je čas ukázat vám, jak funkce používat MySQL v žádostech.

Funkce TEĎ() vrátí aktuální datum. Použijte jej k automatickému přidání aktuálního data do pole s typem DATUM.

Upozorňujeme, že jsme obdrželi varování od MySQL, ale to není tak důležité. Důvodem je funkce TEĎ() ve skutečnosti vrací informace o čase.

Vytvořili jsme pole datum_vytvoření, který může obsahovat pouze datum, ale ne čas, takže data byla zkrácena. Místo TEĎ() mohli bychom použít AKTUÁLNÍ(), který vrátí pouze aktuální datum, ale v konečném důsledku by byl výsledek stejný.

SELECT: Načítání dat z tabulky

Je zřejmé, že data, která jsme napsali, jsou k ničemu, dokud je nebudeme moci přečíst. Na záchranu přichází žádost VYBRAT.

Nejjednodušší příklad použití požadavku VYBRAT pro čtení dat z tabulky:

Hvězdička (*) znamená, že chceme získat všechny sloupce tabulky. Pokud potřebujete získat pouze určité sloupce, použijte něco takového:

Častěji než ne, chceme načíst pouze určité řádky, ne všechny. Zjistíme například e-mailovou adresu uživatele nettuts.

Je to podobné jako podmínka IF. WHERE umožňuje nastavit podmínku v dotazu a získat požadovaný výsledek.

Podmínka rovnosti používá jednoduché znaménko (=) spíše než dvojité znaménko (==), které byste mohli použít při programování.

Můžete použít i další podmínky:

A A NEBO se používají ke kombinaci podmínek:

Upozorňujeme, že číselné hodnoty není nutné uzavírat do uvozovek.

V()

Používá se pro srovnání s více hodnotami.

JAKO

Umožňuje zadat vzor vyhledávání.

Znak procenta (%) se používá k určení vzoru.

doložka ORDER BY

Tuto podmínku použijte, pokud chcete, aby byl výsledek vrácen seřazený:

Výchozí pořadí je A.S.C.(vzestupně). Přidat DESC seřadit v obráceném pořadí.

LIMIT...POSUN...

Můžete omezit počet vrácených řádků.

LIMIT 2 vezme první dva řádky. LIMIT 1 OFFSET 2 zabere jeden řádek po prvních dvou. LIMIT 2, 1 znamená totéž, pouze první číslo je offset a druhé omezuje počet řádků.

AKTUALIZACE: Aktualizace dat v tabulce

Tento dotaz se používá k aktualizaci dat v tabulce.

Ve většině případů používá se společně s KDE za účelem aktualizace konkrétních řádků. Pokud je podmínka KDE není zadáno, změny se použijí na všechny řádky.

Chcete-li omezit řádky, které lze změnit, můžete použít OMEZIT.

DELETE: Odstranění dat z tabulky

Jako , tento dotaz se často používá ve spojení s podmínkou KDE.

ZKRÁTIT TABULKU

Chcete-li odebrat obsah z tabulky, použijte tento dotaz:

ODSTRANIT OD uživatelů;

Chcete-li zlepšit výkon, použijte .

Počítadlo pole bude také vynulováno. AUTO_INCREMENT, takže nově přidané řádky budou mít id rovné 1. Při použití to se nestane a počítadlo bude dále růst.

Únikové hodnoty řetězce a speciální slova

Hodnoty řetězce

Některé postavy je potřeba uniknout, jinak mohou nastat problémy.

Zpětné lomítko (\) se používá pro escapování.

To je velmi důležité z bezpečnostních důvodů. Všechna uživatelská data musí být před zápisem do databáze escapována. V PHP použijte funkci mysql_real_escape_string() nebo připravené dotazy.

Zvláštní slova

Protože v MySQL mnoho vyhrazených slov jako např VYBRAT nebo Abyste předešli nesrovnalostem, uzavřete názvy sloupců a tabulek do uvozovek. Navíc je třeba používat spíše uvozovky (`) než obyčejné uvozovky.

Řekněme, že z nějakého důvodu chcete přidat sloupec s názvem :

Závěr

Děkuji za přečtení článku. Doufám, že jsem vám ten jazyk mohl ukázat SQL velmi funkční a snadno se učí.

Dotazy - strukturované dotazy do databáze. Proč přesně kurz programování? Nehledě na to, že mnoho „literárních expertů“ bude tvrdit, že SQL není, ale dotazovací jazyk Domnívám se, že kurzy o jejím studiu mohou a měly by být klasifikovány jako kurzy programování. Za prvé, neříkejte jim kurzy pro psaní žádostí, protože by je to mohlo zmást s kurzy pro začínající úředníky nebo státní zástupce. Za druhé, práce s databázemi je tak úzce propojena s tím, že nedostatek SQL dovedností poměrně výrazně zužuje pole působnosti konkrétního programátora. A za třetí, strukturované dotazy (ne nutně do databází) již nejsou na přístupech k hranicím programovacích jazyků - již je překročily a jako příklad toho může sloužit technologie.

Všechny příklady jsou postaveny na dotazech na tři tabulky,


obsahující následující informace:

  • D_STAFF- seznam zaměstnanců společnosti;

    • S_NAME – celé jméno
    • S_POSITION – pozice (adresář);
    • S_EXPERIENCE – pracovní zkušenosti (celočíselný počet let);
    • S_CHIEF_ID – vedoucí zaměstnanec společnosti (vztah „šéf“ - „podřízený“);
    • S_COMMENTS – pozn.


  • D_PROFIE- seznam uživatelských profilů, který je podle legendy nasazen na území daného podniku a pomáhá automatizovat některé jeho obchodní procesy. Tento systém může být buď domácím vývojem „1C – Enterprise“ nebo systémem založeným na softwarovém balíku SAP R/3, který je nejvýznamnějším zástupcem této třídy softwaru v zahraničí;

    • XD_IID – Jedinečný identifikátor záznamu;
    • P_NAME – název profilu (role);
    • P_COMMENTS – pozn.


  • D_STAFF_PROFILE– tabulka spojující zaměstnance společnosti (D_STAFF) s uživatelskými profily systému (D_PROFILE). Každá položka v této tabulce je vztah, který určuje možnost zaměstnance přihlásit se do systému se všemi právy a oprávněními profilu, který mu byl vybrán. Každý zaměstnanec může mít povoleno více profilů a jakýkoli profil může být spojen s několika různými zaměstnanci. Tabulka D_STAFF_PROFILE tedy definuje vztah mnoho k mnoha.

Stručný přehled syntaxe příslušných SQL dotazů

Aktualizace dat nebo příkaz UPDATE

Účelem příkazu UPDATE je aktualizovat existující záznamy v zadané tabulce. Označíme, kde a co chceme změnit, a za klíčové slovo WHERE nastavíme kritéria pro výběr aktualizovaných záznamů. V příkazu aktualizace dat, stejně jako v jiných dotazech SQL, můžete použít poddotazy: můžete například definovat výsledek poddotazu, který vrátí pouze jeden sloupec a jeden řádek jako hodnotu přiřazenou poli.

AKTUALIZOVAT SADA ( = ) nebo AKTUALIZOVAT SADA ( = (VYBRAT ODKUD))

Přidání dat nebo příkaz INSERT

Přidání nových záznamů do zadané tabulky. Ani zde není nic složitého. Určujeme tabulku, seznam polí a seznam hodnot přidaných do těchto polí. Je také snadné uhodnout, co může poskytnout použití poddotazu SQL – zkopírování datového pole vybraného pomocí SELECT do zadané tabulky (v uvedených polích oddělených čárkami). Počet a typ sloupců ve SELECT dotazu musí přirozeně odpovídat počtu a typu polí tabulky, do které se vkládání provádí.

INSERT INTO [()] VALUES () nebo INSERT INTO [()] (VYBERTE ODKUD)

Mazání dat nebo příkaz DELETE

Mazání řádků z jedné tabulky nebo z více tabulek najednou, jejichž řádky jsou sloučeny podmínkami. Zde je také vše zřejmé. Označíme, ze které tabulky data mažeme, a v části KDE vybereme data, která mají být smazána. Druhá verze SQL dotazu pomocí příkazu DELETE ukazuje obecnou syntaxi pro mazání záznamů z několika tabulek najednou. Ve výběrových podmínkách (v části WHERE) lze použít i poddotazy.

DELETE FROM nebo DELETE FROM

Pokud je vše víceméně jasné, pak se seznámíme s nebo a zahájíme samotný proces učení.

    Provádění jednoduchých SQL dotazů pomocí příkazu SELECT. Definování jednoduchých a složených kritérií pro výběr záznamů pomocí klauzule WHERE. Použití operátorů BETWEEN a LIKE. Vytvoření hierarchického dotazu pomocí aliasů tabulek a polí.

Výběr knih, video kurzů a online zdrojů pro studium databází, základů relační teorie a jazyka SQL.

knihy

Alan Bewley "Učíme se SQL" (2007)

Tato kniha je vynikající volbou pro ty, kteří jsou na začátku trnité cesty učení SQL. Umožní vám nejen získat potřebný základ počátečních znalostí, ale také vám řekne o nejoblíbenějších jemnostech a výkonných jazykových nástrojích používaných zkušenými programátory.
Mnoho učebnic o databázích, relační teorii a SQL je plné nudných teoretických základů. Tato kniha je příjemnou výjimkou díky svému lehkému, živému stylu. Autor dovedně předkládá čtenáři informace o SQL výrazech a blocích, typech podmínek, spojeních, poddotazech a mnoho dalšího.
Pro upevnění získaných znalostí v praxi autor vytváří školicí základ MySQL a poskytuje mnoho praktických příkladů dotazů pokrývajících veškerý prezentovaný teoretický materiál.

Chris Fiaily "SQL" (2013)


Kniha se zabývá jazykovou verzí ANSI SQL-92 (SQL2). Podrobně popisuje, jak pomocí dotazovacího jazyka řešit odpovídající třídy problémů získávání a modifikace dat a práce s objekty databázové struktury. Všechny příklady jsou podrobně vysvětleny.
Zvláštní pozornost je v této publikaci věnována rozdílům v dialektech SQL při implementaci nejběžnějších DBMS: MySQL, Oracle, MS SQL Server a PostgreSQL.
Kniha je určena všem, kteří se chtějí samostatně naučit jazyk SQL nebo si zdokonalit své znalosti na toto téma.

Anthony Molinaro "SQL. Sbírka receptů" (2009)


Tato publikace je určena těm, kteří již mají nějaké znalosti SQL a chtějí se v této oblasti zdokonalit. Bude to také velmi užitečné pro databázové odborníky, protože autor nabízí příklady řešení problémů v různých DBMS: DB2, Oracle, PostgreSQL, MySQL a SQL Server.
Kniha vám pomůže naučit se používat SQL k řešení širšího spektra problémů: od operací v rámci databáze po načítání dat a jejich přenos po síti do aplikací.
Naučíte se používat funkce oken a speciální operátory a také pokročilé techniky pro práci s datovými sklady: vytváření histogramů, sumarizace dat do bloků, provádění agregací klouzavého rozsahu, generování průběžných součtů a mezisoučtů. Budete moci rozbalit řádky do sloupců a naopak, zjednodušit výpočty v řádku a dvakrát rozvinout sadu výsledků a provádět procházení řetězců, což vám umožní použít SQL k analýze řetězce na znaky, slova nebo oddělený řetězec. prvky. Techniky navržené autorem vám umožní optimalizovat kód vašich aplikací a otevřou vám nové možnosti v jazyce SQL.

Alex Kriegel a kol. Uživatelská Bible, 2. vydání (2010)


Kniha je jedinečná v tom, že každá kapitola porovnává implementace určitých dotazů v dialektech tří předních DBMS. To z něj dělá komplexního a praktického průvodce jazykem SQL pro vývojáře od začátečníků po guruy, jakousi příručku pro stolní počítače.
Publikace pokrývá témata od úplných základů až po transakce a zámky, funkce a zabezpečení databází.
Na konci je uvedeno několik dalších témat: integrace SQL do XML, business intelligence OLAP a další.

Eric Redmond, Jim R. Wilson "Sedm databází za sedm týdnů." Úvod do moderních databází a ideologie NoSQL“ (2015)

Kniha pokrývá většinu moderních open source databází: Redis, Neo4J, CouchDB, MongoDB, HBase, PostgreSQL a Riak. U každé báze jsou uvedeny příklady práce s reálnými daty, které demonstrují hlavní myšlenky a silné stránky.
Tato kniha vám osvětlí silné a slabé stránky každé ze sedmi databází a naučí vás, jak si vybrat tu, která nejlépe vyhovuje vašim potřebám.

Každý z nás se pravidelně setkává a využívá různé databáze. Když vybereme e-mailovou adresu, pracujeme s databází. Databáze jsou využívány vyhledávacími službami, bankami k ukládání zákaznických dat atd.

Ale navzdory neustálému používání databází existuje i pro mnoho vývojářů softwarových systémů stále mnoho slepých míst kvůli různým výkladům stejných pojmů. Než se budeme zabývat jazykem SQL, stručně definujeme základní databázové pojmy. Tak.

Databáze - soubor nebo kolekce souborů pro ukládání uspořádaných datových struktur a jejich vztahů. Velmi často se řídícímu systému říká databáze – je to pouze úložiště informací v určitém formátu a může pracovat s různými DBMS.

Tabulka - Představme si složku, ve které jsou uloženy dokumenty seskupené podle určité charakteristiky, například seznam zakázek za poslední měsíc. Toto je tabulka v počítači Samostatná tabulka má svůj jedinečný název.

Typ dat - typ informací, které mohou být uloženy v samostatném sloupci nebo řádku. Mohou to být čísla nebo text určitého formátu.

Sloupec a řádek- Všichni jsme pracovali s tabulkami, které mají také řádky a sloupce. Každá relační databáze pracuje s tabulkami podobným způsobem. Řádky se někdy nazývají záznamy.

Primární klíč- Každý řádek tabulky může mít jeden nebo více sloupců pro jeho jednoznačnou identifikaci. Bez primárního klíče je velmi obtížné aktualizovat, měnit a mazat příslušné řádky.

Co je SQL?

SQL(angličtina - strukturovaný dotazovací jazyk) byl vyvinut pouze pro práci s databázemi a v současnosti je standardem pro všechny populární DBMS. Syntaxe jazyka se skládá z malého počtu operátorů a je snadné se ji naučit. Ale i přes svou zdánlivou jednoduchost umožňuje vytváření SQL dotazů pro složité operace s databází libovolné velikosti.

Od roku 1992 existuje obecně uznávaný standard nazvaný ANSI SQL. Definuje základní syntaxi a funkce operátorů a je podporován všemi lídry na trhu DBMS, jako je ORACLE. Není možné v jednom krátkém článku zvážit všechny možnosti jazyka, proto se budeme stručně zabývat pouze základními SQL dotazy. Příklady jasně ukazují jednoduchost a možnosti jazyka:

  • vytváření databází a tabulek;
  • vzorkování dat;
  • přidávání záznamů;
  • úpravy a mazání informací.

SQL datové typy

Všechny sloupce v databázové tabulce ukládají stejný datový typ. Datové typy v SQL jsou stejné jako v jiných programovacích jazycích.

Vytváříme tabulky a databáze

Existují dva způsoby, jak vytvořit nové databáze, tabulky a další dotazy v SQL:

  • Příkazy SQL prostřednictvím konzole DBMS
  • Použití interaktivních administračních nástrojů, které jsou součástí databázového serveru.

Operátor vytvoří novou databázi VYTVOŘIT DATABÁZI<наименование базы данных>; . Jak vidíte, syntaxe je jednoduchá a stručná.

Tabulky v databázi vytváříme pomocí příkazu CREATE TABLE s následujícími parametry:

  • název tabulky
  • názvy sloupců a datové typy

Jako příklad vytvoříme tabulku komodit s následujícími sloupci:

Vytvořte tabulku:

VYTVOŘIT TABULKU Komodita

(id_komodity CHAR(15) NOT NULL,

vendor_id CHAR(15) NOT NULL,

název_komodity CHAR(254) NULL,

commodity_price DECIMAL(8,2) NULL,

commodity_desc VARCHAR(1000) NULL);

Tabulka se skládá z pěti sloupců. Za názvem následuje datový typ, sloupce jsou odděleny čárkami. Hodnota sloupce může přijímat prázdné hodnoty (NULL) nebo musí být vyplněna (NOT NULL), a to je určeno při vytváření tabulky.

Načítání dat z tabulky

Operátor načítání dat je nejčastěji používaným SQL dotazem. Pro získání informací musíme uvést, co chceme z takové tabulky vybrat. Nejprve jednoduchý příklad:

SELECT název_komodity FROM Komodita

Po příkazu SELECT specifikujeme název sloupce pro získání informací a FROM definuje tabulku.

Výsledkem dotazu budou všechny řádky tabulky s hodnotami Commodity_name v pořadí, v jakém byly zadány do databáze, tzn. bez jakéhokoli třídění. K uspořádání výsledku se používá dodatečná klauzule ORDER BY.

Chcete-li zadat dotaz na několik polí, uveďte je oddělená čárkami, jako v následujícím příkladu:

SELECT commodity_id, commodity_name, commodity_price FROM Commodity

Je možné získat hodnotu všech sloupců řádku jako výsledek dotazu. Chcete-li to provést, použijte znak „*“:

VYBERTE * Z Komodity

  • SELECT navíc podporuje:
  • Řazení dat (ORDER BY operátor)
  • Výběr podle podmínek (KDE)
  • Termín seskupení (GROUP BY)

Přidejte řádek

Pro přidání řádku do tabulky se používají SQL dotazy s operátorem INSERT. Přidání lze provést třemi způsoby:

  • přidat nový celý řádek;
  • strunová část;
  • výsledky dotazu.

Chcete-li přidat celý řádek, musíte zadat název tabulky a hodnoty sloupců (polí) nového řádku. Zde je příklad:

INSERT INTO Commodity VALUES("106", "50", "Coca-Cola", "1,68", "No Alcogol ,)

Příklad přidá do tabulky nový produkt. Hodnoty jsou uvedeny za VALUES pro každý sloupec. Pokud pro sloupec neexistuje žádná odpovídající hodnota, je nutné zadat hodnotu NULL. Sloupce jsou naplněny hodnotami v pořadí určeném při vytváření tabulky.

Pokud přidáte pouze část řádku, musíte explicitně zadat názvy sloupců, jako v příkladu:

INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)

VALUES("106", ‘50"; "Coca-Cola");

Zadali jsme pouze identifikátory produktu, dodavatele a jeho název a zbývající pole jsme nechali prázdná.

Přidání výsledků dotazu

INSERT se primárně používá k připojení řádků, ale lze jej také použít k připojení výsledků příkazu SELECT.

Změna údajů

Chcete-li změnit informace v polích databázové tabulky, musíte použít příkaz UPDATE. Operátor lze použít dvěma způsoby:

  • Všechny řádky v tabulce jsou aktualizovány.
  • Pouze pro konkrétní linku.

UPDATE se skládá ze tří hlavních prvků:

  • tabulka, ve které je třeba provést změny;
  • názvy polí a jejich nové hodnoty;
  • podmínky pro výběr řádků ke změně.

Podívejme se na příklad. Řekněme, že se změnila cena produktu s ID=106, takže je potřeba tento řádek aktualizovat. Píšeme následující operátor:

AKTUALIZACE SADA komodit commodity_price = "3,2" WHERE commodity_id = "106"

Zadali jsme název tabulky, v našem případě Komodita, kde bude aktualizace provedena, poté po SET - novou hodnotu sloupce a našli požadovaný záznam zadáním požadované hodnoty ID do WHERE.

Chcete-li změnit více sloupců, za příkazem SET následuje několik párů sloupec-hodnota oddělených čárkami. Podívejme se na příklad, ve kterém se aktualizuje název a cena produktu:

AKTUALIZACE SADA komodit commodity_name=’Fanta’, commodity_price = "3,2" WHERE commodity_id = "106"

Chcete-li odstranit informace ve sloupci, můžete mu přiřadit hodnotu NULL, pokud to struktura tabulky umožňuje. Je třeba si uvědomit, že NULL je přesně „ne“ hodnota, a nikoli nula ve formě textu nebo čísla. Odebereme popis produktu:

AKTUALIZACE SADA komodit commodity_desc = NULL WHERE id_komodity = "106"

Odstranění řádků

SQL dotazy k odstranění řádků v tabulce se provádějí pomocí příkazu DELETE. Existují dva případy použití:

  • Některé řádky v tabulce jsou odstraněny;
  • Všechny řádky v tabulce jsou odstraněny.

Příklad odstranění jednoho řádku z tabulky:

DELETE FROM Commodity WHERE commodity_id = "106"

Po DELETE FROM uvedeme název tabulky, ve které budou řádky smazány. Klauzule WHERE obsahuje podmínku, podle které budou vybrány řádky k odstranění. V příkladu odstraníme produktovou řadu s ID=106. Určení KDE je velmi důležité, protože vynechání tohoto příkazu smaže všechny řádky v tabulce. To platí i pro změnu hodnoty polí.

Příkaz DELETE neurčuje názvy sloupců ani metaznaky. Úplně odstraní řádky, ale nemůže odstranit jediný sloupec.

Použití SQL v aplikaci Microsoft Access

Obvykle se používá interaktivně k vytváření tabulek, databází, ke správě, úpravám, analýze dat v databázi a implementaci dotazů SQL Access prostřednictvím pohodlného interaktivního návrháře dotazů (Query Designer), pomocí kterého můžete vytvářet a okamžitě spouštět příkazy SQL jakékoli složitosti.

Podporován je také režim přístupu na server, ve kterém lze Access DBMS použít jako generátor SQL dotazů do libovolného zdroje dat ODBC. Tato funkce umožňuje aplikacím Accessu pracovat s jakýmkoli formátem.

SQL rozšíření

Vzhledem k tomu, že dotazy SQL nemají všechny možnosti procedurálních programovacích jazyků, jako jsou smyčky, větvení atd., vyvíjejí výrobci DBMS vlastní verzi SQL s pokročilými možnostmi. V prvé řadě se jedná o podporu uložených procedur a standardních operátorů procedurálních jazyků.

Nejběžnější dialekty jazyka:

  • Oracle Database - PL/SQL
  • Interbase, Firebird - PSQL
  • Microsoft SQL Server - Transact-SQL
  • PostgreSQL - PL/pgSQL.

SQL na internetu

MySQL DBMS je distribuován pod bezplatnou GNU General Public License. Existuje komerční licence s možností vývoje vlastních modulů. Jako komponenta je součástí nejpopulárnějších sestav internetových serverů, jako jsou XAMPP, WAMP a LAMP, a je nejoblíbenějším DBMS pro vývoj aplikací na internetu.

Byl vyvinut společností Sun Microsystems a v současnosti je podporován společností Oracle Corporation. Podporovány jsou databáze o velikosti až 64 terabajtů, standard syntaxe SQL:2003, replikace databází a cloudové služby.




Nahoru