Wprowadzenie do SQL
• SQL - Structured Query Language -strukturalny język zapytań
• Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych
• Powstał w firmie IBM pod koniec lat 70-tych
• Występuje w produktach większości firm produkujących oprogramowanie do zarządzania bazami danych
• Polecenia SQL mają postać podobną do zdań w języku angielskim
• Pomimo prób standaryzacji istnieje szereg różnych dialektów
SQL
• SQL używany jest jako standardowe narzędzie umożliwiające dostęp do danych w różnych środowiskach, z różnym sprzętem komputerowym i różnymi systemami operacyjnymi
• Język SQL jest niewrażliwy na rejestr czcionki, czyli wielkie i małe litery nie są rozróżniane
• SQL zapewnia obsługę:
– zapytań - wyszukiwanie danych w bazie
– operowania danymi - wstawianie, modyfikowanie i usuwanie
– definiowania danych - dodawanie do bazy danych nowych tabel
– sterowania danymi - ochrona przed niepowołanym dostępem
• Użytkownik określa operacje jakie mają być wykonane nie wnikając w to, jak mają być wykonane
• Najprostsza postać zapytań w SQL służy do wybierania rekordów pewnej tabeli, które spełniają określony w zapytaniu warunek
• Taki typ zapytania stanowi odpowiednik operatora selekcji w algebrze relacyjnej
• Takie najprostsze zapytanie, jak zresztą prawie wszystkie zapytania w tym języku, konstruuje się za pomocą trzech słów kluczowych: SELECT, FROM i WHERE
Podstawowe klauzule w SQL
SELECT nazwy_kolumn
FROM nazwa_tabeli
WHERE warunek;
• Pozwalają na wybranie z tabeli określonych kolumn i rekordów spe łniających ustalone warunki czyli pozwalają na realizację rzutowania i selekcji
• Warunek formułowany jest jako złożone wyrażenie porównania
• Przykładowa tabela o nazwie NAZWISKA zawiera kolumny:
– NUMER
– IMIE
– NAZWISKO
– STANOWISKO
– PENSJA
– MIASTO
Klauzule SELECT i FROM
• SELECT - podstawowa klauzula SQL - używana do wyszukiwania danych w tabeli
• Występuje wraz z klauzulą FROM
SELECT *
FROM nazwa-tabeli;
• Gwiazdka oznacza, że należy wyszukać wszystkie kolumny tabeli
• Jest to przykład instrukcji wybierającej całą tabelę
• W klauzuli SELECT zostają określone nazwy kolumn, których wartości, z rekordów spełniających warunek zapytania (formułowany przy pomocy klauzuli WHERE), są dołączane do odpowiedzi
• Klauzula FROM służy do określenia tabeli, której dotyczy zapytanie
Klauzula WHERE
• W klauzuli WHERE formułuje się warunek, który odpowiada warunkowi wyboru (selekcji) w algebrze relacyjnej i który określa ograniczenia, jakie mają spełniać rekordy, aby zostać wybrane w danym zapytaniu
• Jeżeli rekord spełnia te ograniczenia to zostaje dołączony do tabeli wynikowej
• Postać zapytania
SELECT *
FROM nazwa-tabeli
WHERE warunek;
• Klauzula WHERE pozwala na wybranie z tabeli tych wierszy, które spe łniają okre ślone warunki
SELECT *
FROM NAZWISKA
WHERE STANOWISKO = ‘URZEDNIK’;
• Dla podanego przykładu z tabeli zostaną wybrane tylko te rekordy, w których w polu STANOWISKO jest wpisane
‘URZEDNIK’
Formułowanie warunku
• Po słowie kluczowym WHERE występuje wyrażenie warunkowe
• Do zapisu porównywania wartości w języku SQL służy sześć operatorów:
– równy =
– nierówny <>
– mniejszy <
– większy >
– mniejszy lub równy <=
– większy lub równy >=
•
W wyrażeniu mogą występować stałe oraz nazwy kolumn tabel wymienionych w klauzuli FROM
• Dla wartości numerycznych można budować wyrażenia
arytmetyczne korzystając z operatorów + - * / i nawiasów (
)
• Stałe tekstowe w SQL są ujmowane w pojedyncze cudzysłowy
‘Przykład tekstu’
• W wyniku porównania powstaje wartość logiczna TRUE (prawda) lub FALSE (fałsz)
• Wartości logiczne można łączyć w wyrażenia logiczne za pomocą operatorów logicznych AND, OR i NOT
• Priorytet operatorów wykorzystywanych w budowie wyrażeń: operatory porównania, NOT, AND, OR
• Porównywanie tekstów - dwa teksty są równe, jeśli występują w nich kolejno te same znaki
• Przy teście „nierównościowym” tekstów, tzn. przy wykonywaniu porównań takich jak < lub >=, o wartości porównania decyduje, czy kolejne znaki z tekstu z lewej strony są alfabetycznie wcześniejsze, czy dalsze w stosunku do znaków z tekstu umieszczonego po prawej stronie wyrażenia
• Przykłady
Adamski > Adamowicz
Adam < Adamowicz
• Wartości NULL nie podlegają żadnym operacjom porównania, gdyż jest ona traktowana jako wartość nieznana
• SQL umożliwia testowanie pól w poszukiwaniu wartości NULL
• Użycie w klauzuli WHERE zwrotu IS NULL jest wykorzystywane do sprawdzania czy pole zawiera tę wartość
• Zamiast standardowego operatora porównania pojawia się słowo IS
• Słowo NULL nie jest zawarte w cudzysłowie
• Można dokonać przeszukania danych w celu wybrania obiektów posiadających wartości
• W tym celu używa się wyrażenia IS NOT NULL