+ All Categories
Home > Data & Analytics > Základy SQL

Základy SQL

Date post: 13-Apr-2017
Category:
Upload: peckadesigncz
View: 796 times
Download: 1 times
Share this document with a friend
54
FB: facebook.com/peckadesign TW: @peckadesign ZÁKLADY SQL Lukáš Brázdil
Transcript
Page 1: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

ZÁKLADY SQL

Lukáš Brázdil

Page 2: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

Page 3: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

Page 4: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

Page 5: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

TŘÍVRSTVÁ ARCHITEKTURA

Page 6: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

PREZENTAČNÍ APLIKAČNÍ

DATOVÁ

Page 7: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

DATABÁZE

Page 8: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

Page 9: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

A DATABASE IS AN ORGANIZED COLLECTION OF DATA.

https://en.wikipedia.org/wiki/Database

Page 10: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

TABULKA:)

Page 11: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

TVORBA DATABÁZE

Page 12: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

ERD - SCHÉMA RELAČNÍ DATABÁZE

Page 13: Základy SQL

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é

Page 14: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

PRIMÁRNÍ VS. CIZÍ KLÍČ

Page 15: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

VAZBY

Page 16: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

VAZBY M:N

Page 17: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

VAZBY M:N

Page 18: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

DBMS

Page 19: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

Page 20: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

Jakou zvolit licenci: http://www.tomas-solar.com/blog/webinar/co-nevite-o-licencich-placenem-supportu-oracle/

Page 21: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SQL

http://www.w3schools.com/sql/

Page 22: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

HISTORIE?WIKIPEDIA.ORG:)

Page 23: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

Page 24: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

• DDL • DML • DQL

Page 25: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

PAUZA?

Page 26: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

WORKSHOP

http://lukasbrazdil.com/workshop/

Page 27: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

• phpMyAdmin • Adminer

Jednoduchý online DB simulátor: http://sqlfiddle.com/

APLIKACE PRO SPRÁVU DB

Page 28: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

DATOVÝ TYP

• varchar (pro text) • int (pro číslo)

Page 29: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

DDL (DATA DEFINITION LANGUAGE)

• CREATE • ALTER • DROP

http://www.w3schools.com/sql/

Page 30: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

DML (DATA MANIPULATION LANGUAGE)

• INSERT • UPDATE • DELETE

Page 31: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

DQL (DATA QUERY LANGUAGE)

• SELECT

http://www.w3schools.com/sql

Page 32: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

TESTOVACI DB

link na: http://lukasbrazdil.com/workshop/

Page 33: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT

SELECT * FROM firma [další nepovinné příkazy];

Page 34: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - PODMÍNKY

např. SELECT * FROM firma WHERE id=1;

WHERE

Page 35: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - ŘAZENÍ

např. SELECT * FROM firma ORDER BY id DESC

ORDER BY

Page 36: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - OMEZENÍ

např. SELECT * FROM firma LIMIT 2 [OFFSET 1]

LIMIT

Page 37: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT

DISTINCT

např. SELECT DISTINCT jmeno FROM zamestnanec

Page 38: Základy SQL

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

Page 39: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - FUNKCE

SELECT jmeno, count(jmeno) pocet FROM zamestnanec GROUP BY jmeno

GROUP BY

Page 40: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - FUNKCE

SELECT jmeno, count(jmeno) pocet FROM zamestnanec GROUP BY jmeno HAVING jmeno=“Jan”

HAVING

Page 41: Základy SQL

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

Page 42: Základy SQL

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:)

Page 43: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT

Duplicitní sloupce a zkrácené názvy

tabulka_a a ANEBO tabulka_a as a

Page 44: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - SPOJOVÁNÍ TABULEK

• horizontální • vertikální

Page 45: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - SPOJOVÁNÍ TABULEK (HORIZONTÁLNÍ)

JOIN

Page 46: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - JOIN

Page 47: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - (INNER) JOIN

SELECT * FROM zamestnanec z JOIN firma f ON f.id=z.id_firmy

Page 48: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - LEFT JOIN

SELECT * FROM pozice p LEFT JOIN zamestnanec z ON p.id=z.id_pozice

Page 49: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - RIGHT JOIN

SELECT * FROM zamestnanec z RIGHT JOIN firma f ON f.id=z.id_firmy

Page 50: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT - SPOJOVÁNÍ TABULEK (VERTIKÁLNÍ)

UNION A UNION ALL

Page 51: Základy SQL

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

Page 52: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

SELECT

subselect

SELECT * FROM zamestnanec WHERE mzda>(SELECT AVG(mzda) FROM zamestnanec)

Page 53: Základy SQL

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?

Page 54: Základy SQL

FB: facebook.com/peckadesign TW: @peckadesign

DÍKY ZA POZORNOST


Recommended