CODE CARROTS

SQL

 

 

edycja 1.  Warszawa 2015

Link do prezentacji

http://goo.gl/yLQJcs

Funkcje

Rozszerzenie

Funkcje

  • Działają analogicznie jak funkcje w np. Excelu, językach programowania czyli

  • Przyjmują od 0, 1, 2 lub więcej wartości jako dane wejściowe i

  • Zwracają jedną wartość jako wynik

  • Poznaliście już LENGTH()

Przykładowe funkcje

--CONCAT() funkcja sklejająca napisy
SELECT CONCAT('Hello',' ','World!');
SELECT CONCAT(first_name,' ',last_name) FROM actor;

--NOW() zwraca aktualny czas
SELECT NOW();

--SUBSTR() wycinanie napisu z napisu
SELECT SUBSTR('abcdefghijklmnzopqrstuvwxyz',1,8);
SELECT SUBSTR(first_name,1,1), SUBSTR(last_name,1,1) 
FROM actor;

--DATE_ADD() do manipulacji datami
SELECT DATE_ADD(NOW(), INTERVAL 1 QUARTER);
SELECT last_update, DATE_ADD(last_update, INTERVAL -1 DAY) 
FROM film;

Funkcje - zadanie

1. Napisz zapytanie, które zwróci inicjały aktorów jako jednokolumnowy rezultat

DISTINCT

Przypomnienie

Jak ograniczyć wynik do unikalnych zestawów wartości?

Lista różnych dat wydań filmów

SELECT DISTINCT
	release_year 
FROM film;

Jak ograniczyć wynik do unikalnych zestawów wartości?

Lista ratingów filmów

SELECT DISTINCT
	rating
FROM film;

DISTINCT - Zadanie

2. Napisz listę imion aktorów, które pojawiają się w opisach jakichkolwiek filmów zawartych w bazie.

Potem dla porównania popraw zapytanie tak, żeby zwracało tylko unikalne imiona.

Funkcje agregujące

Funkcje agregujące

  • zliczają wartości z wielu wierszy do pojedyńczego wyniku

  • niemal zawsze pomijają wartości null

SUM()

SELECT
	SUM(amount)
FROM payment;

Suma wszystkich płatności

MIN(), AVG(), MAX()

SELECT 
	MIN(amount),
	AVG(amount),
	MAX(amount) 
FROM payment;

Najmniejsza, średnia, największa kwota

MIN(), MAX()

SELECT 
	MIN(city),
	MAX(city)
FROM city ci
INNER JOIN country co
  ON ci.country_id = co.country_id
  AND co.country = 'Myanmar';

Alfabetycznie pierwsze i ostatnie miasto w Myanmarze

COUNT(), COUNT(DISTINCT)

SELECT 
	COUNT(city),
	COUNT(DISTINCT city)
FROM city;

Lista miast i unikalnych nazw miast

COUNT(), COUNT(DISTINCT)

SELECT 
	COUNT(null),
        COUNT(*),
	COUNT(1),
	COUNT(DISTINCT last_name)
FROM actor;

Liczba aktorów i unikalnych nazwisk

Funkcje agregujące

- zadanie

3. Na dwa różne sposoby policz średnią płatność dla pracownika o imieniu 'Mike'

Made with Slides.com