sql >> Databáze >  >> RDS >> Access

Práce s jazykem SQL (Structured Query Language) pomocí Microsoft Access 2010, 2013, 2016 a 2019

Úvod

Účelem tohoto kurzu je demonstrovat, jak můžete napsat své vlastní příkazy SQL a spouštět je z Microsoft Access 2007, 2010, 2013 2016 nebo 2019 (kroky jsou prakticky totožné ve všech verzích). Stejně jako všechny relační databáze lze Microsoft Access programovat přímo pomocí jazyka SQL (Structured Query Language). Zatímco SQL je většinou uživatelům skryto, pro studenty databází poskytuje MS Access rychlý a snadný způsob, jak prozkoumat SQL a napsat některé docela složité dotazy. To je zvláště užitečné, pokud nemáte čas nebo trpělivost na instalaci SQL Serveru, Oracle, MySQL nebo jiného většího systému pro správu relačních databází.

Příklady SQL použité v tomto krátkém kurzu jsou založeny na jednoduchých tabulkách Customer a Accounts vytvořených jako součást mého kurzu Microsoft Access 2007, 2010 a 2013.
Možná budete chtít nejprve projít tento kurz (nebo alespoň první několik sekcí) k vytvoření tabulek a přidání nezbytných dat, aby tyto příklady fungovaly.

Následující část poskytne velmi stručné představení jazyka SQL (Structured Query Language).

Structured Query Language (SQL)

Structured Query Language (SQL vyslovované jako „Pokračování“) je deklarativní programovací jazyk používaný k manipulaci se systémy správy relačních databází (RDBMS). Poprvé byl představen v IBM System R na konci 70. let. Dnes se SQL používá ve všech hlavních relačních DBMS, jako je Oracle, IBM DB2, Informix, Sybase, Microsoft SQL Server, MySQL, Postgres, SQLLite, Microsoft Access a mnoho dalších. I když každý dodavatel databází poskytuje některé proprietární funkce, jádro SQL lze použít na téměř jakékoli relační databázi.

Strukturovaný dotazovací jazyk je rozdělen do dvou hlavních částí:

  1. Data Definition Language (DDL) – používá se k vytváření (definování) datových struktur, jako jsou schémata, tabulky, indexy, clustery, sekvence, a zároveň zajišťujeme databázi.
  2. Data Manipulation Language (DML) – používá se k vkládání, načítání, aktualizaci a mazání dat z tabulek.

Microsoft Access podporuje části SQL DDL i DML. Většinu času se zaměřujeme na dotazy SQL, které se jako příkazy SQL SELECT používají k načítání dat z existující databáze. Základní syntaxe příkazu SQL SELECT je:

SELECT   column1, column2, ... columnN
FROM     tableA, tableB, ... tableZ
WHERE    condition1, condition2, ...conditionM
ORDER BY column1, column2, ... columnN

Takže například za předpokladu, že máme tabulku s názvem Customer se sloupci jako FirstName, LastName, StreetAddress, City, state a ZIP, můžeme napsat příkaz SQL SELECT takto:

SELECT   FirstName, LastName, City, State
FROM     customer

Ve výše uvedeném dotazu požadujeme data pouze ve sloupcích Jméno, Příjmení, Město a Stát a tabulka, ze které tato data získáváme, se nazývá zákazník. Všimněte si, že jazyk SQL se nestará o velká nebo malá písmena. Takže psaní select firstName... je stejné jako psaní SELECT FIRSTNAME ... .

Trochu sofistikovanější dotaz by byl, kdybychom chtěli vidět pouze zákazníky žijící v Gruzii a chtěli bychom výsledky seřadit podle příjmení zákazníka:

SELECT   FirstName, LastName, City, State
FROM     customer
WHERE    state = 'GA'
ORDER BY LastName

Jak vidíte, seznam sloupců, které chceme zobrazit, následuje za klíčovým slovem SELECT. Název tabulky, na kterou se dotazujeme, odpovídá klíčovému slovu FROM, podmínce state ='GA' následuje klíčové slovo WHERE a nakonec jsou výsledky seřazeny podle sloupce Příjmení, jak je popsáno v klíčovém slově ORDER BY.

Existuje mnoho dalších funkcí příkazu SQL SELECT, které zahrnují dotazování více tabulek jejich „spojením“ dohromady, seskupování kolekcí záznamů za účelem nalezení součtů, největších, nejmenších nebo průměrných hodnot a provádění dalších manipulací s výstupem, který uživatelé nakonec uvidí. Mnohem obsáhlejší diskusi o vlastnostech SQL lze nalézt na tomto odkazu.

Další část představuje použití SQL z pohledu Návrh dotazu v MS Access.

SQL v aplikaci Microsoft Access

V této části poskytneme kroky k napsání vlastního SQL v MS Access. Toto cvičení předpokládá, že máte spuštěný MS Access 2007, 2010 nebo 2013 s otevřenou databází „Banka“ (tabulky Zákazník a Účty). Kliknutím sem zobrazíte návod s kroky k vytvoření této databáze.

Chcete-li začít:

  1. vytvořte nový dotaz kliknutím na tlačítko Vytvořit a poté kliknutím na Návrh dotazu ikona, jak je znázorněno níže.
  2. Zobrazí se dialogové okno „Zobrazit tabulku“, jak je znázorněno níže. Klikněte na Zavřít tlačítko pro zavření.
  3. Klikněte na kartu Návrh a poté klikněte na SQL ikonu na levé straně (nebo stáhněte dolů tlačítko zobrazení a vyberte SQL

  4. V tomto okamžiku se zobrazí SQL pohled na dotaz Query1. Ve výchozím nastavení se v okně zobrazuje klíčové slovo SELECT.
  5. Upravte dotaz tak, aby byl vypsán úplný příkaz SQL:
    SELECT   firstname, lastname
    FROM     customer
    ORDER BY lastname
    
    

    Okno dotazu zobrazení SQL se nyní zobrazí jako níže:

  6. V tomto okamžiku, se zadaným příkazem SQL, můžeme provést dotaz na databázi kliknutím na tlačítko s vykřičníkem „Spustit“.

  7. Výsledky dotazu se zobrazí v zobrazení datového listu (jako tabulka):

  8. Chcete-li se vrátit k úpravě dotazu SQL, rozbalte nabídku Zobrazit a znovu vyberte SQL.

  9. Možná budete chtít svůj dotaz uložit. Chcete-li to provést, klikněte pravým tlačítkem na kartu s aktuálním názvem dotazu:Query1 a zvolte Uložit .

    Zobrazí se dialogové okno s výzvou k zadání nového názvu dotazu. Zadejte nový název, například:Customer_Names a poté klikněte na OK uložit.

  10. A konečně, MS Access neposkytuje způsob, jak uložit dotaz pod novým názvem („Uložit jako“). Místo toho můžete zvýraznit název dotazu, kliknout pravým tlačítkem a vybrat Kopírovat poté znovu klikněte pravým tlačítkem a vyberte Vložit . Poté budete vyzváni k zadání nového názvu dotazu.

Dále představím několik triků a tipů pro psaní a ladění vašich SQL dotazů.

Psaní a ladění SQL dotazů v MS Access

Nyní, když máte základní mechaniku psaní a spouštění SQL dotazů, zde je několik tipů a triků pro ladění SQL.

Editory pro MS Access SQL

Okno editoru SQL v MS Access není tak inteligentní a snadno se s ním pracuje. Jedním ze způsobů, jak pracovat s SQL, je napsat kód v jiném editoru, poté zkopírovat a vložit kód do Accessu, aby se spustil. K dispozici je mnoho různých textových editorů. Například ve Windows budete mít Poznámkový blok dostupný ve skupině Příslušenství. Jediné varování, které zde mohu dát, je NEPOUŽÍVAT k zápisu SQL slovo MS Word nebo jiný textový editor. Důvodem je to, že MS Word a další textové procesory promění vaše jednoduché a dvojité uvozovky na „efektní uvozovky“, kterým SQL nerozumí.
Pokud máte například klauzuli WHERE, jako je WHERE state ='GA'
SQL očekává, že text bude uzavřen v jednoduchých uvozovkách. MS word z nich udělá ozdobný znak úvodní a závěrečné uvozovky, kterému SQL nebude rozumět.
Pokud se zobrazí chyba, jako je Zadejte hodnotu parametru pro „GA“ pak se určitě budete chtít ujistit, že máte text uzavřený v jednoduchých jednoduchých uvozovkách.

Zacházení s chybami syntaxe

Chyby syntaxe mohou být v SQL velmi frustrující, protože databáze často nedokáže přesně určit, kde je problém ve vašem kódu. Některé z hlavních chyb, které Access zobrazí, zahrnují:

Text chyby Řešení Příklad
Zadejte hodnotu parametru pro ________ Nejčastěji se to stane, když název sloupce (pole) není zadán správně (například v tomto případě je „lstname“ napsáno chybně) nebo výraz nemůže být rozpoznán jako WHERE state =`GA'
Databázový stroj Microsoft Access nemůže najít vstupní dotaz nebo tabulku :______________ Nejčastěji se to stane, když název tabulky není správně zadán v klauzuli FROM dotazu. Například v tomto případě dotaz specifikoval OD zákazníků místo OD zákazníka
Chyba syntaxe (chybějící operátor) ve výrazu dotazu:______________ V tomto případě syntaxe dotazu postrádá některé klíčové části. Chybí například klauzule „FROM“, a tak Access hlásí přibližné místo, kde k problému dochází, zobrazením textu dotazu.

V další části poskytnu několik dalších tipů, jak prezentovat vaše SQL dotazy a výsledky pro projekt nebo domácí úkol.

Dokumentování vaší práce SQL

V této části popíši několik tipů pro formátování vašich dotazů a výsledků tak, aby byly na vašich úkolech a projektech prezentovány jasným a stručným způsobem.
Předpokládáme, že budete používat program pro zpracování textu, jako je např. MS Word nebo jiný textový editor, který podporuje kopírování a vkládání obrázků a textu.

MS Access neumožňuje vkládat komentáře do kódu SQL. Jiné DBMS to umožňují, ale Access je trochu restriktivnější.

V tomto cvičení předpokládejme, že domácí úlohou je ukázat jména a příjmení všech zákazníků a seřadit výsledek podle příjmení zákazníka.

  1. Zadejte dotaz SQL podle popisu v předchozí části a spusťte jej, abyste získali výsledky:
  2. V zobrazení datového listu klikněte na malé čtvercové pole vlevo od záhlaví sloupců a v horní části polí pro výběr řádků. To způsobí, že se zvýrazní celá sada výsledků.
  3. Klikněte pravým tlačítkem na stejné malé čtvercové pole v rohu a vyberte Kopírovat z vyskakovací nabídky.
  4. Přepněte na MS Word (nebo jiný textový editor) a vložte výsledky na vhodné místo:

Některé další užitečné rady, které byly také dodrženy při vytváření tohoto dokumentu zadání:

  • Nezapomeňte napsat celou větu popisující dotaz, který řešíte (nezadávejte pouze „Otázku 1“). Můžete například chtít zkopírovat otázku z domácího úkolu a učinit ji součástí odpovědi.
  • Při vkládání textu SQL pro dotaz použijte písmo Courier New, aby se znaky a mezery zarovnaly. Díky tomu je mnohem snazší číst.
  • Vložte výsledky pomocí výše uvedené techniky namísto použití snímku obrazovky. Díky tomu budou vaše soubory dokumentů Word nejen menší, ale budou také velmi jasné, když je vytisknete.
  • Nezapomeňte do úkolu uvést své jméno, třídu/kurz a sekci.
  • U složitějších dotazů, které mohou zahrnovat poddotazy nebo vložené dotazy, je nejlepší seřadit poddotazy do odsazených for, aby byly snazší číst a ladit. Například místo psaní poddotazu, jako je tento:
    SELECT  accountnumber, balance
    FROM    accounts  WHERE   balance = (SELECT MIN(balance) from accounts)
    
    

    Seřaďte dílčí dotaz do závorek:

    SELECT  accountnumber, balance
    FROM    accounts  
    WHERE   balance = (
                        SELECT MIN(balance) 
                        FROM   accounts
                      )
    
    

Dodržování těchto kroků udělá skvělý dojem, když odevzdáte své úkoly a projekty.

Závěry

V tomto krátkém tutoriálu jsme probrali, jak pracovat s SQL pomocí MS Access. SQL je poměrně generický programovací jazyk a vše, co se naučíte při psaní SQL pod MS Access, lze snadno přenést do jiných relačních databází, jako je SQL Server, Oracle, Sybase atd. Další poznámky k SQL naleznete v mém Structured Query Language (SQL) stránka s poznámkami ke kurzu.

Další úvodní a pokročilý výukový program MS Access naleznete v kategorii Přístup na mém webu.


  1. 5 Výhody proaktivního monitorování výkonu databáze

  2. Jak programově vytvořit propojenou tabulku ODBC se zobrazením serveru SQL a zajistit, aby byla upravitelná?

  3. Spring's Stored Procedure - výsledky vracející se z procedury vždy prázdné

  4. Použití INNER JOIN ke kombinaci tabulek SQL Server a jejich zobrazení ve webových formulářích ASP.NET