PODSTAWY SQL Opracowaa mgr in Agnieszka Cwojdziska SQL

  • Slides: 22
Download presentation
PODSTAWY SQL Opracowała: mgr inż. Agnieszka Cwojdzińska

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

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 zakres kolumn wybieranych z tabeli FROM nazwa tabeli; SELECT uczen, egzamin FROM

Instrukcja 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,

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

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

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

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

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

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

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

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

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.

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

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 (Tabela 1), nawet jeśli w tabeli po prawej stronie 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

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

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 egzamin 0

Funkcja COUNT uczen Abacki Babacki Dabacki Iksiński Znudzony klasowka 45 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 80 Iksiński

Funkcja COUNT uczen Kod pocztowy Abacki 45 Babacki 50 Cabacki 100 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

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

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

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

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