SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
FB: facebook.com/peckadesign TW: @peckadesign
ZÁKLADY SQL
Lukáš Brázdil
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
TŘÍVRSTVÁ ARCHITEKTURA
FB: facebook.com/peckadesign TW: @peckadesign
PREZENTAČNÍ
APLIKAČNÍ
DATOVÁ
FB: facebook.com/peckadesign TW: @peckadesign
DATABÁZE
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
A DATABASE IS AN ORGANIZED
COLLECTION OF DATA.
https://en.wikipedia.org/wiki/Database
FB: facebook.com/peckadesign TW: @peckadesign
TABULKA:)
FB: facebook.com/peckadesign TW: @peckadesign
TVORBA DATABÁZE
FB: facebook.com/peckadesign TW: @peckadesign
ERD - SCHÉMA RELAČNÍ DATABÁZE
FB: facebook.com/peckadesign TW: @peckadesign
NORMÁLNÍ FORMY
https://cs.wikipedia.org/wiki/Normalizace_datab%C3%A1ze
0. NF 1. NF
hodnoty je možní rozdělit hodnoty jsou nedělitelné
FB: facebook.com/peckadesign TW: @peckadesign
PRIMÁRNÍ VS. CIZÍ KLÍČ
FB: facebook.com/peckadesign TW: @peckadesign
VAZBY
FB: facebook.com/peckadesign TW: @peckadesign
VAZBY M:N
FB: facebook.com/peckadesign TW: @peckadesign
VAZBY M:N
FB: facebook.com/peckadesign TW: @peckadesign
DBMS
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
Jakou zvolit licenci: http://www.tomas-solar.com/blog/webinar/co-nevite-o-licencich-placenem-supportu-oracle/
FB: facebook.com/peckadesign TW: @peckadesign
SQL
http://www.w3schools.com/sql/
FB: facebook.com/peckadesign TW: @peckadesign
HISTORIE?
WIKIPEDIA.ORG:)
FB: facebook.com/peckadesign TW: @peckadesign
FB: facebook.com/peckadesign TW: @peckadesign
• DDL
• DML
• DQL
FB: facebook.com/peckadesign TW: @peckadesign
PAUZA?
FB: facebook.com/peckadesign TW: @peckadesign
WORKSHOP
http://lukasbrazdil.com/workshop/
FB: facebook.com/peckadesign TW: @peckadesign
• phpMyAdmin
• Adminer
Jednoduchý online DB simulátor: http://sqlfiddle.com/
APLIKACE PRO SPRÁVU DB
FB: facebook.com/peckadesign TW: @peckadesign
DATOVÝ TYP
• varchar (pro text)
• int (pro číslo)
FB: facebook.com/peckadesign TW: @peckadesign
DDL (DATA DEFINITION
LANGUAGE)
• CREATE
• ALTER
• DROP
http://www.w3schools.com/sql/
FB: facebook.com/peckadesign TW: @peckadesign
DML (DATA MANIPULATION
LANGUAGE)
• INSERT
• UPDATE
• DELETE
FB: facebook.com/peckadesign TW: @peckadesign
DQL (DATA QUERY LANGUAGE)
• SELECT
http://www.w3schools.com/sql
FB: facebook.com/peckadesign TW: @peckadesign
TESTOVACI DB
link na: http://lukasbrazdil.com/workshop/
FB: facebook.com/peckadesign TW: @peckadesign
SELECT
SELECT * FROM firma [další nepovinné příkazy];
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - PODMÍNKY
např. SELECT * FROM firma WHERE id=1;
WHERE
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - ŘAZENÍ
např. SELECT * FROM firma ORDER BY id DESC
ORDER BY
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - OMEZENÍ
např. SELECT * FROM firma LIMIT 2 [OFFSET 1]
LIMIT
FB: facebook.com/peckadesign TW: @peckadesign
SELECT
DISTINCT
např. SELECT DISTINCT jmeno FROM zamestnanec
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - AGREGAČNÍ FUNKCE
AVG() - Returns the average value
COUNT() - Returns the number of rows
FIRST() - Returns the first value
LAST() - Returns the last value
MAX() - Returns the largest value
MIN() - Returns the smallest value
SUM() - Returns the sum
např. SELECT AVG(mzda) FROM zamestnanec
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - FUNKCE
SELECT jmeno, count(jmeno) pocet FROM zamestnanec GROUP BY jmeno
GROUP BY
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - FUNKCE
SELECT jmeno, count(jmeno) pocet FROM zamestnanec GROUP BY jmeno HAVING
jmeno=“Jan”
HAVING
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - SKALÁRNÍ FUNKCE
UCASE() - Converts a field to upper case
LCASE() - Converts a field to lower case
LENGTH() - Returns the length of a text field
ROUND() - Rounds a numeric field to the number
NOW() - Returns the current system date and time
např. SELECT jmeno, LENGTH(jmeno) delka_jmena FROM zamestnanec
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - KOMENTÁŘE
Dají se dělat komentáře?
#dají
nenápadný znak užitečný např. při SQL injection:)
FB: facebook.com/peckadesign TW: @peckadesign
SELECT
Duplicitní sloupce a zkrácené názvy
tabulka_a a ANEBO tabulka_a as a
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - SPOJOVÁNÍ TABULEK
• horizontální
• vertikální
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - SPOJOVÁNÍ
TABULEK (HORIZONTÁLNÍ)
JOIN
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - JOIN
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - (INNER) JOIN
SELECT * FROM zamestnanec z JOIN firma f ON f.id=z.id_firmy
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - LEFT JOIN
SELECT * FROM pozice p LEFT JOIN zamestnanec z ON p.id=z.id_pozice
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - RIGHT JOIN
SELECT * FROM zamestnanec z RIGHT JOIN firma f ON f.id=z.id_firmy
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - SPOJOVÁNÍ TABULEK (VERTIKÁLNÍ)
UNION A UNION ALL
FB: facebook.com/peckadesign TW: @peckadesign
SELECT - UNION, UNION ALL
SELECT * FROM zamestnanec2 z2 RIGHT JOIN pozice p ON z2.id_pozice=p.id
UNION
SELECT * FROM zamestnanec2 z2 LEFT JOIN pozice p ON z2.id_pozice=p.id
FB: facebook.com/peckadesign TW: @peckadesign
SELECT
subselect
SELECT * FROM zamestnanec WHERE mzda>(SELECT AVG(mzda) FROM zamestnanec)
FB: facebook.com/peckadesign TW: @peckadesign
PŘÍKLADY
Kolik je zaměstnanců v tabulce zaměstnanec?
Kolik zaměstnanců má každá z firmem?
Průměrná mzda v Praze?
FB: facebook.com/peckadesign TW: @peckadesign
DÍKY ZA POZORNOST

Weitere ähnliche Inhalte

Andere mochten auch

Jak se Megapixelu vyplatil responzivní design
Jak se Megapixelu vyplatil responzivní designJak se Megapixelu vyplatil responzivní design
Jak se Megapixelu vyplatil responzivní design
PeckaDesign.cz
 

Andere mochten auch (9)

PeckaDesign Academy - Responzivní design
PeckaDesign Academy - Responzivní designPeckaDesign Academy - Responzivní design
PeckaDesign Academy - Responzivní design
 
Vyjednávání PeckaDesign Academy
Vyjednávání  PeckaDesign AcademyVyjednávání  PeckaDesign Academy
Vyjednávání PeckaDesign Academy
 
5 kroků jak na úspěšný redesign aneb jak se vyhnout údolí smrti
5 kroků jak na úspěšný redesign aneb jak se vyhnout údolí smrti5 kroků jak na úspěšný redesign aneb jak se vyhnout údolí smrti
5 kroků jak na úspěšný redesign aneb jak se vyhnout údolí smrti
 
Využití OpenRefine při automatizaci PPC kampaní
Využití OpenRefine při automatizaci PPC kampaníVyužití OpenRefine při automatizaci PPC kampaní
Využití OpenRefine při automatizaci PPC kampaní
 
Personalizace inzerátů pomocí web miningu
Personalizace inzerátů pomocí web mininguPersonalizace inzerátů pomocí web miningu
Personalizace inzerátů pomocí web miningu
 
PPC Camp 2015 Workshop Google Spreadsheets Petr Bureš
PPC Camp 2015 Workshop Google Spreadsheets Petr BurešPPC Camp 2015 Workshop Google Spreadsheets Petr Bureš
PPC Camp 2015 Workshop Google Spreadsheets Petr Bureš
 
Jak se Megapixelu vyplatil responzivní design
Jak se Megapixelu vyplatil responzivní designJak se Megapixelu vyplatil responzivní design
Jak se Megapixelu vyplatil responzivní design
 
PPC pro začátečníky
PPC pro začátečníkyPPC pro začátečníky
PPC pro začátečníky
 
Bashop.cz případová studie Marketing Festival
Bashop.cz případová studie Marketing FestivalBashop.cz případová studie Marketing Festival
Bashop.cz případová studie Marketing Festival
 

Mehr von PeckaDesign.cz

Mehr von PeckaDesign.cz (20)

Péhápkaři v Pecce: Naše cesta k read-modelu – Vojtěch Buba –18. 5. 2022
Péhápkaři v Pecce: Naše cesta k read-modelu – Vojtěch Buba –18. 5. 2022Péhápkaři v Pecce: Naše cesta k read-modelu – Vojtěch Buba –18. 5. 2022
Péhápkaři v Pecce: Naše cesta k read-modelu – Vojtěch Buba –18. 5. 2022
 
Péhápkaři v Pecce: Jak zrefaktorovat letitou aplikaci a zároveň začít na zele...
Péhápkaři v Pecce: Jak zrefaktorovat letitou aplikaci a zároveň začít na zele...Péhápkaři v Pecce: Jak zrefaktorovat letitou aplikaci a zároveň začít na zele...
Péhápkaři v Pecce: Jak zrefaktorovat letitou aplikaci a zároveň začít na zele...
 
WebTop100 Case study MEGAPIXEL – Redesign spuštěný proti pravidlům
WebTop100 Case study MEGAPIXEL – Redesign spuštěný proti pravidlůmWebTop100 Case study MEGAPIXEL – Redesign spuštěný proti pravidlům
WebTop100 Case study MEGAPIXEL – Redesign spuštěný proti pravidlům
 
Péhápkaři v Pecce: Sbohem PeckaCI, vítej Github Actions – Jakub Englický –27....
Péhápkaři v Pecce: Sbohem PeckaCI, vítej Github Actions – Jakub Englický –27....Péhápkaři v Pecce: Sbohem PeckaCI, vítej Github Actions – Jakub Englický –27....
Péhápkaři v Pecce: Sbohem PeckaCI, vítej Github Actions – Jakub Englický –27....
 
Péhápkaři v Pecce: Podpora PHP8 v Kdyby/Redis a Kdyby/RabbitMQ – Václav Čevel...
Péhápkaři v Pecce: Podpora PHP8 v Kdyby/Redis a Kdyby/RabbitMQ – Václav Čevel...Péhápkaři v Pecce: Podpora PHP8 v Kdyby/Redis a Kdyby/RabbitMQ – Václav Čevel...
Péhápkaři v Pecce: Podpora PHP8 v Kdyby/Redis a Kdyby/RabbitMQ – Václav Čevel...
 
Péhápkaři v Pecce: Půl roku na cestách jako digitální nomád – Jan Kadeřábek –...
Péhápkaři v Pecce: Půl roku na cestách jako digitální nomád – Jan Kadeřábek –...Péhápkaři v Pecce: Půl roku na cestách jako digitální nomád – Jan Kadeřábek –...
Péhápkaři v Pecce: Půl roku na cestách jako digitální nomád – Jan Kadeřábek –...
 
Péhápkaři v Pecce: Vývoj vlastního 'ORM' – Václav Čevela – 20. 11. 2019
Péhápkaři v Pecce: Vývoj vlastního 'ORM' – Václav Čevela – 20. 11. 2019Péhápkaři v Pecce: Vývoj vlastního 'ORM' – Václav Čevela – 20. 11. 2019
Péhápkaři v Pecce: Vývoj vlastního 'ORM' – Václav Čevela – 20. 11. 2019
 
Tvorba nových vstupních stránek z pohledu SEO
Tvorba nových vstupních stránek z pohledu SEO Tvorba nových vstupních stránek z pohledu SEO
Tvorba nových vstupních stránek z pohledu SEO
 
Péhápkaři v Pecce: pd/forms – Petr Klobás – 16. 10. 2019
Péhápkaři v Pecce: pd/forms – Petr Klobás – 16. 10. 2019Péhápkaři v Pecce: pd/forms – Petr Klobás – 16. 10. 2019
Péhápkaři v Pecce: pd/forms – Petr Klobás – 16. 10. 2019
 
Péhápkaři v Pecce: Za hranicemi DateTime – Jiří Pudil – 16. 10. 2019
Péhápkaři v Pecce: Za hranicemi DateTime – Jiří Pudil – 16. 10. 2019Péhápkaři v Pecce: Za hranicemi DateTime – Jiří Pudil – 16. 10. 2019
Péhápkaři v Pecce: Za hranicemi DateTime – Jiří Pudil – 16. 10. 2019
 
Péhápkaři v Pecce: Úvod do monitoringu – Tomáš Kozák – 16. 10. 2019
Péhápkaři v Pecce: Úvod do monitoringu – Tomáš Kozák – 16. 10. 2019Péhápkaři v Pecce: Úvod do monitoringu – Tomáš Kozák – 16. 10. 2019
Péhápkaři v Pecce: Úvod do monitoringu – Tomáš Kozák – 16. 10. 2019
 
Asynchronní programování
Asynchronní programováníAsynchronní programování
Asynchronní programování
 
ElasticSearch Dump
ElasticSearch DumpElasticSearch Dump
ElasticSearch Dump
 
Pokročilá validace síly hesla
Pokročilá validace síly heslaPokročilá validace síly hesla
Pokročilá validace síly hesla
 
Péhápkaři v Pecce: Každodenní problémy s implementací Facebook Api – Marek Hu...
Péhápkaři v Pecce: Každodenní problémy s implementací Facebook Api – Marek Hu...Péhápkaři v Pecce: Každodenní problémy s implementací Facebook Api – Marek Hu...
Péhápkaři v Pecce: Každodenní problémy s implementací Facebook Api – Marek Hu...
 
Péhápkaři v Pecce: Čtyři hlavní příčiny dysfunkčních návyků v týmu – Michal A...
Péhápkaři v Pecce: Čtyři hlavní příčiny dysfunkčních návyků v týmu – Michal A...Péhápkaři v Pecce: Čtyři hlavní příčiny dysfunkčních návyků v týmu – Michal A...
Péhápkaři v Pecce: Čtyři hlavní příčiny dysfunkčních návyků v týmu – Michal A...
 
Péhápkaři v Pecce: Jak si lokálně spustit Travis CI Build – Jakub Englický – ...
Péhápkaři v Pecce: Jak si lokálně spustit Travis CI Build – Jakub Englický – ...Péhápkaři v Pecce: Jak si lokálně spustit Travis CI Build – Jakub Englický – ...
Péhápkaři v Pecce: Jak si lokálně spustit Travis CI Build – Jakub Englický – ...
 
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
 
Péhápkaři v Pecce: Zend Expressive: PSR framework který vás dostane – Jan Kad...
Péhápkaři v Pecce: Zend Expressive: PSR framework který vás dostane – Jan Kad...Péhápkaři v Pecce: Zend Expressive: PSR framework který vás dostane – Jan Kad...
Péhápkaři v Pecce: Zend Expressive: PSR framework který vás dostane – Jan Kad...
 
Péhápkaři v Pecce: Jak na bezpečnostní hlavičky – Marek Humpolík – 23. 1. 2019
Péhápkaři v Pecce: Jak na bezpečnostní hlavičky – Marek Humpolík – 23. 1. 2019Péhápkaři v Pecce: Jak na bezpečnostní hlavičky – Marek Humpolík – 23. 1. 2019
Péhápkaři v Pecce: Jak na bezpečnostní hlavičky – Marek Humpolík – 23. 1. 2019
 

Základy SQL