Politechnika Krakowska im Tadeusza Kościuszki
Wydział Fizyki, Matematyki i Informatyki
Kierunek: Informatyka
studia I stopnia, semestr IV
Podstawy baz danych
Kurs e-learningowy
przeznaczony dla studentów I stopnia
kierunku INFORMATYKA
WYKAAD 8
Język SQL składnia najważniejszych
poleceń
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Polecenie SELECT umożliwia:
Polecenie SELECT umożliwia:
Wykład 8:
Wykład 8:
" wybieranie kolumn oraz wierszy
wybieranie kolumn oraz wierszy
" Å‚Ä…czenie tabel
Å‚Ä…czenie tabel
" grupowanie danych
grupowanie danych
" przeprowadzanie na nich prostych obliczeń
przeprowadzanie na nich prostych obliczeń
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML polecenie SELECT
DML polecenie SELECT
Wykład 8:
Wykład 8:
SELECT [DISTINCT|ALL] { * | [nazwa_kolumny
SELECT DISTINCT|ALL
[AS nowa_nazwa] ] [,...] }
AS
FROM nazwa_tabeli [alias] [,...]
FROM alias
[WHERE warunek]
WHERE
[GROUP BY lista_kolumn] [HAVING warunek]
GROUP BY HAVING
[ORDER BY lista_kolumn]
ORDER BY
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML polecenie SELECT
DML polecenie SELECT
Wykład 8:
Wykład 8:
żð
DISTINCT klauzula, która ma na celu wyeliminowanie z wyniku
zapytania powtarzajÄ…cych siÄ™ wierszy
żð
nazwa_kolumy określa, jakie kolumny i w jakiej postaci mają się
znalezć w wyniku zapytania,
żð
FROM klauzula polecenia SELECT, w której określamy, jakie
tabele i w jaki sposób połączone biorą udział w realizacji zapytania,
żð
WHERE klauzula polecenia SELECT, służąca do określenia
warunków selekcji (warunek selekcji to wyrażenie logiczne
określające, jakie wiersze powinny znalezć się w tabeli wynikowej),
żð
GROUP BY klauzula polecenia SELECT, definiująca sposób
grupowania wykorzystywana z funkcjami agregujÄ…cymi,
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML polecenie SELECT
DML polecenie SELECT
Wykład 8:
Wykład 8:
żð
lista_kolumn określenie kolumn, według których jest realizowana
operacja grupowania,
żð
HAVING klauzula polecenia SELECT, tak zwany opózniony
warunek selekcji, wykorzystywany najczęściej z funkcjami
agregujÄ…cymi),
żð
ORDER BY klauzula polecenia SELECT, w której określamy
sposób uporządkowania wyników zapytania.
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Wyszukiwanie informacji
Wyszukiwanie informacji
Wykład 8:
Wykład 8:
Porównanie - porównuje wartość jednego wyrażenia z
wartością innego
Zakres sprawdza, czy wartość danego wyrażenia znajduje
się w określonym przedziale wartości
Przynależność sprawdza, czy wartość wyrażenia jest taka
Przynależność
sama jak jedna z wartości w podanej grupie
Wzór sprawdza, czy łańcuch znaków zgadza się z
podanym wzorem
Pusty sprawdza, czy kolumna ma pustÄ… (niewiadomÄ…)
wartość
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Wyszukiwanie - przykłady
Wyszukiwanie - przykłady
Wykład 8:
Wykład 8:
Najprostszą postacią polecenia SELECT jest żądanie pobrania
wszystkich danych z wybranej tabeli:
SELECT *
FROM UCZENIOWIE ;
Jako lista kolumn po nazwie w poleceniu SELECT występuje
znak * (gwiazdka), który należy interpretować jako wszystkie
dostępne kolumny z tabeli, której nazwa występuje
w klauzuli FROM
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Wyszukiwanie - przykłady
Wyszukiwanie - przykłady
Wykład 8:
Wykład 8:
Zapytanie to wybranie z całej bazy danych informacji, które
spełnią wymagania realizowanego zadania. Realizacja
zapytań opiera się na trzech podstawowych operacjach
wykonywanych na modelu relacyjnym:
żð
projekcji (zwana także rzutowaniem)
żð
selekcji
żð
Å‚Ä…czenia
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Realizacja zapytań operacja projekcji
Realizacja zapytań operacja projekcji
Wykład 8:
Wykład 8:
żð
Polega na wyborze podzbioru kolumn ze zbioru wszystkich
dostępnych. Wynikiem tej operacji dla danej tabeli jest inna tabela,
w której są dostępne tylko niektóre kolumny z tabeli wyjściowe
żð
Operacja projekcji zmniejsza rozmiar tabeli wyjściowej poprzez
wyeliminowanie kolumn, które w danym momencie nie są nam
potrzebne
SELECT Nazwisko, Imie, DataUrodzenia
FROM UCZNIOWIE
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Realizacja zapytań operacja selekcji
Realizacja zapytań operacja selekcji
Wykład 8:
Wykład 8:
żð
Polega na wyborze podzbioru wierszy ze zbioru wszystkich wierszy
dostępnych w danej tabeli.
żð
Podstawą operacji selekcji jest wyrażenie logiczne, które decyduje,
czy dany wiersz powinien się znalezć w zbiorze wynikowym
żð
Operacja selekcji zmniejsza rozmiar tabeli wyjściowej poprzez
wyeliminowanie wierszy, dla których wyrażenie logiczne nie jest
spełnione
SELECT *
FROM UCZNIOWIE
WHERE Nazwisko LIKE A%
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Operacje selekcji i projekcji
Operacje selekcji i projekcji
Wykład 8:
Wykład 8:
Dzięki połączeniu operacji projekcji i selekcji można wybrać
dowolny podzbiór danych z tabeli wyjściowej
SELECT Nazwisko, Imie, DataUrodzenia
FROM UCZNIOWIE
WHERE Nazwisko LIKE A%
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Operacja złączenia
Operacja złączenia
Wykład 8:
Wykład 8:
żð
Polega na dołączeniu do tabeli wyjściowej kolumn z innej tabeli na
podstawie wartości odpowiedniego wyrażenia logicznego.
żð
W relacyjnych bazach danych operacjÄ™ Å‚Ä…czenia wykonujemy
najczęściej w oparciu o klucz obcy w tabeli wyjściowej i klucz
podstawowy w tabeli dołączanej do tabeli wyjściowej.
żð
Operacja Å‚Ä…czenia sprowadza dane zapisane w wielu tabelach do
postaci jednej tabeli
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Operacja złączenia
Operacja złączenia
Wykład 8:
Wykład 8:
SELECT Nazwisko, Imie, Nazwa
FROM UCZNIOWIE, KLASY
WHERE KLASY.Idkasy=UCZNIOWIE.Idklasy
możliwe jest połączenie operacji projekcji, selekcji
i łączenia, dzięki czemu możemy wybrać dowolny podzbiór
danych zapisanych
w wielu różnych tabelach
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Realizacja zapytań
Wykład 8: Realizacja zapytań
Wykład 8:
żð
W poleceniu SELECT porządkowanie wyniku zapytania można
uzyskać za pomocą dołączonej do zapytania klauzuli ORDER BY.
żð
Aby uporządkować listę uczniów według klasy, a w obrębie danej
klasy alfabetycznie według nazwiska należy dodatkowo użyć słowa
kluczowe ASC lub DESC, które określają rodzaj uporządkowania:
żð
ASC (ascending rosnÄ…co)
żð
DESC (descending malejÄ…co
SELECT Nazwisko, Imie, Pesel, Idklasy
FROM Uczniowie
WHERE Idklasy=1
ORDER BY Nazwisko, Imie DESC
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Realizacja zapytań - przykłady
Wykład 8: Realizacja zapytań - przykłady
Wykład 8:
żð
W poleceniu SELECT porządkowanie wyniku zapytania można
uzyskać za pomocą dołączonej do zapytania klauzuli ORDER BY.
żð
Aby uporządkować listę uczniów według klasy, a w obrębie danej
klasy alfabetycznie według nazwiska należy dodatkowo użyć słowa
kluczowe ASC lub DESC, które określają rodzaj uporządkowania:
żð
ASC (ascending rosnÄ…co)
żð
DESC (descending malejÄ…co
SELECT Nazwisko, Imie, Pesel, Idklasy
FROM Uczniowie
WHERE Idklasy=1
ORDER BY Nazwisko, Imie DESC
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Realizacja zapytań - przykłady
Wykład 8: Realizacja zapytań - przykłady
Wykład 8:
Wyświetl imiona i nazwiska uczniów tak, aby
zaczynały się z wielkiej litery
SELECT INITCAP(Imie) AS "IMIE",
INITCAP(Nazwisko) AS
"NAZWISKO"
FROM UCZNIOWIE;
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Realizacja zapytań - przykłady
Wykład 8: Realizacja zapytań - przykłady
Wykład 8:
Podaj listę uczniów (nazwisko i imię) oraz dane nauczyciela
(nazwisko i imię oraz stopień zawodowy), który wystawił
ocenę i datę wystawienia oceny tym uczniom, którzy w roku
2012 otrzymali z matematyki ocenę 5. Wynik należy
uporządkować malejąco według daty wystawienia oceny
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Realizacja zapytań - przykłady
Wykład 8: Realizacja zapytań - przykłady
Wykład 8:
SELECT UCZNIOWIE.Nazwisko, UCZNIOWIE.Imie AS Uczen,
NAUCZYCIELE.Nazwisko, NAUCZYCIELE.Imie AS Nauczyciel,
OCENY.DataWystawienia, OCENY.Ocena
FROM UCZNIOWIE JOIN OCENY ON
Uczniowie.Iducznia=Oceny.IdUcznia
JOIN NAUCZYCIELE ON
Nauczyciele.IdNauczyciela=Oceny.IdNauczyciela
JOIN PRZEDMIOTY ON
OCENY.Idprzedmiotu=Przedmioty.Idprzedmiotu
WHERE YEAR(DataWystawienia) =2012 AND Ocena=5 AND
PRZEDMIOTY.Nazwa= Matematyka
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Funkcje grupowe
Wykład 8: Funkcje grupowe
Wykład 8:
qð
Zapytania SQL mogą być także wykorzystane do wykonywania obliczeń na
podstawie danych zawartych w tabelach.
qð
Do tego celu służą funkcje agregujące takie jak:
qð
COUNT wyznacza liczbÄ™ wierszy otrzymanych w wyniku zapytania,
qð
SUM sumuje zawartość kolumny (lub wyrażenia obliczonego na
podstawie danych) dla wszystkich wierszy w wyniku zapytania,
qð
AVG oblicza średnią arytmetyczną zawartości kolumny (lub wyrażenia
obliczonego na podstawie danych) dla wszystkich wierszy w wyniku
zapytania,
qð
MIN określa wartość minimalną dla kolumny w wyniku zapytania,
qð
MAX określa wartość maksymalną dla kolumny w wyniku zapytania.
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Funkcje grupowe
Wykład 8: Funkcje grupowe
Wykład 8:
Aby wyznaczyć np. liczbę uczniów w poszczególnych klasach
musimy zastosować dodatkową klauzulę GROUP BY
(grupuj według)
SELECT KLASY.Nazwa, COUNT(*) AS LiczbaUczniow
FROM UCZNIOWIE JOIN KLASY ON
UCZNIOWIE.idklasy=KLASY.idklasy
GROUP BY Klasy.Nazwa
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Funkcje grupowe
Wykład 8: Funkcje grupowe
Wykład 8:
Wyświetl listę uczniów z klasy IIIa oraz ich średnią ocen
otrzymanych w roku 2012
SELECT UCZNIOWIE.Nazwisko, UCZNIOWIE.Imie,
AVG(OCENY.Ocen) AS Srednia
FROM UCZNIOWIE JOIN OCENY ON
UCZNIOWIE.Iducznia=OCENY.IdUcznia
JOIN UCZNIOWIE.Idklasy=KLASY.Idklasy
WHERE YEAR(OCENY.DataWystawienia)=2012 AND
Klasy.Nazwa= IIIa
GROUP BY UCZNIOWIE.Nazwisko, UCZNIOWIE.Imie
ORDER BY Srednia
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Zapytania zawierajÄ…ce uniÄ™
Wykład 8: Zapytania zawierające unię
Wykład 8:
Aby umieścić operator UNION w zapytaniu SQL musisz utworzyć
dwa oddzielne wyrażenia SELECT
SELECT kolumny
FROM tabela
WHERE warunek
UNION
SELECT kolumny
FROM tabela
WHERE warunek
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML modyfikacja danych
Wykład 8: DML modyfikacja danych
Wykład 8:
qð
SQL zawiera trzy polecenia służące do modyfikowania danych
SQL zawiera trzy polecenia służące do modyfikowania danych
przechowywanych w tabelach. SÄ… to:
przechowywanych w tabelach. SÄ… to:
qð
INSERT
INSERT
qð
UPDATE
UPDATE
qð
DELETE
DELETE
qð
Większość aplikacji bazodanowych umożliwia swoim użytkownikom
Większość aplikacji bazodanowych umożliwia swoim użytkownikom
formularze służące do wprowadzania i zmieniania danych w tabelach, co
formularze służące do wprowadzania i zmieniania danych w tabelach, co
eliminuje konieczność wydawania poleceń SQL-owych
eliminuje konieczność wydawania poleceń SQL-owych
qð
SQL-owe polecenie INSERT posiada dwa zastosowania:
SQL-owe polecenie INSERT posiada dwa zastosowania:
qð
umożliwia dopisanie pojedynczego wiersza do dowolnej tabeli
umożliwia dopisanie pojedynczego wiersza do dowolnej tabeli
bazowej
bazowej
qð
można za jego pomocą skopiować jeden lub więcej wierszy z innej
można za jego pomocą skopiować jeden lub więcej wierszy z innej
tabeli
tabeli
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML modyfikacja danych
Wykład 8: DML modyfikacja danych
Wykład 8:
INSERT INTO nazwa tabeli (lista kolumn)
INSERT INTO nazwa tabeli (lista kolumn)
VALUES (lista wartości)
VALUES (lista wartości)
qð
Lista wartości powinna zawierać poprawną wartość dla każdej kolumny
Lista wartości powinna zawierać poprawną wartość dla każdej kolumny
w tabeli, w kolejności w jakiej kolumny te zostały utworzone.
w tabeli, w kolejności w jakiej kolumny te zostały utworzone.
qð
Podczas dopisywania nowego wiersza do tabeli, SZBD sprawdza, czy nie
Podczas dopisywania nowego wiersza do tabeli, SZBD sprawdza, czy nie
została naruszona któraś z reguł integralności.
została naruszona któraś z reguł integralności.
qð
SZBD sprawdza, czy wartość klucza podstawowego jest unikatowa i różna
SZBD sprawdza, czy wartość klucza podstawowego jest unikatowa i różna
od NULL.
od NULL.
qð
Jeśli któryś z tych warunków nie zostanie spełniony, system nie dopisze
Jeśli któryś z tych warunków nie zostanie spełniony, system nie dopisze
wiersza do tabeli, natomiast pojawi się komunikat błędu.
wiersza do tabeli, natomiast pojawi się komunikat błędu.
qð
Jeśli nie chcemy umieszczać wartości we wszystkich kolumnach tabeli,
Jeśli nie chcemy umieszczać wartości we wszystkich kolumnach tabeli,
możemy podać nazwy tych kolumn, do których powinny zostać wpisane
możemy podać nazwy tych kolumn, do których powinny zostać wpisane
dane.
dane.
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML modyfikacja danych
Wykład 8: DML modyfikacja danych
Wykład 8:
INSERT INTO UCZNIOWIE VALUES
(100, Kowalski', Piotr', 25/02/1999', M',99022534567,10);
" Drugim zastosowaniem polecenia INSERT jest kopiowanie
dowolnej liczby wierszy z jednej tabeli do drugiej
" Wiersze, które mają być skopiowane wskazuje się za pomocą
wyrażenia SELECT
INSERT INTO nazwa tabeli
SELECT pełna postać
" Kolumny zwracane przez SELECT muszą odpowiadać tym, z
których składa się tabela docelowa, co do ilości i typu danych
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML modyfikacja danych
Wykład 8: DML modyfikacja danych
Wykład 8:
qð
Polecenie UPDATE operuje na wartościach jednego lub
Polecenie UPDATE operuje na wartościach jednego lub
większej ilości wierszy, w zależności od kryteriów wyboru
większej ilości wierszy, w zależności od kryteriów wyboru
zawartych w klauzuli WHERE
zawartych w klauzuli WHERE
qð
Jeśli WHERE zwróci klika różnych wierszy, wówczas
Jeśli WHERE zwróci klika różnych wierszy, wówczas
wszystkie one zostanÄ… zmodyfikowane przez UPDATE.
wszystkie one zostanÄ… zmodyfikowane przez UPDATE.
qð
Jeśli całkowicie pominiemy klauzulę WHERE wówczas
Jeśli całkowicie pominiemy klauzulę WHERE wówczas
UPDATE wprowadzi modyfikacjÄ™ do wszystkich wierszy
UPDATE wprowadzi modyfikacjÄ™ do wszystkich wierszy
w tabeli
w tabeli
UPDATE nazwa tabeli
SET kolumna1 = nowa wartość,
kolumna2 = nowa wartość, &
WHERE kryteria wyboru wierszy
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML modyfikacja danych
Wykład 8: DML modyfikacja danych
Wykład 8:
Zmień datę urodzenia ucznia Kowalski
Krzysztof na 22/02/2004
UPDATE Uczniowie
SET DataUrodzenia= 22/02/2004
WHERE Nazwisko= Kowalski AND
Imie= Krzysztof
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML modyfikacja danych
Wykład 8: DML modyfikacja danych
Wykład 8:
żð
Wyrażenie DELETE podobnie jak UPDATE odnosi się do
jednego lub większej ilości wierszy wybranych z tabeli na
podstawie określonych kryteriów
żð
DELETE jest operacjÄ… potencjalnie niebezpiecznÄ…, opuszczenie
klauzuli WHERE usunie wszystkie wiersze w tabeli.
żð
Klucze obce można kasować nie martwiąc się o wpływ jaki
operacja ta będzie miała na resztę bazy danych.
DELETE FROM nazwa tabeli
WHERE kryterium wyboru
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
DML modyfikacja danych
Wykład 8: DML modyfikacja danych
Wykład 8:
Jak skasować wiersze, do których odnoszą się wartości kluczy obcych w
innych tabelach?
żð
Czynność podjęta w takim przypadku przez SZBD zależy od ustawień
wybranych w momencie tworzenia danej tabeli.
żð
Standard SQL92 przewiduje cztery opcje dotyczÄ…ce usuwania kluczy
podstawowych, do których odnoszą się klucze obce w innych tabelach:
żð
SET NULL wartości wszystkich kluczy obcych odnoszących się do usuwanego
klucza podstawowego zostanÄ… ustawione na NULL.
żð
SET DEFAULT - wartości wszystkich kluczy obcych odnoszących się do
usuwanego klucza podstawowego zostaną ustawione na pewną wartość
domyślną.
żð
CASCADE po usunięciu wiersza zawierającego klucz podstawowy, usunięte
zostają również wszystkie wiersze odnoszące się do tego klucza
żð
NO ACTION SZBD nie dopuści do usunięcia wiersza, do którego odnoszą się
klucze obce w pozostałych tabelach.
autor: dr inż. Stanisława Plichta
autor: dr inż. Stanisława Plichta
Wyszukiwarka
Podobne podstrony:
Wyklad 7 Jezyk SQL funkcje grupowe tworzenie tabelWyklad 9 Jezyk SQL obsluga struktury?zy?nych indeksy widoki2 Jezyk SQLJezyk SQL podstawy zapytanJęzyk SQL dodawanie rekordów ( dodawanie rekordów sql kurs mysql ) webmade orgJęzyk SQL tworzenie tabel ( tworzenie tabel sql kurs mysql ) webmade orgJęzyk SQL usuwanie rekordów ( usuwanie rekordów delete sql kurs mysql ) webmade orgNajważniejsze polecenia shellaNajważniejsze polecenia shellaĆwiczenie 3 2 Składnia i podstawowe polecenia LinuxaJęzyk SQL aktualizacja rekordów ( aktualizacja rekordów update sql kurs mysql ) webmade orgJęzyk SQL wybieranie rekordów ( mysql?tch row sql kurs mysql ) webmade orgJęzyk SQL czyli jak rozmawiać z bazą danych 90wykład IV biologia molekularna najwazniejsze o laminachNajważniejsze polecenia linux a objasnieniewięcej podobnych podstron