4 jaké funkce se používají v jazyce sql. Řetězcové funkce SQL - příklady použití. Syntaxe příkazu SELECT a pořadí zpracování
V tomto článku si můžete prohlédnout typy funkcí v jazyce SQL. Funkce mohou být agregované nebo skalární. Začněme ...
POČET ()
POČET ()- funkce, která vrací počet záznamů (řádků) tabulky. Zápis funkce určující sloupec vrátí počet záznamů pro konkrétní sloupec, s výjimkou záznamů NULL. Syntaxe funkce:
COUNT (název_sloupce);
Záznam funkce s maskou "*" vrátí počet všech záznamů v tabulce. Syntax:
POČET (*);
Podívejme se na několik příkladů. Existuje následující tabulka univerzit:
ID | Název univerzity | Studenti | fakulty | profesoři | Umístění | místo |
1 | Státní národní výzkumná univerzita v Permu | 12400 | 12 | 1229 | Perm | psu.ru |
2 | Petrohradská státní univerzita | 21300 | 24 | 13126 | Petrohrad | spbu.ru |
3 | Novosibirská státní univerzita | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
4 | Moskevská státní univerzita | 35100 | 39 | 14358 | Moskva | msu.ru |
5 | Vyšší ekonomická škola | 20335 | 12 | 1615 | Moskva | hse.ru |
6 | Uralská federální univerzita | 57000 | 19 | 5640 | Jekatěrinburg | urfu.ru |
7 | Národní výzkumná jaderná univerzita | 8600 | 10 | 936 | Moskva | mephi.ru |
Příklad 1. Vytiskněte počet záznamů v tabulce pomocí funkce POČET:
VYBRAT POČET (*)
Z univerzit; // vytiskne 7
Příklad 2. Najděte počet univerzit v Moskvě pomocí funkce COUNT:
SELECT COUNT (*) FROM Universities WHERE Location = "Moskva"; // vytiskne 3
AVG ()
AVG ()- funkce, která vrací průměrnou hodnotu sloupce. Tato funkce je použitelná pouze pro číselné sloupce. Syntax:
AVG (název_sloupce);
Podívejme se na příklad. Vezměme si náš univerzitní stůl. Příklad. Najděte průměrný počet studentů pro všechny univerzity pomocí funkce AVG:
VYBERTE AVG (Studenti) Z univerzit; // tiskne 23133
MIN ()
MIN ()- funkce, která vrací minimální hodnotu sloupce. Funkce má následující syntaxi:
MIN (název_sloupce);
Podívejme se na příklad. Vezměme si náš univerzitní stůl. Příklad. Pomocí funkce MIN najděte minimální hodnotu ve sloupci Profesoři:
VYBERTE MIN (profesorů) Z univerzit; // vytiskne 936
MAX ()
MAX ()- funkce, která vrací maximální hodnotu sloupce tabulky. Funkce má následující syntaxi:
MAX (název_sloupce);
Podívejme se na příklad. Vezměme si náš univerzitní stůl. Příklad. Pomocí funkce MAX najděte maximální hodnotu sloupce Studenti:
VYBERTE MAX (Studenti) Z univerzit; // vytiskne 57000
SOUČET ()
SOUČET ()- funkce, která vrací součet hodnot sloupce tabulky. Používá se pouze pro číselné sloupce. Syntaxe funkce:
SUM (výraz);
Parametr VŠECHNO- je výchozí možnost. Počítá se součet všech řádků. Při zadávání parametru ODLIŠNÝ- počítají se pouze jedinečné hodnoty.
Podívejme se na několik příkladů. Vezměme si náš univerzitní stůl. Příklad 1. Pomocí funkce SUM zjistěte v tabulce počet Studentů všech vysokých škol:
VYBERTE SOUČET (Studenti) Z univerzit; // vytiskne 161935
Příklad 2. Pomocí funkce SUM vypočítejte jedinečné hodnoty sloupce Fakulty:
VYBERTE SOUČET (ODLIŠNÉ fakulty) Z univerzit; // zobrazí 117 (ve sloupci Fakulty jsou 2 stejné záznamy, pod ID 1 a 5. Hodnota sloupce pod ID 5 se nesčítá.)
KOLO ()
KOLO ()- funkce pro zaokrouhlování desetinných čísel. Funguje pouze s číselnými sloupci nebo libovolnými reálnými čísly. Syntaxe funkce:
ROUND (výraz, délka);
výraz- název sloupce nebo sloupců a také skutečné číslo. délka- označuje přesnost zaokrouhlení čísla.
Podívejme se na příklad. Vezměme si tabulku Planety:
ID | PlanetName | Poloměr | Sluneční sezóna | Rok zahájení | Mít prsteny | Otvírák |
1 | Mars | 3396 | 687.58 | 1659 | Ne. | Christian Huygens |
2 | Saturn | 60268 | 10759.22 | - | Ano | - |
3 | Neptune | 24764 | 60190.91 | 1846 | Ano | John Couch Adams |
4 | Rtuť | 2439 | 115.88 | 1631 | Ne. | Mikuláš Koperník |
5 | Venuše | 6051 | 243.56 | 1610 | Ne. | Galileo galilei |
Příklad. Zaokrouhlete sloupec SunSeason na jedno desetinné místo pomocí funkce ROUND:
SELECT ROUND (SunSeason, 1) FROM Planet;
UCASE ()
UCASE ()- funkce, která vrací hodnoty sloupce nebo sloupců velkými písmeny. V MS DBMS SQL Server analogem UCASE () je funkce UPPER se stejnou syntaxí:
UCASE (název_sloupce)
Podívejme se na příklad. Vezměme si náš stůl Planety. Příklad. Vytiskněte názvy planet velkými písmeny, které nemají prstence, pomocí funkce UCASE:
SELECT UCASE (PlanetName) FROM Planets WHERE HavingRings = "Ne";
LCASE ()
LCASE ()- funkce, která vrací hodnoty sloupce nebo sloupců malými písmeny. V MS SQL Server DBMS je analogem operátoru SQL LCASE () funkce LOWER se stejnou syntaxí:
LCASE (název_sloupce);
Podívejme se na příklad. Vezměme si náš stůl Planety. Příklad. Použijte funkci LCASE k zobrazení názvů planet s prstenci malými písmeny:
SELECT LCASE (PlanetName) FROM Planets WHERE HavingRings = "Ano";
LEN ()
LEN ()- funkce, která vrací délku hodnoty v poli záznamu. Funkce vyloučí koncové mezery z počítání. Syntax:
LEN (název_sloupce);
Podívejme se na příklad. Vezměme si náš stůl Planety. Příklad. Vytiskněte otvírák a délku názvu planety, kterou objevil, pomocí funkce LEN:
SELECT otvírák, LEN (název planety) FROM planet;
MID ()
MID ()- funkce, která zobrazí určitý počet znaků v textovém poli tabulky. Syntaxe funkce:
MID (název_sloupce, začátek [, délka]);
Parametr Start nastavuje pozici počátečního znaku. Parametr délka nastavuje počet znaků, které se mají odeslat, počínaje pozicí zadanou v parametru start.
Podívejme se na příklad. Vezměme si náš starý univerzitní stůl. Příklad. Zobrazte první 3 znaky názvu města (Location) pomocí funkce MID:
SELECT MID (Umístění, 1, 3) FROM Universities;
NYNÍ ()
NYNÍ ()- funkce, která vrací systémový čas a datum. Syntaxe funkce:
Podívejme se na příklad. Vezměme si náš starý univerzitní stůl. Příklad. Uveďte, kolik studentů aktuálně studuje na jednotlivých univerzitách. pomocí funkce NYNÍ:
SELECT UniversityName, Students, NOW () AS CurDate FROM Universities;
Pro zajištění materiálu postupujte podle příkladu každé funkce sami. Pokud máte nějaké dotazy, pište do komentářů a já je určitě zodpovím.
Základní SQL příkazy by měl znát každý programátor
SQL, neboli Structured Query Language, se používá k manipulaci s daty v relačním databázovém systému (RDBMS). Tento článek bude hovořit o běžně používaných SQL příkazech, které by měl znát každý programátor. Tento materiál je ideální pro ty, kteří si chtějí oprášit své znalosti SQL před pracovním pohovorem. Chcete-li to provést, analyzujte příklady uvedené v článku a zapamatujte si, čím jste prošli ve dvojicích databázemi.
Všimněte si, že některé databázové systémy vyžadují středník na konci každého příkazu. Středník je standardní ukazatel na konec každého příkazu v SQL. Příklady používají MySQL, takže je vyžadován středník.
Nastavení databáze pro příklady
Vytvořte databázi, která demonstruje, jak týmy fungují. Chcete-li pracovat, musíte si stáhnout dva soubory: DLL.sql a InsertStatements.sql. Poté otevřete terminál a zadejte konzolu MySQL pomocí následujícího příkazu (tento článek předpokládá, že MySQL je již v systému nainstalována):
Mysql -u root -p
Poté zadejte své heslo.
Spusťte následující příkaz. Nazvěme databázi „univerzita“:
VYTVOŘIT DATABÁZI univerzita; USE univerzita; ZDROJ Možná budete muset vytvořit omezení pro konkrétní sloupce v tabulce. Při vytváření tabulky můžete nastavit následující omezení: Lze zadat více než jeden primární klíč. V tomto případě získáte složený primární klíč. Vytvořte tabulku "instruktor": CREATE TABLE instruktor (ID CHAR (5), jméno VARCHAR (20) NOT NULL, název_oddělení VARCHAR (20), plat NUMERICKY (8,2), PRIMÁRNÍ KLÍČ (ID), CIZÍ KLÍČ (jméno_odd) REFERENCE oddělení (jméno_oddělení)); Pomocí následujícího příkazu můžete zobrazit různé informace (typ hodnoty, klíč nebo ne) o sloupcích tabulky: POPSAT Při přidávání dat do každého sloupce tabulky nemusíte zadávat názvy sloupců. VLOŽ DO SELECT se používá k načtení dat z konkrétní tabulky: VYBRAT Následující příkaz může zobrazit všechna data z tabulky: VYBERTE * OD Sloupce tabulky mohou obsahovat duplicitní data. Pomocí SELECT DISTINCT získáte pouze neduplikovaná data. VYBERTE ROZDÍL Může být použito klíčové slovo WHERE v SELECT specifikovat podmínky v dotazu: VYBRAT V žádosti mohou být uvedeny následující podmínky: Vyzkoušejte následující příkazy. Věnujte pozornost podmínkám uvedeným v KDE: SELECT * FROM kurz WHERE dept_name = 'Comp. Sci.'; SELECT * FROM kurz WHERE kredity> 3; SELECT * FROM kurz WHERE dept_name = "Comp. Sci." A kredity > 3; Klauzule GROUP BY se často používá s agregačními funkcemi, jako jsou COUNT, MAX, MIN, SUM a AVG k seskupení výstupních hodnot. VYBRAT Zobrazme si počet předmětů pro jednotlivé fakulty: SELECT COUNT (id_kurzu), název_oddělení FROM GROUP BY název_oddělení; Klíčové slovo HAVING bylo přidáno do SQL, protože WHERE nelze použít s agregačními funkcemi. VYBRAT Uveďme seznam fakult s více než jedním kurzem: SELECT COUNT (id_kurzu), název_oddělení FROM kurzu GROUP BY název_oddělení HAVING COUNT (id_kurzu)> 1; ORDER BY se používá k řazení výsledků dotazu v sestupném nebo vzestupném pořadí. ORDER BY seřadí vzestupně, pokud není zadána žádná metoda řazení ASC nebo DESC. VYBRAT Zobrazme seznam kurzů vzestupně a sestupně podle počtu kreditů: VYBERTE * Z kurzu OBJEDNAT PODLE kreditů; VYBRAT * Z kurzu OBJEDNAT PODLE kreditů DESC; BETWEEN se používá k výběru datových hodnot ze zadaného rozsahu. Lze použít číselné a textové hodnoty a také data. VYBRAT Zde je seznam instruktorů, jejichž plat je více než 50 000, ale méně než 100 000: VYBERTE SI * OD instruktora, KDE plat MEZI 50000 A 100000; Operátor LIKE se používá ve WHERE k určení vyhledávacího vzoru pro podobnou hodnotu. V LIKE se používají dva bezplatné operátory: Zobrazme si seznam kurzů, jejichž název obsahuje „do“ a seznam kurzů, jejichž název začíná „CS-“: SELECT * FROM kurzu WHERE nadpis LIKE '% to%'; SELECT * FROM kurzu WHERE course_id LIKE "CS -___"; Pomocí IN můžete zadat více hodnot pro klauzuli WHERE: VYBRAT Zobrazme si seznam studentů z Comp. Sci. fyzika a elektrotechnika angl.: SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Fyzika', 'Elec. Eng.'); JOIN se používá k propojení dvou nebo více tabulek pomocí společných atributů v nich. Obrázek níže ukazuje různé způsoby se připojí v SQL. Všimněte si rozdílu mezi levým vnějším spojením a pravým vnějším spojením: VYBRAT Zobrazíme seznam všech kurzů a příslušné informace o fakultách: SELECT * FROM course JOIN department ON course.dept_name = department.dept_name; Pojďme si uvést všechny požadované kurzy a podrobnosti o nich: SELECT prereq.course_id, title, dept_name, kredity, prereq_id FROM prereq LEFT OUTER JOIN course ON prereq.course_id = course.course_id; Zobrazíme seznam všech kurzů bez ohledu na to, zda jsou povinné nebo ne: SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq RIGHT OUTER JOIN course ON prereq.course_id = course.course_id; View je virtuální SQL tabulka vytvořená spuštěním výrazu. Obsahuje řádky a sloupce a je velmi podobný běžné SQL tabulce. Zobrazení vždy zobrazuje nejnovější informace z databáze. Vytvořme pohled skládající se z kurzů se 3 kredity: Tyto funkce se používají k získání souhrnného výsledku souvisejícího s danými daty. Běžně používané agregační funkce jsou následující: Vnořené poddotazy jsou dotazy SQL, které obsahují klauzule SELECT, FROM a WHERE vnořené do jiného dotazu. Pojďme si najít kurzy, které byly vyučovány na podzim 2009 a na jaře 2010: SELECT DISTINCT id_kurzu FROM sekce WHERE semestr = 'Podzim' AND rok = 2009 AND ID_kurzu IN (SELECT ID_kurzu FROM sekce WHERE semestr = 'Jaro' AND rok = 2010); Funkce jsou speciálním typem příkazů v sadě příkazů SQL a každý dialekt má svou vlastní implementaci sady příkazů. Ve výsledku můžeme říci, že funkce jsou jednoslovné příkazy, které vracejí jedinou hodnotu. Hodnota funkce může záviset na vstupních parametrech, jako v případě funkce, která vypočítává průměr seznamu hodnot v databázi. Mnoho funkcí však nepoužívá žádné vstupní parametry, například funkce, která vrací aktuální systémový čas – CURRENTJ1ME. Standard ANSI podporuje několik užitečných funkcí. Tato kapitola popisuje také tyto funkce Detailní popis a příklady pro každou z platforem. Každá platforma má navíc dlouhý seznam vlastních interních funkcí, které přesahují standard SQL. Tato kapitola poskytuje parametry a popisy všech vnitřních funkcí každé platformy. Většina platforem má navíc možnost vytvářet vlastní funkce. Za dodatečné informace Uživatelsky definované funkce naleznete v pokynech VYTVOŘIT / ZMĚNIT FUNKCI / POSTUP existuje různé způsoby klasifikace funkcí. Následující podčásti popisují důležité rozdíly, které vám pomohou pochopit, jak funkce fungují. Funkce mohou být deterministické a nedeterministické. Deterministická funkce vždy vrací stejný výsledek pro stejnou sadu vstupů. Nedeterministické funkce mohou při různých voláních vracet různé výsledky, i když jsou jim předány stejné vstupní hodnoty. Proč je tak důležité, že se stejným vstupní parametry máš stejné výsledky? To je důležité, protože definuje, jak se funkce používají v pohledech, uživatelsky definovaných funkcích a uložených procedurách. Omezení se liší platformu od platformy, ale někdy lze na těchto objektech použít pouze deterministické funkce. SQL Server může například vytvořit index na výrazu ve sloupci, pokud výraz neobsahuje nedeterministické funkce. Pravidla a omezení na různých platformách se liší, proto při používání funkcí nahlédněte do dokumentace výrobce. Dalším způsobem klasifikace funkcí je, když mohou pracovat pouze s jedním řádkem, s kolekcí hodnot nebo se sadami řádků. Agregační funkce pracují se sbírkou hodnot a vracejí jedinou celkovou hodnotu. Skalární funkce vracejí jednu hodnotu v závislosti na skalárních vstupních argumentech. Některé skalární funkce, například CURRENTJTIME, nevyžadují žádné argumenty. Funkce okna lze považovat za podobné agregovaným funkcím v tom, že mohou fungovat na více řádcích najednou. Rozdíl je v tom, jak jsou tyto řádky specifikovány. Agregační funkce fungují na sadách řádků zadaných v klauzuli GROUP BY. V případě funkcí okna je sada řádků určena při každém volání funkce a různé výzvy funkce v rámci stejného dotazu mohou pracovat s různými sadami řádků. Pokračujeme ve studiu dotazovacího jazyka SQL a dnes o tom budeme mluvit Funkce SQL řetězců... Pokryjeme základní a běžně používané funkce řetězce, jako jsou: SNÍŽIT, LTRIM, VYMĚNIT a další, vše zvážíme samozřejmě na příkladech. VYBERTE jméno || příjmení JAKO FIO Z tabulky Nebo pro oddělení mezerou zadejte ty. dva svislé pruhy spojují dva sloupce do jednoho a abych je oddělil mezerou, vložil jsem mezi ně mezeru ( můžete použít jakýkoli znak, například pomlčku nebo dvojtečku) v apostrofech a také v kombinaci se dvěma svislými pruhy ( Transact-SQL používá + místo dvou svislých pruhů). Další je také velmi užitečná funkce, INITCAP- která vrací hodnotu v řetězci, ve kterém každé slovo začíná velkým písmenem a pokračuje malými písmeny. To je nutné, pokud nedodržujete pravidla vyplňování v konkrétním sloupci a chcete-li zobrazit celou věc krásná forma můžete tuto funkci použít např. v tabulce máte ve sloupci jméno následující tvar: IVAN ivanov nebo petr petrov, tuto funkci využijete. VYBERTE INITCAP (jméno) JAKO FIO Z tabulky A dostanete to takhle. Podobná funkce, pouze vrátí všechny velké znaky, to je HORNÍ. SELECT UPPER (name) AS FIO FROM table Uvažujme ihned inverzní funkci. RPAD- akce a syntaxe jsou stejné jako u LPAD, pouze znaky napravo jsou vycpané ( v LPAD vlevo). SELECT RPAD (jméno, 20, "-") JAKO název FROM tabulky Další je také užitečná funkce v některých případech, LTRIM- tato funkce odstraní znaky zcela vlevo, které určíte. Například máte ve své databázi sloupec „město“, ve kterém je město uvedeno jako „Moskva“, a existují také města, která jsou uvedena jednoduše „Moskva“. Ale musíte zobrazit zprávu pouze ve tvaru "Moskva" bez "g." Stačí zadat nějaký druh vzoru "g." a pokud znaky nejvíce vlevo začínají na „g“, pak se tyto znaky jednoduše nezobrazí. VYBERTE LTRIM (město, "město") JAKO gorod Z tabulky Tato funkce prohledá znaky vlevo, pokud ve vzoru na začátku řetězce nejsou žádné znaky, pak vrátí původní hodnotu buňky a pokud ano, smaže je. Pojďme se také rovnou podívat na inverzní funkci. RTRIM- stejně jako LTRIM, pouze znaky se hledají vpravo. Poznámka! V Transact-SQL funkce RTRIM a LTRIM odstraňují mezery zprava a zleva. Nyní se podíváme na tak zajímavou funkci jako NAHRADIT- vrací řetězec, ve kterém jsou všechny shody znaků nahrazeny vašimi znaky, které určíte. K čemu se to dá použít, máte například ve své databázi sloupce, ve kterých jsou nějaké oddělovací znaky, například "/". Například Ivan / Ivanov, a chcete zobrazit Ivan-Ivanov, pak napište VYBERTE REPLACE (název, "/", "-") Z tabulky a budete mít nahrazení symbolů. Tato funkce nahradí pouze úplnou shodu znaků, pokud například zadáte „-“, tj. bude hledat pouze tři pomlčky a nenahradí každou jednotlivou pomlčku, na rozdíl od další funkce. PŘELOŽIT- funkce řetězce, která nahradí všechny znaky v řetězci znaky, které určíte. Podle názvu funkce můžete hádat, že se jedná o full line feed. Rozdíl mezi touto funkcí a REPLACE je v tom, že nahradí každý vámi zadaný znak, tj. máte tři znaky, řekněme abc a s pomocí TRANSLATE Můžete jej nahradit abc, takže máte a = a, b = b, c = c a podle tohoto principu budou nahrazeny všechny shody znaků. A pokud jste nahradili REPLACE, pak jste hledali pouze úplnou shodu symbolů abc umístěných v řadě. SUBSTR – tuto funkci, vrátí pouze rozsah znaků, který určíte. Jinými slovy, řekněme řetězec 10 znaků a nepotřebujete všech deset znaků, ale řekněme, že potřebujete pouze 3-8 ( od třetího do osmého). Pomocí této funkce to můžete snadno provést. Například máte v databázi identifikátor pevné délky (např. AA-BB-55-66-CC) a každá kombinace znaků něco znamená. A v jednu krásnou chvíli vám bylo řečeno, abyste zobrazili pouze 2 a 3 kombinace znaků, za tímto účelem napište dotaz v následujícím tvaru. SELECT SUBSTR (ident, "4", "8") FROM tabulky ty. vytiskneme všechny znaky, počínaje 4 a končící 8, a po tomto dotazu dostanete toto: Další funkce se také může hodit, je DÉLKA- který pouze počítá počet znaků v řádku. Například potřebujete zjistit, kolik znaků je v každé buňce ve sloupci, řekněme "jméno", v tabulce jako je tato. po této žádosti obdržíte toto. Zde jsme s vámi a prozkoumali jsme základní funkce řetězce SQL. V budoucích článcích budeme pokračovat v našem zkoumání SQL. Naučíme se shrnout. Ne, toto ještě nejsou výsledky učení SQL, ale výsledky hodnot sloupců databázových tabulek. Agregační funkce SQL působí na hodnoty sloupců a vytvářejí jedinou výslednou hodnotu. Nejčastěji používané agregační funkce SQL jsou SUM, MIN, MAX, AVG a COUNT. Je nutné rozlišovat dva případy použití agregačních funkcí. Za prvé, agregační funkce se používají samy o sobě a vracejí jedinou výslednou hodnotu. Za druhé, agregační funkce se používají s klauzulí SQL GROUP BY, to znamená se seskupováním podle polí (sloupců), aby se získaly výsledné hodnoty v každé skupině. Podívejme se nejprve na případy použití agregačních funkcí bez seskupování. Funkce SQL SUM vrací součet hodnot sloupce v databázové tabulce. Lze jej použít pouze na sloupce, jejichž hodnoty jsou čísla. SQL dotazy abyste získali výslednou částku, začněte takto: VYBRAT SOUČET (COLUMN_NAME)... Za tímto výrazem následuje FROM (TABLE_NAME) a poté lze zadat podmínku pomocí klauzule WHERE. Kromě toho lze před názvem sloupce zadat DISTINCT, což znamená, že se budou počítat pouze jedinečné hodnoty. Ve výchozím nastavení se berou v úvahu všechny hodnoty (k tomu můžete konkrétně zadat ne DISTINCT, ale ALL, ale slovo ALL je volitelné). Příklad 1 Existuje databáze společnosti s údaji o jejích divizích a zaměstnancích. Tabulka Zaměstnanci má kromě všeho ještě sloupec s údaji o platech zaměstnanců. Výběr z tabulky je následující (pro zvětšení obrázku na něj klikněte levým tlačítkem myši): Pro získání součtu všech platů použijeme následující dotaz: VYBERTE SOUČTU (plat) ZE zaměstnanců Tento dotaz vrátí 287664,63. A teď . Ve cvičeních již začínáme úkoly komplikovat, přibližovat je těm, se kterými se setkáváme v praxi. Funkce SQL MIN funguje také na sloupcích, jejichž hodnoty jsou čísla a vrací minimum ze všech hodnot ve sloupci. Tato funkce má stejnou syntaxi jako funkce SUM. Příklad 3 Databáze a tabulka jsou stejné jako v příkladu 1. Je třeba zjistit minimální mzdu zaměstnanců oddělení s číslem 42. K tomu sepište následující žádost: Požadavek vrátí hodnotu 10505,90. A znovu svépomocné cvičení... V tomto a některých dalších cvičeních budete potřebovat nejen tabulku Staff, ale také tabulku Org, která obsahuje údaje o divizích společnosti: Příklad 4 Tabulka Org je přidána do tabulky Zaměstnanci, která obsahuje údaje o divizích firmy. Zobrazte minimální počet let odpracovaných jedním zaměstnancem v oddělení se sídlem v Bostonu. Funkce SQL MAX funguje podobně a má podobnou syntaxi, která se používá, když potřebujete určit maximální hodnotu mezi všemi hodnotami ve sloupci. Příklad 5. Je nutné zjistit maximální plat zaměstnanců oddělení s číslem 42. K tomu napište následující žádost: Požadavek vrátí hodnotu 18352,80 Nastal čas cvičení pro sebeřešení. Příklad 6. Opět pracujeme se dvěma tabulkami – Staff a Org. Zobrazte název oddělení a maximální provize získané jedním zaměstnancem v oddělení, které patří do východní divize. Použití JOIN (připojit se ke stolům) . Výše uvedená syntaxe pro dříve popsané funkce platí také pro funkci SQL AVG. Tato funkce vrací průměr všech hodnot ve sloupci. Příklad 7. Databáze a tabulka jsou stejné jako v předchozích příkladech. Předpokládejme, že chcete zjistit průměrné pracovní zkušenosti zaměstnanců oddělení číslo 42. Chcete-li to provést, napište následující dotaz: Výsledkem bude hodnota 6,33 Příklad 8. Pracujeme s jedním stolem – Staff. Vyberte průměrnou mzdu zaměstnanců s praxí 4 až 6 let. Funkce SQL COUNT vrací počet záznamů v databázové tabulce. Pokud v dotazu zadáte SELECT COUNT (COLUMN_NAME) ..., bude výsledkem počet záznamů s výjimkou záznamů, ve kterých je hodnota sloupce NULL (nedefinováno). Pokud jako argument použijete hvězdičku a spustíte dotaz SELECT COUNT (*) ..., výsledkem bude počet všech záznamů (řádků) v tabulce. Příklad 9. Databáze a tabulka jsou stejné jako v předchozích příkladech. Chcete znát počet všech zaměstnanců, kteří dostávají provize. Počet zaměstnanců, jejichž hodnoty sloupce Comm nejsou NULL, vrátí následující dotaz: VYBERTE POČET (Komunikace) OD personálu Výsledkem je 11. Příklad 10. Databáze a tabulka jsou stejné jako v předchozích příkladech. Pokud potřebujete zjistit celkový počet záznamů v tabulce, pak jako argument funkce COUNT použijeme dotaz s hvězdičkou: VYBERTE POČET (*) OD zaměstnanců Výsledkem je 17. V dalším svépomocné cvičení budete muset použít poddotaz. Příklad 11. Pracujeme s jedním stolem – Staff. Zobrazení počtu zaměstnanců v oddělení plánování (Plains). Nyní se podívejme na použití agregačních funkcí ve spojení s klauzulí SQL GROUP BY. Klauzule SQL GROUP BY se používá k seskupení výsledných hodnot podle sloupců databázové tabulky. Stránka má lekci věnovanou tomuto operátorovi samostatně . Příklad 12. Existuje databáze reklamního portálu. Obsahuje tabulku Reklamy, která obsahuje údaje o odeslaných reklamách za daný týden. Sloupec Kategorie obsahuje údaje o velkých kategoriích inzerátů (například Nemovitosti) a Sloupec Díly o menších částech zahrnutých do kategorie (například části Byty a vily jsou součástí kategorie Nemovitosti). Sloupec Jednotky obsahuje údaje o počtu odeslaných inzerátů a sloupec Peníze částku přijatou za odeslání inzerátu. Pomocí příkazu SQL GROUP BY zjistěte množství peněz vydělaných zobrazováním reklam v každé kategorii. Píšeme následující žádost: VYBERTE kategorii, SOUČET (Peníze) JAKO PENÍZE Z Reklamy GROUP BY Category Příklad 13. Databáze a tabulka jsou stejné jako v předchozím příkladu. Pomocí příkazu SQL GROUP BY zjistěte, která část každé kategorie měla nejvíce reklam. Píšeme následující žádost: VYBERTE kategorii, část, MAX (jednotky) JAKO MAXIMUM FROM Ads GROUP BY Category Výsledkem bude následující tabulka: Lze získat celkové a jednotlivé hodnoty v jedné tabulce kombinování výsledků dotazu pomocí operátoru UNION . Relační databáze a jazyk SQLDatabázové příkazy
1. Zobrazte dostupné databáze
ZOBRAZIT DATABÁZE; 2. Vytvoření nové databáze
VYTVOŘIT DATABÁZI; 3. Výběr databáze k použití
POUŽITÍ 4. Import SQL příkazů ze souboru .sql
ZDROJ 5. Odstranění databáze
DROP DATABASE Práce s tabulkami
6. Zobrazení tabulek dostupných v databázi
UKAŽTE TABULKY;
7. Vytvoření nové tabulky
VYTVOŘIT TABULKU Omezení integrity pomocí CREATE TABLE
Příklad
8. Informace o tabulce
9. Přidání dat do tabulky
VLOŽ DO 10. Aktualizace dat tabulky
AKTUALIZACE 11. Odstranění všech dat z tabulky
ODSTRANIT Z 12. Smazání tabulky
SHOP STŮL Příkazy pro vytváření požadavků
13. VYBERTE
14. VYBERTE ROZDÍL
15. KDE
Příklad
16. GROUP BY
Příklad
17. MÍT
Příklad
18. OBJEDNEJTE DO
Příklad
19. MEZI
Příklad
20. LIKE
VYBRAT Příklad
21. IN
Příklad
22. PŘIPOJTE SE
Příklad 1
Příklad 2
Příklad 3
23. Pohled
Tvorba
VYTVOŘIT ZOBRAZENÍ Mazání
POHLED POHLEDEM Příklad
24. Agregační funkce
25. Vnořené poddotazy
Příklad
Typy funkcí
Deterministické a nedeterministické funkce
Agregátní a skalární funkce
Funkce okna
funkce INITCAP
Funkce UPPER
funkce RPAD
Ivan —————-
Sergey-----
Funkce LTRIM
Funkce RTRIM
funkce REPLACE
funkce TRANSLATE
Funkce SUBSTR
Funkce LENGTH - délka řetězce
4
6
7
Funkce SQL SUM
Funkce SQL MIN
Funkce SQL MAX
Funkce SQL AVG
Funkce SQL COUNT
Agregovat funkce pomocí SQL GROUP BY (seskupení)
Kategorie Část Jednotky Peníze
Doprava Motorová vozidla 110
17600
Nemovitost Byty 89
18690
Nemovitost Chatky 57
11970
Doprava Motocykly 131
20960
Stavební materiál Prkna 68
7140
Elektrotechnika TV sety 127
8255
Elektrotechnika Ledničky 137
8905
Stavební materiál Regips 112
11760
Volný čas knihy 96
6240
Nemovitost Domy 47
9870
Volný čas Hudba 117
7605
Volný čas Hry 41
2665