SQL – Structured Query Language (2)

Slides:



Advertisements
Podobne prezentacje
Podział i zastosowanie
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Skrypty, procedury przechowywane i wyzwalane
Bazy danych i inżynieria oprogramowania
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Relacyjny model danych
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
PHP + MySQL część II.
Język SQL ma ciekawe możliwości tworzenia zapytań
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński Instrukcja UPDATE.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
Język SQL – zapytania zagnieżdżone (podzapytania)
Rozdział 2: Język bazy danych - SQL
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 2: Język bazy danych - SQL Proste zapytania.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 9: Język manipulowania danymi DML (Data Manipulation Language)
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 4: Język bazy danych - SQL Połączenia.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 3: Język bazy danych - SQL Funkcje grupowe.
Bazy Danych Wprowadzenie
Relacyjny Model Danych
SQL-owskie szlaki górskie
SQL select kredytobiorca,bank, rodzaj, data_zawarcia, klasyfikacja,kwota, terminzapadalnosci-data_zawarcia iledni from tab_kredyt where (terminzapadalnosci-data_zawarcia)>1095.
POWTÓRZENIE Kontrola integralności danych; dane wymagane;
POWTÓRZENIE Metodologia : Pojęcia:
BD-LAB6 Wojciech Pieprzyca
Wprowadzenie do systemów baz danych
Projektowanie fizycznej bazy danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Odwzorowania relacyjno-obiektowe Hibernate zapytania.
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Język SQL (Structured Query Language) DDL (Data Definition Language)
SQL ("Structured Query Language" - "Strukturalny Język Zapytań"), opracowany przez firmę IBM jest rozwinięciem języka SEQUEL (“Structured English QUEry.
Structured Query Language
OPERACJA DZIELENIA W SQL
SQL – zapytania posumowanie
SQL – Structured Query Language (3)
Przetwarzanie w oknie - nowa siła zapytań
Wykład 4 Prowadzący: dr Paweł Drozda. Trzy typy instrukcji Wstawianie – INSERT INTO Usuwanie – DELETE FROM Aktualizacje - UPDATE dr Paweł Drozda.
Tworzenie bazy danych – mySQL
Modelowanie model związków encji
Delphi i Acad cd.. l_poz := MSpace.Count; Label3.Caption:=IntToStr(l_poz); ent:=Mspace.Item(0); for l_poz := 0 to MSpace.Count-1 do begin; ent:=Mspace.Item(l_poz);
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
SQL - Structured Query Language
Łączenie tabel Odpowiedzi.
KWERENDY ćw. 3.
Wyprowadzanie informacji z bazy danych - kwerendy wybierające Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
PL/SQL – dalsza wędrówka
Temat 1: Strukturalny język zapytań SQL
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Bazy Danych W03: Spójność relacji i JOINy Wojciech St
Bazy Danych W04: JOIN (złączenia) Wojciech St
Autor: Damian Urbańczyk
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Komendy SQL do pracy z danymi
Język SQL – polecenie Select
Relacja (ang.relation) Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do systemu bazy danych informacje na temat.
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Modelowanie model związków encji
Bazy Danych Wprowadzenie
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
„Filtry i funkcje bazodanowe w EXCELU”
1 Instrukcja SELECT : SELECT[DISTINCT  ALL] {*  [wyrażenie_kolumnowe [AS nowa_nazwa]],[…]} FROMNazwaTabeli [alias],[...] [WHEREwarunek_selekcji_wierszy]
Wybieranie wierszy: 1 Warunek WHERE Rodzaje warunków: - liczbowe - liczbowe z zakresu - znakowe.
Podstawy SQL.
Widoki (views) - Perspektywy:
Własności relacji: Baza danych jest zbiorem relacji, o następujących własnościach: każda relacja w bazie danych jest jednoznacznie określona przez swoją.
Zapis prezentacji:

SQL – Structured Query Language (2) Wykład 6 Prowadzący: dr Paweł Drozda

Modyfikacje baz danych Trzy typy instrukcji Wstawianie – INSERT INTO Usuwanie – DELETE FROM Aktualizacje - UPDATE dr Paweł Drozda

Wstawianie (1) INSERT INTO tabela VALUES (wart1, wart2, …, wartn); - polecenie wstawia do tabeli wartości war1, …, warn Ilość wartości = ilość atrybutów relacji Kolejność wartości odpowiada definicji tabeli dr Paweł Drozda

Wstawianie – przykład 1 Tabela studenci(nrIndeksu, nazwisko, imię, adres, rok studiów) INSERT INTO Studenci values(123456, ’Kowal’, ’Stefan’, ‘Akacjowa 4 Łódź’, 5); dr Paweł Drozda

Wstawianie (2) INSERT INTO tabela(pole1, pole2, …,polek) VALUES (wart1, wart2, …, wartk); Do pole1 wstawiana wart1 itd. Liczba pól nie musi być równa liczbie atrybutów relacji dr Paweł Drozda

Wstawianie – przykład 2 Wykorzystana tabela z przykładu 1 INSERT INTO Studenci (rok, nrIndeksu, nazwisko) VALUES(2,321432,’Kuś’); Wynik: 321432 Kuś NULL NULL 2 dr Paweł Drozda

Wstawianie Wstawiane wiersze jako wynik zapytania Przykład: INSERT INTO Studenci (Imie, Nazwisko, rok) SELECT imię, nazwisko,1 from Kandydaci; dr Paweł Drozda

Usuwanie DELETE FROM tabela [WHERE warunek]; Bez warunku – usuwa wszystkie krotki z tabeli Przykłady: DELETE FROM Studenci; DELETE FROM Studenci WHERE rok=5; dr Paweł Drozda

Aktualizacja UPDATE tabela SET nowe wartości [WHERE warunek]; Nowe wartości w postaci atrybut=wartość Zmodyfikowane zostaną krotki spełniające warunek Przykład: UPDATE Studenci SET rok=rok+1 WHERE rok<5; UPDATE Pracownicy SET placa=placa+300 where stanowisko<>’Dyrektor’; dr Paweł Drozda

Wyszukiwanie Wybieranie interesujących informacji z jednej lub wielu relacji Najprostsza postać: SELECT * FROM tabela – zwraca wszystkie krotki z tabeli Po SELECT są wymieniane wybrane atrybuty (* - oznacza wszystkie) Po FROM wymieniane są relacje, których dotyczy zapytanie dr Paweł Drozda

Wyszukiwanie – selekcja SELECT * FROM Tabela WHERE warunek; Zwracane wszystkie krotki spełniające warunek Przykład: PRACOWNICY Id Imię Nazwisko PESEL Pensja 1 Jan Topa 68010333546 1400 2 Monika Stachura 78022212121 3400 3 Michał Posek 87010234567 5400 4 Mara 84081222000 2000 5 Anna Rożek 76012900128 2500 dr Paweł Drozda

Wyszukiwanie - selekcja SELECT * FROM Pracownicy WHERE pensja>3000; Id Imię Nazwisko PESEL Pensja 2 Monika Stachura 78022212121 3400 3 Michał Posek 87010234567 5400 SELECT * FROM Pracownicy WHERE Nazwisko LIKE ‘%ra%’ AND Pensja BETWEEN 1000 AND 2500; Id Imię Nazwisko PESEL Pensja 4 Jan Mara 84081222000 2000 dr Paweł Drozda

Wyszukiwanie - selekcja Porównywanie wartości za pomocą operatorów =,<>,<,>,>=,<=, != Operacje arytmetyczne – podobnie jak na liczbach Operatory logiczne AND, OR i NOT Operatory LIKE, BETWEEN AND, IN dr Paweł Drozda

Wyszukiwanie - selekcja Przykład SELECT * FROM Pracownicy WHERE (imie NOT LIKE ‘%M%’ OR imie IN (‘Jan’,’Monika’)) AND id>=3; Id Imię Nazwisko PESEL Pensja 4 Jan Mara 84081222000 2000 5 Anna Rożek 76012900128 2500 dr Paweł Drozda

Wyszukiwanie – projekcja SELECT pole1, pole2,…,polen FROM Tabela; Wyświetla wybrane atrybuty dla poszczególnych krotek Przykład : SELECT imie, nazwisko FROM Pracownicy; Imię Nazwisko Jan Topa Monika Stachura Michał Posek Mara Anna Rożek dr Paweł Drozda

Wyszukiwanie – aliasy, wyrażenia CONCAT(wyr1,wyr2,…,wyrN) łączy pola w jedno Wyr1 AS Wyr2 – jako nagłówek atrybutu Wyr2 Przykład: SELECT CONCAT(imie, ‘ ‘,nazwisko) FROM Pracownicy WHERE pensja>5000; CONCAT(imie, ‘ ‘,nazwisko) Michał Posek dr Paweł Drozda

Wyszukiwanie – aliasy, wyrażenia Przykład SELECT CONCAT(imie, ‘ ‘,nazwisko) AS Osoba, pensja/20 AS Dniówka FROM Pracownicy WHERE Id!=3 AND pensja>3000; Osoba Dniówka Monika Stachura 170 dr Paweł Drozda

Wyszukiwanie – porządek wyświetlania, usuwanie duplikatów DISTINCT – różne wartości atrybutów ORDER BY pole1 [ASC/DESC], … – ustawia kolejność wyświetlania wyników rosnąco lub malejąco według kolejno wymienionych pól – domyślne ustawienie na rosnąco dr Paweł Drozda

Wyświetlanie - przykład Imię Jan Monika Michał Anna SELECT DISTINCT Imie FROM Pracownicy; SELECT * FROM PRACOWNICY ORDER BY imie, placa DESC; Id Imię Nazwisko PESEL Pensja 5 Anna Rożek 76012900128 2500 4 Jan Mara 84081222000 2000 1 Topa 68010333546 1400 3 Michał Posek 87010234567 5400 2 Monika Stachura 78022212121 3400 dr Paweł Drozda

Wyszukiwanie – ograniczanie liczby wyników Limit n1, [n2]– ogranicza liczbę wypisanych wyników Gdy podana jedna liczba n – wyświetlonych n wyników Select * From Pracownicy Order by imie limit 2; Gdy dwie liczby – pierwsza oznacza początek wypisania, druga liczbę wierszy Select Imie, Nazwisko from Pracownicy limit 3,2; Id Imię Nazwisko PESEL Pensja 5 Anna Rożek 76012900128 2500 4 Jan Mara 84081222000 2000 Id Imię Nazwisko PESEL Pensja 4 Jan Mara 84081222000 2000 5 Anna Rożek 76012900128 2500 dr Paweł Drozda

Funkcje agregujące Każda funkcja działa na zbiorach powstałych poprzez grupowanie względem jakiegoś wyrażenia Dla każdego zbioru zwraca jedną wartość Zadanie „Znaleźć średnią ocen dla każdego studenta” dr Paweł Drozda

Funkcje agregujące EGZAMIN średnia NrIndeksu Przedmiot Ocena 12345 Analiza 3,5 Algebra 4,5 PTO 5 Bazy Danych 54321 4 3 66666 2 NrIndeksu Średnia 12345 4,5 54321 4 66666 2,5 średnia dr Paweł Drozda

Funkcje agregujące, grupowanie AVG – zwraca średnią COUNT – zlicza liczbę wystąpień MIN – zwraca wartość minimalną MAX – zwraca wartość maksymalną SUM – zwraca sumę GROUP BY pole – determinuje według którego pola następuje grupowanie HAVING warunek – ogranicza grupy to tych których wszystkie krotki spełniają nałożony warunek dr Paweł Drozda

Funkcje agregujące przykład SELECT NrIndeksu, AVG(Ocena) AS Średnia FROM Egzamin GROUP BY NrIndeksu; SELECT NrIndeksu, COUNT(Przedmioty) AS ‘Ilosc zdawanych’ FROM Egzamin GROUP BY NrIndeksu ORDER BY NrIndeksu DESC; NrIndeksu Ilosc zdawanych 66666 2 54321 3 12345 4 dr Paweł Drozda

Funkcje agregujące przykład PRACOWNICY Id Imię Nazwisko Stanowisko Miasto Pensja 1 Jan Topa Asystent Toruń 1400 2 Monika Stachura Manager 3400 3 Michał Posek Dyrektor 5400 4 Mara 2000 5 Anna Rożek Olsztyn 2500 SELECT Stanowisko, MIN(Pensja) AS Minimalna, MAX(Pensja) AS Maksymalna FROM Pracownicy GROUP BY Stanowisko HAVING COUNT(distinct Miasto)>=2; - zwróci minimalną i maksymalną Płacę managera – jedyne stanowisko w dwóch różnych miastach dr Paweł Drozda

Łączenie relacji – połączenia wewnętrzne Potrzebne informacje z więcej niż jednej tabeli Rodzaje połączeń CROSS JOIN – iloczyn kartezjański JOIN ON operator równości – połączenie równościowe NATURAL JOIN, JOIN USING – połączenie naturalne JOIN ON dowolny operator – połączenie nierównościowe dr Paweł Drozda

Iloczyn kartezjański Zwraca wszystkie kombinacje krotek z łączonych relacji Przykład: Książki Zamówienia Id Tytuł Cena Wydawca 1 Lalka 47 PWN 2 Potop 34 PTE 3 Szwejk 70 Id IdKsiązki Ilość Data 1 2 08-03-01 3 4 08-02-22 dr Paweł Drozda

Iloczyn kartezjański SELECT Tytuł, Ilość FROM Książki CROSS JOIN Zamówienia; Tytuł Ilość Potop 2 Lalka Szwejk 4 dr Paweł Drozda

Połączenie równościowe Bierze pod uwagę krotki, które spełniają wyrażenie po ON Przykład: SELECT Tytuł, Ilość FROM Książki JOIN Zamówienia ON Książki.id = Zamówienia.IdKsiazki Tytuł Ilość Lalka 2 Szwejk 4 dr Paweł Drozda

Połączenie naturalne Bierze pod uwagę krotki mające tę samą nazwę w obu relacjach Przykład SELECT Tytuł, Ilość FROM Książki NATURAL JOIN Zamówienia; Tytuł Ilość Lalka 2 Potop 4 dr Paweł Drozda

Połączenie nierównościowe Analogicznie do połączenia równościowego tyle, że warunek może być dowolny Przykład: SELECT Tytuł, Ilość FROM Książki JOIN Zamówienia ON Książki.id >= Zamówienia.id; Tytuł Ilość Lalka 2 Potop 4 Szwejk dr Paweł Drozda

Połączenia zewnętrzne Zwracane wszystkie krotki z wybranej relacji LEFT – zwraca wszystkie wystąpienia relacji po lewej stronie połączenia RIGHT - zwraca wszystkie wystąpienia relacji po prawej stronie połączenia FULL – zwraca wszystkie wystąpienia obu relacji SELECT atrybuty FROM tabela1 LEFT|RIGHT|FULL OUTER JOIN tabela2 on warunek| using (atrybut); dr Paweł Drozda

Połączenia zewnętrzne - przykład Książki Zamówienia Id Tytuł Cena Wydawca 1 Lalka 47 PWN 2 Potop 34 PTE 3 Szwejk 70 Id IdKsiązki Ilość Data 1 2 08-03-01 3 4 08-02-22 dr Paweł Drozda

Przykład cd SELECT Tytuł, Cena, Ilość FROM Książki LEFT OUTER JOIN Zamówienia USING (Id); SELECT Tytuł, Cena, Ilość FROM Książki LEFT OUTER JOIN Zamówienia ON Książki.Id = Zamówienia.IdKsiążki; Id Tytuł Cena IdKsiązki Ilość Data 1 Lalka 47 2 08-03-01 Potop 34 3 4 08-02-22 Szwejk 70 NULL Tytuł Cena Ilość Lalka 47 2 Potop 34 NULL Szwejk 70 4 Tytuł Cena Ilość Lalka 47 2 Potop 34 4 Szwejk 70 NULL dr Paweł Drozda

Połączenia zwrotne Łączenie tabeli samej ze sobą Przykład: SELECT p.imie || ‘ ‘ || p.nazwisko as pracownik, s.nazwisko as szef FROM Pracownicy p JOIN Pracownicy s on p.id = s.id_szefa; Zapytanie dla każdego pracownika zwróci nazwisko szefa dr Paweł Drozda

Połączenia zwrotne - przykład Pracownicy p Pracownicy s id imie nazwisko id_szefa 1 Jacek Barcik 2 Anna Baran NULL 3 Tomasz Kwiecień id imie nazwisko id_szefa 1 Jacek Barcik 2 Anna Baran NULL 3 Tomasz Kwiecień id imie nazwisko id_szefa 1 Jacek Barcik 2 Anna Baran NULL Tomasz Kwiecień dr Paweł Drozda

Łączenie wielu relacji Połączenie relacji z wcześniej połączonymi relacjami Przykład: SELECT k.nazwisko as Klient, t.nazwa as Produkt, t.cena * z.ilosc as Suma FROM (Klienci k JOIN Zamowienie z ON k.id_klienta = z.id_klienta) JOIN Towary t ON z.id_towaru = t.id_towaru; dr Paweł Drozda

Wiele relacji - przykład Zamówienia z Towary t Klienci k id Id_towaru Id_klienta ilosc 1 2 3 4 Id_towaru nazwa cena 1 Pączek 1.3 2 Chleb 1.8 3 Masło 4.5 Id_klienta nazwisko 1 Barcik 2 Baran 3 Kwiecień Klient Produkt Suma Barcik Pączek 2.6 Kwiecień 5.2 Chleb 1.8 dr Paweł Drozda