Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Základy SQL

Základy práce se SQL – standardizovaným strukturovaným dotazovacím jazykem.

  • Be the first to comment

  • Be the first to like this

Základy SQL

  1. 1. FB: facebook.com/peckadesign TW: @peckadesign ZÁKLADY SQL Lukáš Brázdil
  2. 2. FB: facebook.com/peckadesign TW: @peckadesign
  3. 3. FB: facebook.com/peckadesign TW: @peckadesign
  4. 4. FB: facebook.com/peckadesign TW: @peckadesign
  5. 5. FB: facebook.com/peckadesign TW: @peckadesign TŘÍVRSTVÁ ARCHITEKTURA
  6. 6. FB: facebook.com/peckadesign TW: @peckadesign PREZENTAČNÍ APLIKAČNÍ DATOVÁ
  7. 7. FB: facebook.com/peckadesign TW: @peckadesign DATABÁZE
  8. 8. FB: facebook.com/peckadesign TW: @peckadesign
  9. 9. FB: facebook.com/peckadesign TW: @peckadesign A DATABASE IS AN ORGANIZED COLLECTION OF DATA. https://en.wikipedia.org/wiki/Database
  10. 10. FB: facebook.com/peckadesign TW: @peckadesign TABULKA:)
  11. 11. FB: facebook.com/peckadesign TW: @peckadesign TVORBA DATABÁZE
  12. 12. FB: facebook.com/peckadesign TW: @peckadesign ERD - SCHÉMA RELAČNÍ DATABÁZE
  13. 13. 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é
  14. 14. FB: facebook.com/peckadesign TW: @peckadesign PRIMÁRNÍ VS. CIZÍ KLÍČ
  15. 15. FB: facebook.com/peckadesign TW: @peckadesign VAZBY
  16. 16. FB: facebook.com/peckadesign TW: @peckadesign VAZBY M:N
  17. 17. FB: facebook.com/peckadesign TW: @peckadesign VAZBY M:N
  18. 18. FB: facebook.com/peckadesign TW: @peckadesign DBMS
  19. 19. FB: facebook.com/peckadesign TW: @peckadesign
  20. 20. FB: facebook.com/peckadesign TW: @peckadesign Jakou zvolit licenci: http://www.tomas-solar.com/blog/webinar/co-nevite-o-licencich-placenem-supportu-oracle/
  21. 21. FB: facebook.com/peckadesign TW: @peckadesign SQL http://www.w3schools.com/sql/
  22. 22. FB: facebook.com/peckadesign TW: @peckadesign HISTORIE? WIKIPEDIA.ORG:)
  23. 23. FB: facebook.com/peckadesign TW: @peckadesign
  24. 24. FB: facebook.com/peckadesign TW: @peckadesign • DDL • DML • DQL
  25. 25. FB: facebook.com/peckadesign TW: @peckadesign PAUZA?
  26. 26. FB: facebook.com/peckadesign TW: @peckadesign WORKSHOP http://lukasbrazdil.com/workshop/
  27. 27. FB: facebook.com/peckadesign TW: @peckadesign • phpMyAdmin • Adminer Jednoduchý online DB simulátor: http://sqlfiddle.com/ APLIKACE PRO SPRÁVU DB
  28. 28. FB: facebook.com/peckadesign TW: @peckadesign DATOVÝ TYP • varchar (pro text) • int (pro číslo)
  29. 29. FB: facebook.com/peckadesign TW: @peckadesign DDL (DATA DEFINITION LANGUAGE) • CREATE • ALTER • DROP http://www.w3schools.com/sql/
  30. 30. FB: facebook.com/peckadesign TW: @peckadesign DML (DATA MANIPULATION LANGUAGE) • INSERT • UPDATE • DELETE
  31. 31. FB: facebook.com/peckadesign TW: @peckadesign DQL (DATA QUERY LANGUAGE) • SELECT http://www.w3schools.com/sql
  32. 32. FB: facebook.com/peckadesign TW: @peckadesign TESTOVACI DB link na: http://lukasbrazdil.com/workshop/
  33. 33. FB: facebook.com/peckadesign TW: @peckadesign SELECT SELECT * FROM firma [další nepovinné příkazy];
  34. 34. FB: facebook.com/peckadesign TW: @peckadesign SELECT - PODMÍNKY např. SELECT * FROM firma WHERE id=1; WHERE
  35. 35. FB: facebook.com/peckadesign TW: @peckadesign SELECT - ŘAZENÍ např. SELECT * FROM firma ORDER BY id DESC ORDER BY
  36. 36. FB: facebook.com/peckadesign TW: @peckadesign SELECT - OMEZENÍ např. SELECT * FROM firma LIMIT 2 [OFFSET 1] LIMIT
  37. 37. FB: facebook.com/peckadesign TW: @peckadesign SELECT DISTINCT např. SELECT DISTINCT jmeno FROM zamestnanec
  38. 38. 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
  39. 39. FB: facebook.com/peckadesign TW: @peckadesign SELECT - FUNKCE SELECT jmeno, count(jmeno) pocet FROM zamestnanec GROUP BY jmeno GROUP BY
  40. 40. FB: facebook.com/peckadesign TW: @peckadesign SELECT - FUNKCE SELECT jmeno, count(jmeno) pocet FROM zamestnanec GROUP BY jmeno HAVING jmeno=“Jan” HAVING
  41. 41. 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
  42. 42. 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:)
  43. 43. FB: facebook.com/peckadesign TW: @peckadesign SELECT Duplicitní sloupce a zkrácené názvy tabulka_a a ANEBO tabulka_a as a
  44. 44. FB: facebook.com/peckadesign TW: @peckadesign SELECT - SPOJOVÁNÍ TABULEK • horizontální • vertikální
  45. 45. FB: facebook.com/peckadesign TW: @peckadesign SELECT - SPOJOVÁNÍ TABULEK (HORIZONTÁLNÍ) JOIN
  46. 46. FB: facebook.com/peckadesign TW: @peckadesign SELECT - JOIN
  47. 47. FB: facebook.com/peckadesign TW: @peckadesign SELECT - (INNER) JOIN SELECT * FROM zamestnanec z JOIN firma f ON f.id=z.id_firmy
  48. 48. FB: facebook.com/peckadesign TW: @peckadesign SELECT - LEFT JOIN SELECT * FROM pozice p LEFT JOIN zamestnanec z ON p.id=z.id_pozice
  49. 49. FB: facebook.com/peckadesign TW: @peckadesign SELECT - RIGHT JOIN SELECT * FROM zamestnanec z RIGHT JOIN firma f ON f.id=z.id_firmy
  50. 50. FB: facebook.com/peckadesign TW: @peckadesign SELECT - SPOJOVÁNÍ TABULEK (VERTIKÁLNÍ) UNION A UNION ALL
  51. 51. 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
  52. 52. FB: facebook.com/peckadesign TW: @peckadesign SELECT subselect SELECT * FROM zamestnanec WHERE mzda>(SELECT AVG(mzda) FROM zamestnanec)
  53. 53. 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?
  54. 54. FB: facebook.com/peckadesign TW: @peckadesign DÍKY ZA POZORNOST

×