SELECT uczen, egzamin FROM sprawdzian

advertisement
PODSTAWY SQL
Opracowała: mgr inż. Agnieszka Cwojdzińska
SQL (Structured Query Language) służy do tworzenia i
modyfikowania baz danych oraz do umieszczania i pobierania
danych umieszczonych w relacyjnych bazach danych. Jest
językiem uniwersalnym, dzięki czemu praca na różnych
systemach baz danych sprowadza się do wydawania tych
samych lub podobnych komend tzw. zapytań SQL.
Język SQL został zaimplementowany w większości relacyjnych
systemów baz danych (SZBD).
Znajomość składni języka SQL jest niezbędna przy tworzeniu
rozbudowanych kwerend, które trudno jest zaprojektować w
środowisku graficznym.
Język SQL jest wykorzystywany do tworzenia dynamicznych
stron WWW, współpracujących z bazami danych.
Instrukcja SELECT
SELECT zakres kolumn wybieranych z tabeli
FROM nazwa tabeli;
SELECT uczen, egzamin
FROM sprawdzian;
uczen egzamin
Abacki
0
Babacki
80
Cabacki
90
Dabacki
70
Klauzula ORDER BY
SELECT uczen, klasowka, egzamin
FROM sprawdzian
ORDER BY uczen;
SELECT uczen, klasowka, egzamin
FROM sprawdzian
ORDER BY uczen DESC ;
uczen
Abacki
Babacki
Cabacki
Dabacki
uczen
Dabacki
Cabacki
Babacki
Abacki
SELECT uczen, klasowka, egzamin
FROM sprawdzian
ORDER BY uczen ASC, klasowka DESC ;
klasowka
45
50
100
80
klasowka
80
100
50
45
egzamin
0
80
90
70
egzamin
70
90
80
0
Wyrażenia w instrukcji SELECT
WHERE
SELECT uczen, klasowka
FROM sprawdzian
WHERE klasowka>egzamin
ORDER BY uczen DESC;
uczen
Dabacki
Cabacki
Abacki
klasowka
80
100
45
UWAGA! <>, >=, <=, =
Wyrażenia w instrukcji SELECT
WHERE z predykatem LIKE
SELECT *
FROM sprawdzian
WHERE uczen LIKE ”%backi”;
uczen
Cabacki
Babacki
Abacki
klasowka
100
50
45
egzamin
90
80
0
Wyrażenia w instrukcji SELECT
WHERE z predykatem NOT LIKE
SELECT uczen, klasowka, egzamin
FROM sprawdzian
WHERE uczen NOT LIKE ”%cki”;
Wyrażenia w instrukcji SELECT
WHERE z predykatem BETWEEN
SELECT uczen
FROM sprawdzian
WHERE klasowka BETWEEN 50 AND 100;
uczen
Dabacki
Cabacki
Babacki
SELECT uczen
FROM sprawdzian
WHERE klasowka >=50 AND <=100;
klasowka
80
100
50
egzamin
70
90
80
Wyrażenia w instrukcji SELECT
WHERE z operatorem logicznym AND
SELECT [id uczen], klasowka, egzamin
FROM sprawdzian
WHERE klasowka>egzamin AND egzamin>75
ORDER BY uczen;
Wyrażenia w instrukcji SELECT
WHERE z operatorem logicznym AND
SELECT [id uczen], klasowka, egzamin
FROM sprawdzian
WHERE klasowka>egzamin AND egzamin>75
ORDER BY uczen;
Klauzula INNER JOIN … ON
- dokonuje wewnętrznego złączenia tabel (połączenie zawężające) ; wyświetlane są
te rekordy, dla których w polu wspólnym dla dwóch tabel znajdują się takie same
wartości
SELECT Pacjenci.Nazwisko, Pacjenci.Imie, Wizyty.Data_wizyty
FROM Pacjenci INNER JOIN Wizyty ON Pacjenci.[Id_pacjenta] = Wizyty.[Id_pacjenta];
Klauzula INNER JOIN … ON
- dokonuje wewnętrznego złączenia tabel ; wyświetlane są te rekordy, dla których w
polu wspólnym dla dwóch tabel znajdują się takie same wartości
SELECT Pacjenci.Nazwisko, Pacjenci.Imie, Wizyty.Data_wizyty
FROM Pacjenci INNER JOIN Wizyty ON Pacjenci.[Id_pacjenta] = Wizyty.[Id_pacjenta];
SELECT Pacjenci.Nazwisko, Pacjenci.Imie, Wizyty.Data_wizyty
FROM Pacjenci , Wizyty WHERE Pacjenci.[Id_pacjenta] = Wizyty.[Id_pacjenta];
Klauzula LEFT JOIN … ON
- dokonuje lewostronnego złączenia tabel (lewe połączenie rozszerzające);
oznacza to, że w wynikach będą uwzględnione wszystkie rekordy z tabeli
znajdującej się po lewej stronie napisu LEFT JOIN (Tabela1), nawet jeśli w
tabeli po prawej stronie nie ma odpowiadających im wpisów. W takim
przypadku do pól z tabeli tabela 1 dołączone będą pola o wartościach Null
SELECT Pacjenci.Nazwisko, Pacjenci.Imie, Wizyty.Data_wizyty
FROM Pacjenci LEFT JOIN Wizyty ON Pacjenci.[Id_pacjenta] = Wizyty.[Id_pacjenta];
Klauzula DISTINCT
- używamy, gdy chcemy ograniczyć wystąpienia takich samych wartości w kolejnych
rekordach
SELECT Miejscowość FROM Klient WHERE
Miejscowość<>”Poznań” ;
Uruchomienie tej kwerendy spowoduje wyświetlenie informacji, z jakich miejscowości
poza Poznaniem, pochodzą klienci. Nazwa miejscowości pojawi się na liście tyle razy
ilu klientów jest z danej miejscowości.
SELECT DISTINCT Miejscowość FROM Klient
WHERE Miejscowość<>”Poznań” ;
GRUPOWANIE DANYCH
Funkcje agregujące
COUNT (nazwa kolumny) – zwraca liczbę wierszy w grupie
SUM (nazwa kolumny) – zwraca sumę wartości w grupie dla
wskazanej kolumny
AVG - zwraca średnią wartość w grupie dla wskazanej kolumny
MIN - zwraca najmniejszą wartości w grupie dla wskazanej kolumny
MAX - zwraca największą wartości w grupie dla wskazanej kolumny
Funkcja COUNT
uczen
Abacki
Babacki
Dabacki
Iksiński
Znudzony
klasowka
45
50
80
50
80
egzamin
0
80
90
70
80
90
SELECT COUNT (*) AS [LICZBA UCZNIÓW]
Liczba uczniów
FROM sprawdzian;
6
Funkcja COUNT
uczen Kod pocztowy
Abacki
45
Babacki
50
Cabacki
100
Dabacki
Dabacki
80
Iksiński
50
Znudzony
80
SELECT COUNT ([kod pocztowy]) AS [Liczba
uczniów]
Liczba uczniów
FROM Klient;
6
Funkcja SUM
(sumowanie wartości kolumn)
uczen
klasowka
Abacki
45
Babacki
50
Cabacki
100
Dabacki
80
Iksiński
50
Znudzony
80
egzamin
0
80
90
70
80
90
SELECT SUM (klasowka)
FROM sprawdzian;
SELECT SUM (klasowka)
As wynik
FROM sprawdzian;
klasowka
405
wynik
405
Funkcja AVG
(średnia wartości kolumn)
uczen
klasowka
Abacki
45
Babacki
50
Cabacki
100
Dabacki
80
Iksiński
50
Znudzony
80
egzamin
0
80
90
70
80
90
SELECT AVG (klasowka)
FROM sprawdzian;
klasowka
67,5
Funkcja MAX
(MAX wartości kolumn)
uczen
klasowka
Abacki
45
Babacki
50
Cabacki
100
Dabacki
80
Iksiński
50
Znudzony
80
egzamin
0
80
90
70
80
90
SELECT MAX (klasowka)
FROM sprawdzian;
klasowka
100
Funkcja MIN
(MIN wartości kolumn)
uczen
klasowka
Abacki
45
Babacki
50
Cabacki
100
Dabacki
80
Iksiński
50
Znudzony
80
egzamin
0
80
90
70
80
90
SELECT MIN (klasowka) AS [wynik z klasowski]
Wynik z
klasowki
FROM sprawdzian;
45
Download