MS Access Dotazy SQL



Podobné dokumenty
KIV/ZIS - SELECT, opakování

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze accdb. SQL dotazy. budeme probírat pouze SELECT

KIV/ZIS cvičení 5. Tomáš Potužák

Úvod do databázových systémů

Informační systémy ve zdravotnictví. 10. cvičení

Úvod do databázových systémů 3. cvičení

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

KIV/ZIS cvičení 6. Tomáš Potužák

MS Access Dotazy SQL

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Úvod do databázových systémů

Sada 1 - PHP. 15. Výběr dat z databáze. Příkaz SELECT

Materiál ke cvičením - SQL

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Databázové systémy Cvičení 5

téma: Výběrové dotazy v MS Access

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Databáze SQL SELECT. David Hoksza

Databázové systémy. Cvičení 6: SQL

Úvod do databázových systémů

6. blok část B Vnořené dotazy

Access Tabulka letní semestr 2013

DB1 cvičení 4 spojení tabulek a složitější dotazy

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Databázové systémy Cvičení 5.3

Databázové systémy I

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Dotazování v relačním modelu a SQL

Operátory ROLLUP a CUBE

Databázové systémy a SQL

Úvod do databázových systémů

Dotaz se souhrny a dotaz křížový

Základní přehled SQL příkazů

Databáze I. Přednáška 6

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

6. blok část C Množinové operátory

Databázové systémy a SQL

5. blok Souhrnné a skupinové dotazy

Microsoft Access. Úterý 26. února. Úterý 5. března. Typy objektů databáze: Vytvoření a návrh nové tabulky

Informační systémy ve zdravotnictví. 8. cvičení

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

Databázové systémy. Dotazovací jazyk SQL - II

Architektury databázových

Databázové systémy Cvičení 5.2

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

DATABÁZE MS ACCESS 2010

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat)

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12

Informační systémy ve zdravotnictví. 6. cvičení

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Řešené příklady STUDENT(RČ, JMÉNO, SPECIALIZACE) PŘEDMĚT(KÓD, NÁZEV, SYLLABUS, GARANT) ZÁPIS(RČ, KÓD, SEMESTR, ZNÁMKA)

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Dotazy tvorba nových polí (vypočítané pole)

Jazyk SQL databáze SQLite. připravil ing. petr polách

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

téma: Parametrické a křížové dotazy v MS Access

KIV/ZIS cvičení 2. Martin Kryl

Sestavy. Téma 3.3. Řešený příklad č Zadání: V databázi zkevidence.accdb vytvořte sestavu, odpovídající níže uvedenému obrázku.

Multi-dimensional expressions

FAKULTA STAVEBNÍ STUDIJNÍ PROGRAM: GEODÉZIE A KARTOGRAFIE TYP PROGRAMU: MAGISTERSKÝ STUDIJNÍ OBOR: GEOMATIKA ÚVOD DO ZPRACOVÁNÍ PROSTOROVÝCH DAT

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Jazyk S Q L základy, příkazy pro práci s daty

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3bph)

U koly na procvic ení jazyka T-SQL

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Úvod do SQL v systému SAS Martin Branda

4. blok část A Logické operátory

Ukládání a vyhledávání XML dat

Analýza a modelování dat. Přednáška 9

Zpracování informací

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access generování složitějších sestav Ing. Kotásek Jaroslav

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access propojení relací s formuláři a sestavami Ing.

DATA CUBE. Mgr. Jiří Helmich

Osnova je orientační pro FIT, u FEKTu se dá předpokládat, že budou zohledněny předchozí znalosti studentů, kde většina s databází nikdy přímo

Dotazy. V té to ka pi to le:

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Databázové systémy Tomáš Skopal

PG 9.5 novinky ve vývoji aplikací

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník ATRIBUTY ZÁKLADN POJMY VÝBĚR PRVKŮ DLE ATRIBUTŮ

Transkript:

MS Access Dotazy SQL Dotaz SELECT Michal Nykl Materiály pro cvičení KIV/ZIS 2012 Červeně značené výsledky odpovídají souboru cv4_testovacidatabaze250312.accdb

Dotaz SELECT - struktura SELECT [ DISTINCT ALL ] { * [ sloupcový_výraz [AS nový_název] ] [, ] } FROM název_tabulky [alias] [, ] [ WHERE podmínka ] [GROUP BY seznam_sloupců ] [ HAVING podmínka ] [ORDER BY seznam_sloupců [ASC DESC] ] ; ukončení středníkem název sloupce nebo výraz náhradní název sloupce náhradní název tabulky (automaticky) vzestupně sestupně Zdroj: materiály pro předmět KIV/DB1, ZČU Plzeň

Dotaz SELECT - struktura Dotaz SELECT slouží ke čtení dat z databáze. SELECT - FROM - WHERE Je v praxi základní konstrukcí jazyka SQL.

Dotaz nad jednou tabulkou Vypište všechny pracovníky 4. oddělení (obchodní oddělení). (14 osob) Všechny sloupce SELECT * FROM Zamestnanci WHERE Oddeleni=4 ;

Dotaz nad jednou tabulkou Vypište dle příjmení abecedně řazený telefonní seznam pracovníků 5. oddělení (ekonomické oddělení). (10 osob) Jméno sloupce EvCislo se ve výsledku zobrazí jako ec. (pozn.: funguje pouze, pokud nemáte u jména sloupce vyplněn titulek) SELECT EvCislo AS ec, Jmeno, Prijmeni, Telefon FROM Zamestnanci WHERE Oddeleni = 5 ORDER BY Prijmeni ;

Dotaz nad jednou tabulkou Kteří zaměstnanci nastoupili do firmy v období 1. čtvrtiny roku 2009? (15 osob) SELECT EvCislo, Jmeno, Prijmeni, Nastup FROM Zamestnanci Anglický formát zápisu: MM/DD/RRRR WHERE ( Nastup > #1/1/2009# AND Nastup < #4/1/2009# ) ORDER BY Nastup DESC ; Řazeno dle nástupu od nejnovějšího k nejstaršímu.

Dotaz nad jednou tabulkou Kdo ze zaměstnanců nemá přidělenou telefonní linku? (seřaďte dle oddělení). (58 osob) SELECT EvCislo, Jmeno, Prijmeni, Oddeleni FROM Zamestnanci WHERE Telefon IS NULL ORDER BY Oddeleni ; Není-li řečeno jinak, řadí se vzestupně.

Dotaz nad jednou tabulkou Zjistěte inventární čísla tiskáren a konvic. (pozn.: tiskárny mají své označení) (10 zařízení) SELECT InvCislo, Nazev FROM Zarizeni WHERE ( Nazev LIKE "Tiskárna*" * libovolný počet libovolných znaků? jeden libovolný znak OR Nazev = "Konvice" ) ;

Zkuste sami Dotaz nad jednou tabulkou Zjistěte, kdy byly pořízeny kopírka a fax. (10.1.2010) Vypište všechna zařízení dražší než 3 500,-Kč. (6 zaříz.) Vypište dle oddělení řazený seznam pracovníků oddělení příjmu a výdeje, kteří nemají přiřazen telefon (pozn.: oddělení zapište číslem, tedy 1 a 2). V rámci oddělení řaďte pracovníky dle příjmení. (11 osob)

Dotaz s parametrem parametricky zadaná hodnota prostřednictvím proměnné, např. [Limit:], [Název:] (1) Najděte pracovníky oddělení s platem vyšším než.. (19 000,-) (2 pracovníci) SELECT * FROM Zamestnanci WHERE ( Oddeleni = [Oddělení:] AND Plat > [Plat:] ) ORDER BY Oddeleni, Prijmeni ;

Dotaz nad více tabulkami Uveďte jmenovitě správce tiskáren. (6 osob 1 osoba 2x) SELECT Jmeno, Prijmeni, Nazev FROM WHERE Zamestnanci, Zarizeni ( Nazev LIKE "Tiskárna*" Sloupce z obou tabulek AND Spravuje = EvCislo ) ; Spojení tabulek pomocí cizího a primárního klíče.

Dotaz nad více tabulkami Když se sloupce v tabulkách jmenují stejně, je nutné je rozlišit jménem, či aliasem tabulky. Alias tabulky SELECT zam.jmeno, zam.prijmeni, Zarizeni.Nazev FROM Zamestnanci zam, Zarizeni WHERE ( Zarizeni.Nazev LIKE "Tiskárna*" AND Zarizeni.Spravuje = zam.evcislo ) ; Spojení tabulek pomocí cizího a primárního klíče.

Dotaz nad více tabulkami Jaká je pořizovací cena jednotlivých zařízení, která spravuje Magdaléna Hrušková? (5 zařízení) SELECT Jmeno, Prijmeni, Nazev, PorizovaciCena FROM Zamestnanci, Zarizeni WHERE ( Jmeno = "Magdaléna" AND Prijmeni = "Hrušková" AND Spravuje = EvCislo ) ; Spojení tabulek pomocí cizího a primárního klíče.

Zkuste sami Dotaz nad více tabulkami Která zařízení spravují zaměstnanci z ekonomického oddělení? (pozn.: oddělení pište jménem budete tedy muset vytvořit dotaz nad všemi tabulkami) (6 zařízení) (pozn.2: Pro zjednodušení si můžete nechat vypsat i jména příslušných správců) Vypište názvy oddělení, na kterých mají konvici nebo stůl. (4 oddělení)

Dotaz nad více tabulkami Hodnoty ve sloupcích můžeme upravovat pomocí výrazů Vypište, kolik tisíc mají plat zaměstnanci ekonomického oddělení. (10 osob) Výraz Určení nového názvu sloupce SELECT Jmeno, Prijmeni, Plat/1000 AS PlatVTisicich FROM OddeleniFirmy, Zamestnanci WHERE ( NazevOddeleni = "Ekonomické" AND CisloOddeleni = Oddeleni ) ; Pozn.: Místo PlatVTisicich můžeme použít [Plat v tisících] Použití [ ] v oblasti mezi SELECT a FROM není chápáno jako proměnná.

Dotaz nad více tabulkami Pokud chceme seskupit stejné řádky, použijeme DISTINCT SELECT DISTINCT NazevOddeleni FROM OddeleniFirmy, Zamestnanci, Zarizeni WHERE ( ( Nazev = "konvice" OR Nazev = "stůl" ) AND CisloOddeleni = Oddeleni AND Spravuje = EvCislo ) ; Oddělení a zaměstnanci. Zaměstnanci a zařízení.

Souhrny a agregační funkce COUNT počet hodnot ve sloupci (počet řádků) SUM součet hodnot ve sloupci AVG průměr hodnot z daného sloupce MIN minimální hodnota ve sloupci MAX maximální hodnota ve sloupci

Souhrny a agregační funkce Jaká je celková pořizovací cena zařízení, která spravuje Magdaléna Hrušková? (12 750) SELECT SUM(PorizovaciCena), Jmeno, Prijmeni FROM Zamestnanci, Zarizeni WHERE ( Jmeno = "Magdaléna" AND Prijmeni = "Hrušková" AND Spravuje = EvCislo ) GROUP BY Jmeno, Prijmeni ; Abychom mohli vypsat i neagregované sloupce, musíme použít seskupení pomocí GROUP BY.

Souhrny a agregační funkce Kolik zaměstnanců má ve správě stůl? (3) SELECT COUNT(EvCislo) AS [Správci stolů] FROM Zamestnanci, Zarizeni WHERE ( Nazev = "Stůl" AND Spravuje = EvCislo ) ; Jaký je průměrný plat ve firmě? (19 385) SELECT AVG(Plat) AS [Průměrný plat firmy] FROM Zamestnanci ;

Souhrny a agregační funkce Zjistěte nejnižší a nejvyšší plat v jednotlivých odděleních. (obch.=20000; 21000) SELECT MIN(Plat) AS [Min], MAX(Plat) AS [Max], NazevOddeleni FROM OddeleniFirmy, Zamestnanci WHERE ( CisloOddeleni = Oddeleni ) GROUP BY NazevOddeleni ;

Zkuste sami Souhrny a agregační funkce Kolik zaměstnanců mají jednotlivá oddělení? (ek.=10) Kolik zařízení mají ve správě: a) jednotliví (M.H.=5) zaměstnanci; b) zaměstnanci ekonomického oddělení? (6) Vypište telefonní linky, včetně počtu lidí, kteří je sdílí, a to: a) firmy (15 tel. čísel) b) ekonomického oddělení. (6 tel. čísel)

Souhrny a agregační funkce Která telefonní čísla jsou sdílena více jak 4 zaměstnanci? (4) SELECT Telefon, COUNT(Telefon) FROM Zamestnanci GROUP BY Telefon HAVING ( COUNT(Telefon) > 4 ) ; HAVING dovoluje přidružit podmínku spojenou s agregační funkcí.

Souhrny a agregační funkce Kteří zaměstnanci mají ve správě 1 nebo 5 zařízení? SELECT Jmeno, Prijmeni, COUNT(InvCislo) FROM Zamestnanci, Zarizeni WHERE ( EvCislo = Spravuje ) GROUP BY Jmeno, Prijmeni HAVING ( COUNT(InvCislo) = 1 OR COUNT(InvCislo) = 5 ) ; (4 osoby) HAVING dovoluje přidružit podmínku spojenou s agregační funkcí.

Zkuste sami Souhrny a agregační funkce Ve kterých odděleních je průměrný plat vyšší než 20.000? (Ekonomické, Obchodní) Která oddělení mají více jak 5 zaměstnanců bez telefonu? (Montáž, Výdej)

Vnořený dotaz s jedním výsledkem Vypište zaměstnance s nadprůměrným platem ve firmě. (30 osob) SELECT Jmeno, Prijmeni, Plat FROM Zamestnanci WHERE ( Plat > ( SELECT AVG(Plat) FROM Zamestnanci ) ); Vnořený dotaz - výsledkem je jedno číslo = průměrný plat ve firmě

Vnořený dotaz s více výsledky Vypište zaměstnance, jejichž plat je shodný s nejnižším platem libovolného oddělení firmy. (24 osob) SELECT Jmeno, Prijmeni, Plat FROM WHERE Zamestnanci ORDER BY Plat ; ( Plat IN ( SELECT MIN(Plat) ) ) FROM Vnořený dotaz - výsledkem je více čísel = min. plat v každém oddělení OddeleniFirmy, Zamestnanci WHERE ( CisloOddeleni = Oddeleni ) GROUP BY NazevOddeleni

Dotaz nad dotazem Kolik telefonních čísel je sdíleno více jak 4 zaměstnanci? (4) SELECT COUNT( vysledekdotazu.telefon) FROM ( SELECT Telefon FROM Zamestnanci GROUP BY Telefon HAVING ( COUNT(Telefon) > 4 ) ) vysledekdotazu ; Alias / náhradní název tabulky. (nemusí být zadán)

Zkuste sami Vnořený dotaz s více výsledky Vypište názvy oddělení, ve kterých nemají konvici ani stůl. (Pozn.: použijte NOT IN) (příjem)

Pro samostudium Kteří zaměstnanci montážního oddělení nastoupili do firmy v období 2. poloviny roku 2009? (15) Vypište, na kterém oddělení je jaká tiskárna. (7) Vypište, kolik zaměstnanců jednotlivých oddělení nemá telefon. (příjem=5) Kolik měsíčně vyplatí na výplatách montážní oddělení? (1.009.000) Kolik stálo zařízení v jednotlivých odděleních? (výdej=8800) Vypište cenu nejlacinějšího a nejdražšího zařízení v jednotlivých odděleních. (obchodní=600; 3800) Stejné jako v předchozím cvičení na dotazy v návrhovém zobrazení.

Děkuji za pozornost.