Język SQL
Funkcjonowanie współczesnych systemów relacyjnych baz danych oparte jest głównie na języku SQL (Structured Query Language, strukturalny język zapytań). SQL jest językiem czwartej generacji, który został w ciągu wielu lat opracowany przez grupę badawcza IBM. Stał się międzynarodowym standardem dla języków baz danych i występuje obecnie w produktach większości liczących się firm, zajmujących się sprzedażą oprogramowania dla baz danych. Ponieważ SQL jest językiem standaryzowanym, dostęp do danych jest możliwy przez wiele różnych platform sprzętowych, w tym komputery osobiste, mikrokomputery i duże komputery. Inna korzyść związana z SQL polega na tym, że takie oprogramowanie jak arkusze kalkulacyjne czy procesory tekstów może importować dane z baz danych opartych na SQL. Polecenia SQL maja postać zbliżoną do zdań w języku angielskim i są stosowane w celu uzyskania dostępu do danych i sterowania operacjami w bazie danych. Użytkownik mający małe doświadczenie w przetwarzaniu danych lub niemający go wcale, może szybko nauczyć się podstawowych konstrukcji SQL, a ekspert od przetwarzania danych może znaleźć w tym języku pełny zestaw potrzebnych mu narzędzi. Zatem jest to język, którego używają zarówno zwykli użytkownicy, jak i fachowcy od przetwarzania danych.
SQL jest językiem strukturalnym, zdefiniowanym za pomocą reguł składniowych. Występują w nim trzy rodzaje poleceń. Pierwszy to polecenia języka definiowania danych, które umożliwiają tworzenie obiektów bazy danych, takie jak tabela i perspektywy. Drugi rodzaj to polecenia języka operowania danymi, które są używane do wydobywania informacji z bazy danych, usuwania informacji z bazy danych i dodawania ich do niej. Trzeci rodzaj to polecenia języka administrowania danymi, które służą do przyznawania i odwoływania uprawnienia dostępu do bazy danych. Użytkownik może korzystać z poleceń SQL w sposób interakcyjny bądź za pomocą takiego interfejsu jak zapytanie przez przykład ( QBE ).
Zasady ogólne:
• Język SQL nie rozróżnia małych i wielkich liter w słowach kluczowych i nazwach (baz danych, tabel, indeksów i kolumn). Legalne są nazwy zbudowane ze znaków alfanumerycznych, niezaczynające się od cyfry. Nie są dozwolone nazwy składające się wyłącznie z cyfr. Nie należy w nazwach stosować znaków przestankowych i „@";
• Każda komenda SQL kończy się średnikiem (;) i może składać się z wielu linii tekstu;
• Wartości napisowe podaje się tak: „napis", lub tak: „napis";
• Wartości liczbowe zapisuje się w „zwykły"„ sposób, ewentualnie z kropką dziesiętną lub w notacji wykładniczej (np. -32032.6809e+10), gdy chodzi o wartości zmiennoprzecinkowe.
Język SQL jest przeznaczony dla wielu różnych grup odbiorców:
- zwykłych użytkowników
- ekspertów od przetwarzania danych
- twórców programów użytkowych (aplikacji)
- administratorów baz danych
- kadry kierowniczej
- personelu centrum informacji i dla wielu innych
Kiedy używa się SQL, wszystkie dane są dostępne za pomocą standardowego interfejsu użytkownika. Użytkownicy i komputery komunikują się jednym i tym samym językiem. Ze względu na stosowanie SQL zmniejsza się czas szkolenia potrzebnego przy zmianie miejsca pracy i systemu przez pracownika. SQL może być użyty jako standardowe narzędzie umożliwiające dostęp do danych w różnorodnych środowiskach z różnym sprzętem komputerowym i różnymi systemami operacyjnymi.
Składnię języka SQL dzieli się na trzy typy:
• DML (Data Manipulation Language)
• DCL (Data Control Language)
• DDL (Data Definition Language)
DML to język stosowany przez wszystkich użytkowników bazy danych. Służy on do wybierania i manipulowania danymi znajdującymi się w bazie. Za jego pomocą, można dodawać, usuwać, wybierać czy uaktualniać dane. Komendami do tego służącymi są najczęściej:
• SELECT- wydobywa dane z tabel
• UPDATE- uaktualnia dane w tabeli
• DELETE- kasuje dane z tabeli
• INSERT INTO- wprowadza dane do tabeli
DCL to część języka SQL stosowana przez administratorów bazy danych. Służy ona do zapewnienia bezpieczeństwa dostępu do danych znajdujących się w bazie. Za jego pomocą można na przykład nadawać czy odbierać uprawnienia poszczególnym użytkownikom czy całym grupom.
DDL czyli język definiowania struktur danych jest wykorzystywany do utrzymywania struktury bazy danych. Dotyczy więc obiektów i poleceń jakie można na nich wykonywać.
Najbardziej popularnymi poleceniami tego języka są:
• CREATE TABLE- tworzy nową tabelę
• ALTER TABLE- zmienia istniejącą tabelę
• DROP TABLE- kasuje istniejącą tabelę
• CREATE INDEX- tworzy indeks
• DROP INDEX- usuwa indeks
Podstawowy blok zapytań SQL
• Za pomocą polecenia SELECT uzyskujemy informacje z bazy.
• Polecenie SELECT składa się co najmniej z klauzuli SELECT i klauzuli FROM.
• W klauzuli SELECT wymieniamy interesujące nas kolumny.
• W klauzuli FROM wskazujemy, skąd pobrać dane.
Operatory relacyjne
Istnieje sześć operatorów relacyjnych w SQL:
• = Równy
• <> lub != Nierówny
• < Mniejszy
• > Większy
• <= Mniejszy lub równy
• >= Większy lub równy
Słowo WHERE jest używane do określania, że tylko niektóre wiersze tabeli mają być wyświetlane. Mają być wyświetlane bazując na kryteriach przedstawionych w klauzuli WHERE.
Operator AND łączy dwa lub więcej warunków i wyświetla wiersz tylko wtedy, gdy dane w tym wierszu spełniają wszystkie przedstawione warunki.
Operator OR łączy dwa lub więcej warunków, ale zwraca wiersz, jeżeli dowolny z nich (warunków) jest spełniony. Operatory AND i OR można łączyć ze sobą.
Używanie LIKE powoduje, że wyświetlają się nazwiska osób zaczynające się na podaną przez nas literę np."L". WHERE Nazwisko LIKE „L%". Znak procenta (%) jest użyty do przedstawienia dowolnego znaku (cyfry, litery) lub do zestawu znaków, które mogą pojawić się po „L". Aby znaleźć tych, których nazwiska kończą się na „L", używa się „%L". Aby znaleźć osoby, które mają „L" w środku nazwiska, używa się „%L%". Znak „%" może być używany zamiast dowolnych innych znaków w określonej pozycji, w stosunku do podanych znaków (tu np. znaku „L"). Polecenie NOT LIKE wyświetli wiersze, które nie odpowiadają temu opisowi.
Przykłady:
1. Wyświetl osoby, które nie znają języka niemieckiego i znają język angielski.
SELECT Nazwisko, [Data zatr], Niemiecki_biegle, Angielski_biegle
FROM Pracownicy
WHERE Niemiecki_biegle=No AND Angielski_biegle=Yes;
2. Wyświetl osoby, których zarobki są większe lub równe 1000zł i mniejsze lub równe 1350zł.
SELECT Nazwisko, Imię, Ulica, Kod, Miasto, [Data zatr], Niemiecki_biegle, Angielski_biegle, Zarobki, Data_urodz
FROM Pracownicy
WHERE Zarobki>=1000 AND Zarobki<=1350;
3. Wyświetl osoby, które przepracowały 5 lat i nie ukończyły 40 lat.
SELECT Nazwisko, Imię, Ulica, Kod, Miasto, [Data zatr], Niemiecki_biegle, Angielski_biegle, Zarobki, Data_urodz
FROM Pracownicy
WHERE year(date())-year(Data_urodz)<40;
4. Wyświetl osoby, które urodziły się w czerwcu i ich nazwiska zaczynają się na literę B.
SELECT Nazwisko, Imię, Ulica, Kod, Miasto, [Data zatr], Niemiecki_biegle, Angielski_biegle, Zarobki, Data_urodz
FROM Pracownicy
WHERE month([Data zatr])=6 And Nazwisko Like „B*";
5. Wyświetl osoby, które zostały zatrudnione w czerwcu w 1987r.
SELECT Nazwisko, Imię, Ulica, Kod, Miasto, [Data zatr], Niemiecki_biegle, Angielski_biegle, Zarobki, Data_urodz
FROM Pracownicy
WHERE year([Data zatr])=1987;
6. Wyświetl osoby, które przepracowały powyżej 5 tyś. Dni.
SELECT Nazwisko, Imię, Ulica, Kod, Miasto, [Data zatr], Niemiecki_biegle, Angielski_biegle, Zarobki, Data_urodz
FROM Pracownicy
WHERE date()-[Data zatr]>5000;