480 likes | 568 Views
Adam Pelc a-41 Artur Kowalczyk a-41 create database Kola_lancuchowe; use Kola_lancuchowe; create table tablica1( Numer_lancucha char(4) unique not null primary key, re float not null, r_min float not null, s_max float not null, re1 float not null )type=InnoDB; insert into tablica1
E N D
Adam Pelc a-41 Artur Kowalczyk a-41 create database Kola_lancuchowe; use Kola_lancuchowe; create table tablica1( Numer_lancucha char(4) unique not null primary key, re float not null, r_min float not null, s_max float not null, re1 float not null )type=InnoDB; insert into tablica1 values ('S32',21.6,5.1,6.4,2.5), ('S42',26.7,6.4,6.4,5.1), ('S45',29.2,6.4,10.2,5.1), ('S52',29.2,6.4,8.9,5.1), ('S55',29.2,6.4,8.9,5.1), ('S55X',30,7.6,9.3,5.1), ('S62',35.6,7.6,7.6,5.1), ('S77',34.2,7.6,14,5.1), ('S88',43.2,10.2,15.2,7.6); create table kola_lan_obrobione( Numer_lancucha char(4) not null references tablica1(Numer_lancucha), bf1 float not null, rx float not null, ba float not null, ds float not null, h_max float not null, ra float not null default(1.3) )type=InnoDB; PRACA DOMOWA Gratuluje chętnym! Fukcje w SQL
Struktura zapytania (kwerendy) • SELECT lista atrybutów wyświetlanych w odpowiedzi *, ALL wskazuje że wszystkie atrybuty mają być wyświetlone • FROMtabela lub tabele do których jest zapytanie • WHEREwarunki wyboru; Fukcje w SQL
Tabela Persons ( ahv, surname, forename, phone, fax, email, www) SELECT surname, email FROM Persons WHERE surname='Smith' AND forename='John' ; ze zmianą nazw atrybutów SELECT surname AS name, email AS contact FROM Persons WHERE surname='Smith' AND forename='John' ; Fukcje w SQL
Eliminacja duplikatów SQL nie eliminuje duplikatów, chyba że użyjemy instrukcji DISTINCT Persons ( ahv, surname, forename, phone, fax, email, www) SELECT DISTINCT forename FROM Persons WHERE surname='Smith' ; Fukcje w SQL
Porównywanie ciągów znakowych SELECT surname, forename, email FROM Persons WHERE email LIKE '%@inf.ethz.ch' ; SELECT surname, forename, email FROM Persons WHERE surname < 'N' ; Fukcje w SQL
System aliasów • System aliasów można wykorzystać, • jeśli chcemy porównywać zmienne z tej samej tabeli. • jest wygodny, gdy chcemy uniknąć dwuznaczności • używając powtarzających się nazw atrybutów. • SELECT p1.surname, p2.surname • FROM Persons p1, Persons p2 • WHERE p1.phone = p2.phone Fukcje w SQL
Połączenie typu ‘każdy z każdym’ Fukcje w SQL
Grouping Specify list of grouping attributes in GROUP BY clause Aggregate operations in SELECT clause applied within groups Persons ( ahv, surname, forename, phone, fax, email, www) SELECT forename, COUNT(ahv) FROM Persons GROUP BY forename ; Fukcje w SQL
Funkcje agregujące COUNT - zwraca liczbę rekordów spełniających warunek SUM - zwraca sumę wartości w kolumnie AVG - znajduje wartość średnią w kolumnie MAX - zwraca wartość maksymalną MIN - zwraca wartość minimalną VARIANCE - zwraca kwadrat odchylenia standardowego STDDEV - podaje odchylenie standardowe Fukcje w SQL
Funkcje arytmetyczne ABS - wartość bezwzględna CEIL - zaokrągla w górę FLOOR - zaokrągla w dół COS, COSH, SIN, SINH, TAN, TANH - funkcje trygonometryczne EXP, LN, LOG - funkcje logarytmiczne MOD - reszta z dzielenia SQRT - pierwiastek kwadratowy POWER - podnoszenie liczby do potęgi Fukcje w SQL
Funkcje znakowe CHR - zwraca znak odpowiadający podanej liczbie w kodzie ASCII CONCAT - łączy dwa łańcuchy znakowe UPPER - wyświetla WIELKIMI LITERAMI LOWER - wyświetla małymi literami LPAD - dodaje tekst z lewej strony RPAD - dodaje tekst z prawej strony LTRIM - usuwa wybrany znak z tekstu z lewej strony RTRIM - usuwa wybrany znak z tekstu z prawej strony SUBSTR - wyjmuje ciąg znaków ze łańcucha Fukcje w SQL
Frazy w SQL WHERE - wybiera rekordy z tabeli STARTING WITH - działa podobnie jak LIKE(wyrażenie) ORDER BY - określa kolumnę sortującą wyniki Group BY - pozwala wyświetlać i obliczać informacje dotyczące kilku rekordów HAVING - wybiera dane zwracane przez „GROUP BY’ Fukcje w SQL
Więcej niż jedna funkcja agregująca... Ile pieniędzy dostali odbiorcy i ile czeków wystawiono Fukcje w SQL
Ile pieniędzy dostali odbiorcy na takie same okazje Fukcje w SQL
Ile czeków wystawiono na tego samego odbiorcę: Fukcje w SQL
Fraza WHERE wybiera REKORDY spełniające określone kryterium Fraza HAVING umożliwia wybieranie ROZWIĄZAŃ spełniających określone kryterium Fraza WHERE nie działa z funkcjami agregującymi !!! Fukcje w SQL
Persons ( ahv, surname, forename, phone, fax, email, www) SELECT forename, COUNT(ahv) FROM Persons GROUP BY forename HAVING surname < 'N' ; ) ; Fukcje w SQL
Pytania, niejasności, powtórki Fukcje w SQL
Joins Persons ( ahv, surname, forename, phone, fax, email, www) Organisations ( orgname, phone, fax, email, www) Worksfor ( ahv, orgname) SELECT orgname, surname, forename FROM Persons, Worksfor, Organisations WHERE Persons.ahv=Worksfor.ahv AND Worksfor.orgname=Organisations.orgname Fukcje w SQL
JOIN operations SQL standard also supports various JOIN operators r1 CROSS JOIN r2 cross product r1 JOIN r2 ON p theta-join with condition p r1 NATURAL JOIN r2 natural join Fukcje w SQL
JOIN operations ... Various forms of OUTERJOIN operations also supported r1 NATURAL FULL OUTER JOIN r2 r1 NATURAL LEFT OUTER JOIN r2 r1 NATURAL RIGHT OUTER JOIN r2 r1 FULL OUTER JOIN r2 ON p r1 LEFT OUTER JOIN r2 ON p r1 RIGHT OUTER JOIN r2 ON p Fukcje w SQL