MySQL ÚVOD DO JAZYKA SQL

Slides:



Advertisements
Podobné prezentace
Aplikační a programové vybavení
Advertisements

Pro začátek něco lehčího
KIV/ZIS Cvičení 6 SQL - SELECT.
MS ACCESS - DOTAZY DATABÁZOVÉ SYSTÉMY.
VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4.
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Základy jazyka SQL Jan Tichava
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Opakování Co je výsledkem následujícího prográmku? my $a="kol"; my $b="o"; $a.= $b; $b.= $a; print "a = $a, b = $b\n"; Vkládání speciálních znaků? Uvozovací.
VISUAL BASIC Práce se soubory.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Cvičení 03 SQL Select Ing. Pavel Bednář
Algoritmy I Cvičení č. 2. Cíl hodiny Datové typy a přetypování (int, float, double, bool, char, long, short) Konstanty – Celočíselné Desítkové – 15, 0,
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Vzdělávací materiál / DUMVY_32_INOVACE_02B14 Příkazový řádek: obsah souborů PŘÍKLADY AutorIng. Petr Haman Období vytvořeníLeden 2013 Ročník / věková kategorie3.
ZÁKLADNÍ ŠKOLA PODBOŘANY, HUSOVA 276, OKRES LOUNY
MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA reg. č.: CZ.1.07/1.4.00/ Základní škola, Šlapanice, okres Brno-venkov, příspěvková organizace Masarykovo nám.
Tvorba uživatelských tiskových formulářů
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Jazyk vývojových diagramů
Databáze Tabulky a typy dat VY_32_INOVACE_7B11. Proč datové typy ? Abychom mohli do tabulky vložit data, musíme jednotlivým polím (sloupcům) přiřadit.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Fakulta elektrotechniky a informatiky
Jazyk vývojových diagramů
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
MS ACCESS DOTAZY.
Název sloupce Datový typ Počet znaků Znaková sada Možnost prázdného pole Typ klíče Automatický přírůstek.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Databázové systémy 2 Zkouška – 08:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK3(p_oddeleni_id_from NUMBER, p_oddeleni_id_to NUMBER,
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B16 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy I Cvičení č. 10 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy 2 Zkouška – 12:00. Příklad I - Funkce Vytvořte funkci ZK_TRP_TREND(P_ID_TRPASLIKA IN NUMBER, P_DATUM_OD IN VARCHAR2, P_DATUM_DO.
Informatika II PAA DOTAZOVACÍ JAZYKY
Databázové systémy 2 Zkouška – 8:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK2(p_table_name VARCHAR2, p_min_nuls NUMBER, p_drop.
Aplikační a programové vybavení
Databáze velké množství dat pevně dané struktury
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
MS Excel 2 Martin Kotlík Brno, 20. ledna 2015 Obsah předchozího semináře 1 1.Popis programu Excel 2.Základní dovednosti 3.Typy vkládaných dat 4.Formát.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Základní obeznámení s jazykem SQL Databázové systémy.
Databázové systémy SQL Výběr dat.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Funkce Vytvořte funkci ZK_DIFF_MIN_MAX (P_ZAM_ID NUMBER) RETURN VARCHAR2. Funkce může vracet.
SQL Další dotazy a pohledy Databázové systémy. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ změna měřítka odkaz.
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ odkaz na další lišty.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Vzorové řešení zápočtového testu
Databázové systémy a SQL
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
Optimalizace SQL dotazů
Databázové systémy a SQL
Přednáška 9 Triggery.
Databázové systémy a SQL
Transkript prezentace:

MySQL ÚVOD DO JAZYKA SQL (c) 1999. Tralvex Yeap. All Rights Reserved

PRÁCE S DATY

VKLÁDÁNÍ ZÁZNAMŮ ZE SOUBORU LOAD DATA LOCAL INFILE 'jmeno_souboru' INTO TABLE nazev_tabulky; - příkaz vloží do tabulky "nazev_tabulky" data ze souboru "jmeno_souboru", který je lokálně uložen na PC - př.: LOAD DATA LOCAL INFILE 'nove_knihy.txt' INTO TABLE knihovna FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; - záznamy jsou v uvozovkách, oddělené čárkou a konce řádků máme zakončené odentrováním - pokud je pořadí sloupců v souboru odlišné, musíme je připsat do závorky za název tabulky - modifikátory: .. FIELDS TERMINATED BY 'neco' - znak oddělující jednotlivé záznamy, většinou čárka ',' nebo tabulátor '\t' .. ENCLOSED BY 'neco' - znak uzavírající hodnoty záznamů, většinou uvozovky '"' .. LINES TERMINATED BY 'neco' - znak ukončující řádky, většinou odentrování '\n' .. LOW_PRIORITY - př.: LOAD DATA LOW_PRIORITY LOCAL INFILE... - MySQL uloží data do tabulky až se s ní přestanou všichni pracovat

VKLÁDÁNÍ ZÁZNAMŮ ZE SOUBORU LOAD DATA LOCAL INFILE 'jmeno_souboru' INTO TABLE nazev_tabulky; SOUBOR JE ULOŽEN V ADRESÁŘI NAPŘ. WAMP.

VÝPIS ZÁZNAMŮ DO SOUBORU SELECT * INTO OUTFILE 'nazev_vystupniho_souboru' FIELDS TERMINATED BY ';' FROM nazev_tabulky; SELECT * INTO OUTFILE 'prectene.txt' FIELDS TERMINATED BY ',' FROM knihovna WHERE poznamka='precteno'; SOUBOR SE ULOŽÍ DO ADRESÁŘE NÁZVU DATABÁZE V MYSQL.

UPDATE studenti SET bydliště=null; OBNOVA ZÁZNAMŮ UPDATE nazev_tabulky SET jmeno_sloupce=nova_hodnota WHERE podminka; - př.: UPDATE knihovna SET stran='260' WHERE kniha='Lesnictví'; - u knihy "Lesnictví" jsme upravili počet stran UPDATE studenti SET bydliště=null;

mysqldump --u root --password test lidi > lidi.sql ZÁLOHA DATABÁZE mysqldump --u root --password test lidi > lidi.sql mysqldump --u uživatel --heslo databáze tabulka > soubor.sql

mysqldump -u root test lidi > lidi.sql ZÁLOHA DATABÁZE mysqldump -u root test lidi > lidi.sql SPUŠTĚNÍ EXTERNÍHO SOUBORU MYSQLDUMP

ZÁLOHA DATABÁZE mysqldump zálohování mysql databáze Pro exportování dat z MySQL databáze slouží příkaz mysqldump. mysqldump --opt databaze -p > soubor.sql --opt ... To samé jako --quick --add-drop-table --add-locks --extended-insert --lock-tables. Jedná se o nejrychlejší zálohu co se týká načítání z MySQL serveru. Navíc si nemusíte pamatovat spoustu voleb, stačí si zapamatovat tuto "optimální", a tedy často používanou. mysqldump --no-data databaze -p > soubor_struktury_databaze.sql -d, --no-data ... Nezapisují se pak žádná data. Volba je vhodná v případě uložení pouze struktury tabulek. mysqldump --all-databases > all_databases.sql Záloha všech databází.

VÝPIS ZÁZNAMŮ SELECT pozadavky FROM podminky_vyberu; SELECT pozadavky FROM podminky_vyberu1 UNION SELECT pozadavky FROM podminky_vyberu2; - př.: SELECT autor FROM knihovna; - tento příkaz nám vytáhne z tabulky "knihovna" všechny autory - př.: SELECT autor,kniha FROM knihovna; - tento příkaz nám vytáhne z tabulky "knihovna" všechny autory a knihy - př.: SELECT (2*5/3)+4; - i tohle funguje! - pomocí UNION můžeme spojit výběr z dvou tabulek ("pozadavky" musí být shodné); zavedeno v MySQL 4+ - pomocí UNION ALL budou výstupem i opakující se hodnoty, které UNION standartně nevrací - seznam příkazů a podmínek následuje:

SELECT * FROM knihovna; VYBER VŠE .. * - př.: SELECT * FROM knihovna; - hvězdička nám vytáhne z tabulky "knihovna" všechna data SELECT * FROM knihovna;

VÝBĚR ČÁSTI DAT PODLE PODMÍNKY .. WHERE podminka; - př.: SELECT * FROM knihovna WHERE poznamka='precteno'; - vytáhne všechny informace o knihách které jsou přečtené "precteno" - př.: SELECT kniha FROM knihovna WHERE poznamka='precteno'; - vytáhne názvy knih, které jsou označeny jako přečtené "precteno" - př.: SELECT knihovna.kniha FROM knihovna,cetba WHERE knihovna.kniha=cetba.kniha; - tabulku "knihovna" už známe, zde je navíc tabulka "cetba", která obsahuje informace o přečtených knihách - příklad nám vytáhne názvy knih z knihovny ("knihovna"), které máme v knihovně ("knihovna") a četli jsme je ("cetba")

POROVNÁVACÍ OPERÁTORY .. = a další... - = (rovno), <> (nerovno), < (menší), <= (menší nebo rovno), > (větší), >= (větší nebo rovno) - <=> (rovno; včetně hodnot NULL), != (nerovno; stejné jako <>) .. x BETWEEN x1 AND x2; - určí zda se "x" nachází mezi hodnotami "x1" až "x2" (včetně těchto hodnot) - př.: SELECT * FROM knihovna WHERE rok BETWEEN 1990 AND 2000; - takto vypíšeme informace o knihách z knihovny, které vyšli mezi roky 1990 (včetně) a 2000 (včetně)

POROVNÁVACÍ OPERÁTORY .. x NOT BETWEEN x1 AND x2; - určí zda "x" je mimo hodnoty "x1" až "x2" (včetně těchto hodnot); je to tedy opak k operátoru BETWEEN .. IN (kde_hledat) - hledá hodnoty dle zadaného seznamu - př.: SELECT kniha FROM knihovna WHERE rok IN(2001,2002,2003); - MySQL vypíše knihy z let 2001-2003 - ! v závorce může být i standartní dotaz: SELECT neco FROM tabulka WHERE podminka;

POROVNÁVACÍ OPERÁTORY .. NOT IN - opak IN .. IS NULL; - nulová hodnota - př.: SELECT kniha FROM knihovna WHERE stran IS NULL; - takto zjistíme knihy s nevyplněným políčkem počet stran .. IS NOT NULL - opak nulové hodnoty

POROVNÁVACÍ OPERÁTORY .. LIKE - upřesnění výběru - př.: SELECT kniha FROM knihovna WHERE autor LIKE 'Z%'; - operátor LIKE vybere knihy jejichž autor začíná od Z - procento "%" nahrazuje libovolný počet znaků, podtržítko "_" pouze jeden znak .. NOT LIKE - opak k operátoru LIKE SELECT kniha FROM knihovna WHERE autor LIKE 'Z%';

SEŘAZENÍ .. ORDER BY podminka; - př.: SELECT * FROM knihovna ORDER BY autor,kniha; - vybere z tabulky všechny informace a srovná je vzestupně podle jmen autorů a názvů knih .. ORDER BY podminka DESC; - př.: SELECT * FROM knihovna ORDER BY autor DESC; - srovná výpis podle autorů, tentokrát sestupně .. ORDER BY RAND(); .. ORDER BY RAND(N); - př.: SELECT kniha FROM knihovna WHERE poznamka='neprecteno' ORDER BY RAND() LIMIT 1; - výstupem je jedna nepřečtená kniha náhodně vybraná - zadáním parametru "N" určíme výchozí hodnotu pro výpočet náhodného čísla

SELECT * FROM knihovna ORDER BY autor,kniha; SEŘAZENÍ SELECT * FROM knihovna ORDER BY autor,kniha; SELECT * FROM knihovna ORDER BY autor DESC;

LOGICKÉ OPERÁTORY -výstupem jsou nalezené hodnoty, popřípadě pravdivostní hodnota: "1","true" (pravda) nebo "0","false" (nepravda) .. AND, && - př.: SELECT kniha FROM knihovna WHERE poznamka='neprecteno' AND rok<2000; - AND nám zde vybere nepřečtené knihy vydané před rokem 2000 .. OR, || - př.: SELECT kniha FROM knihovna WHERE poznamka='neprecteno' || poznamka='precteno'; - výstupem jsou všechny nepřečtené a přečtené knihy .. NOT, ! - negace dotazu např. SELECT NOT(1 AND 1); zde je výsledkem 0

KONTROLNÍ FUNKCE .. CASE ... END; - př.: SELECT CASE hledana_hodnota WHEN 1 THEN 'jedna' WHEN 2 THEN 'dva' ELSE 'tri a vice' END; - pokud hledana_hodnota bude 1 vypíše MySQL "jedna", pokud 2 vypíše "dva", v ostatních případech "tri a vice" .. IF(podminka,pravda,nepravda); - př.: SELECT IF(10>9,'ano','ne'); - vypíše "ano" .. IFNULL(podminka,vystup_pri_chybe); - př.: SELECT IFNULL(1/0,'chyba'); - dělíme nulou což je blbost, tak to vypíše "chyba" .. NULLIF(promenna1,promenna2); - vrací promenna1, pokud se promenna1 nerovná promenna2 (v opačném případě vrácí NULL)

MANIPULACE S ČÍSLY ARITMETICKÉ OPERÁTORY přehled operátorů: + (součet), - (odečet), * (součin), / (podíl), % (zbytek po podílu) - př.: SELECT 8%3; - výsledkem je hodnota 2 .. AVG(nazev_sloupce) - spočítá průměr numerických hodnot ve sloupci - př.: SELECT AVG(stran) FROM knihovna; .. COUNT(nazev_sloupce) - spočítá počet hodnot ve sloupci .. COUNT(DISTINCT nazev_sloupce) - spočítá počet jedinečných hodnot ve sloupci

MANIPULACE S ČÍSLY .. GREATEST(hodnota1,hodnota2,hodno...) - př.: SELECT GREATEST(10,3,7,24); - vrátí největší hodnotu (24) - funkce funguje i pro text (při zadání "J","U","N" vrátí U) .. LEAST(hodnota1,hodnota2,hodno...) - př.: SELECT LEAST(10,3,7,24); - vrátí nejmenší hodnotu (3) - funkce funguje i pro text (při zadání "J","U","N" vrátí J)

MANIPULACE S ČÍSLY .. MAX(nazev_sloupce) - př.: SELECT kniha, MAX(stran) FROM knihovna; - příkaz nám najde knihu s nejvyšším počtem stran .. MIN(nazev_sloupce) - opak MAX(nazev_sloupce) .. MOD(delenec,delitel) - vyplivne zbytek po dělení .. ROUND(cislo) - zaokrouhlí zadané "cislo" na celé číslo .. ROUND(cislo,pocet_mist) - zaokrouhlí "cislo" na zadaný počet desetiných .. STD(nazev_sloupce) - spočítá směrodatnou odchylku číselných hodnot ve sloupci .. SUM(nazev_sloupce) - provede součet číselných hodnot ve sloupci

MANIPULACE S TEXTEM .. LENGTH(retezec); - př.: SELECT LENGTH('abeceda'); - funkce vrací délku řetězce; v tomto případě je to 7 .. LOCATE(co_hledat,v_cem,kde_zacit); - př.: SELECT LOCATE('ce','abeceda',1); - hledá řetězec "ce" v řetězci "abeceda" od pozice 1; výsledkem je 4 .. SUBSTRING(retezec,kde_zacit); - př.: SELECT SUBSTRING('abeceda',4); - vypíše řetězec od zadané pozice, tedy "ceda" .. REPLACE(retezec,co_nahradit,cim_nahradit); - př.: SELECT REPLACE('abeceda','abec','nezb'); - nahrazuje části řetězce; vypíše "nezbeda" .. REVERSE(retezec); - př.: SELECT REVERSE('abeceda'); - otáčí řetězce; vypíše "adeceba"

MANIPULACE S TEXTEM .. TRIM(retezec); - př.: SELECT TRIM('  abeceda  '); - oseká řetězec o mezery a vypíše "abeceda" .. TRIM(BOTH retezec1 FROM retezec2); - př.: SELECT TRIM(BOTH 'a' FROM 'abeceda'); - vypíše "beced" .. TRIM(LEADING retezec1 FROM retezec2); - př.: SELECT TRIM(LEADING 'a' FROM 'abeceda'); - vypíše "beceda" .. TRIM(TRAILING retezec1 FROM retezec2); - př.: SELECT TRIM(TRAILING 'a' FROM 'abeceda'); - vypíše "abeced"

MANIPULACE S TEXTEM .. LTRIM(retezec); - př.: SELECT LTRIM('  abeceda  '); - vypíše "abeceda   " .. RTRIM(retezec); - př.: SELECT RTRIM('  abeceda  '); - vypíše "   abeceda" .. UPPER(retezec); .. LOWER(retezec); - př.: SELECT UPPER('abeceda'); - vypíše "ABECEDA" - UPPER převádí písmena zadaného řetězce na velká, LOWER na malá

MANIPULACE S DATUMEM A ČASEM SELECT NOW(); - příkaz vrátí aktuální datum a čas ve tvaru RRRR-MM-DD HH:MM:SS - modifikace SELECT NOW()+0; vrátí tvar RRRRMMDDHHMMSS SELECT CURRENT_DATE(); - aktuální datum (RRRR-MM-DD) SELECT CURRENT_TIME(); - aktuální čas (HH:MM:SS)

MAZÁNÍ ZÁZNAMŮ DELETE FROM nazev_tabulky WHERE podminka; - př.: DELETE FROM knihovna WHERE kniha='Horníkův den'; - příkaz nám vymaže knihu "Horníkův den" z tabulky, tedy celý řádek DELETE FROM nazev_tabulky; - příkaz nám vymaže všechny záznamy v tabulce TRUNCATE nazev_tabulky; - dělá to samé jako předešlý příkaz, ale je rychlejší (smaže tabulku a zase jí založí)

CVIČENÍ DATOVÉ TYPY VOLTE DLE VLASTNÍHO UVÁŽENÍ VYTVOŘTE DATABÁZI FILMŮ S NÁSLEDUJÍCÍMI POLOŽKAMI TABULKY : AUTOMATICKÉ ID – PRIMÁRNÍ KLÍČ NÁZEV FILMU ŽÁNR HLAVNÍ ROLE ROK NATOČENÍ POZNÁMKA DATOVÉ TYPY VOLTE DLE VLASTNÍHO UVÁŽENÍ DATABÁZE BUDE OBSAHOVAT MINIMÁLNĚ 10 POLOŽEK. PODKLADY PRO NAPLNĚNÍ ZÍSKÁTE Z INTERNETU

ÚPRAVY EXISTUJÍCÍ TABULKY PŘÍKLAD : ZMĚNA NÁZVU POLE JMENO NA KRESTNI ALTER TABLE ZAKAZNICI CHANGE JMENO KRESTNI VARCHAR(20); DESCRIBE ZAKAZNICI; DESCRIBE ZAKAZNICI – KONTROLA POLOŽEK

ÚPRAVY EXISTUJÍCÍ TABULKY PŘÍKLAD : ZMĚNA DATOVÉHO TYPU POLE TABULKY (SLOUPCE) ALTER TABLE ZAKAZNICI CHANGE JMENO JMENO VARCHAR(0); DESCRIBE ZAKAZNICI; DESCRIBE ZAKAZNICI – KONTROLA POLOŽEK

ÚPRAVY EXISTUJÍCÍ TABULKY PŘÍKLAD : PŘEJMENOVÁNÍ TABULKY ALTER TABLE ZAKAZNICI RENAME TABULKA_ZAKAZNICI; DESCRIBE ZAKAZNICI – KONTROLA POLOŽEK

ÚPRAVY EXISTUJÍCÍ TABULKY PŘÍKLAD : ODSTRAŇOVÁNÍ TABULEK A SLOUPCŮ DROP název tabulky ALTER TABLE název tabulky DROP název pole; DESCRIBE ZAKAZNICI – KONTROLA POLOŽEK

ÚPRAVY EXISTUJÍCÍ TABULKY PŘÍKLAD : NOVÁ POLE TABULEK ALTER TABLE název tabulky ADD název pole datový typ; DESCRIBE ZAKAZNICI – KONTROLA POLOŽEK

LITERATURA http://mm.gene.cz/ LITERATURA: MASLAKOWSKI, M. – NAUČTE SE mySQL ZA 21 DNÍ