Professional Documents
Culture Documents
WSIcz III
WSIcz III
WSIcz III
informacyjnych
Wykład IV
SQL – język relacyjnych baz
danych.
4
Język SQL – geneza
5
Język SQL – geneza
6
Język SQL – struktura
7
Język SQL – struktura
8
Język SQL – struktura
9
Język SQL – struktura
10
Język SQL – typy danych (standard)
11
Język SQL – typy danych
12
Język SQL – typy danych (standard)
13
Przykładowa baza danych
14
Przykładowa baza danych
15
Przykładowa baza danych
DEPT
Deptno Int Primary Key numer departamentu
Dname Varchar nazwa departamentu
Loc Varchar lokalizacja (miasto) departamentu
SALGRADE
Grade Int Primary Key numer grupy zaszeregowania
Losal Int minimalna płaca w grupie
Hisal Int maksymalna płaca w grupie
Należy zwrócić uwagę na fakt, że tabela SALGRADE nie jest powiązana więzami
klucz główny – klucz obcy z tabelą EMP, a układ wartości losal i hisal to tylko
„widełki” płac. Aby stwierdzić, w której grupie zarobkowej mieści się czyjaś płaca
(Sal), należy sprawdzić w jaki przedział Losal – Hisal ta płaca trafia.
16
Tabela EMP
18
Instrukcja SELECT
19
Instrukcja SELECT
20
Instrukcja SELECT klauzula SELECT
21
Instrukcja SELECT klauzula FROM
Klauzula FROM definiuje źródła, z których dane będą odczytywane. Mogą nimi
być tabele, widoki i inne instrukcje SELECT. Nazwy tabel, widoków i instrukcji
SELECT (ujętych w okrągłe nawiasy) oddzielane są przecinkami. W tej części
wykładu ograniczamy się tylko do odczytywania danych z pojedynczej tabeli. Odczyt
danych z widoku, z punktu widzenia konstrukcji zapytania, niczym nie różni się od
odczytu z tabeli.
22
Instrukcja SELECT – elementarne przykłady
23
Instrukcja SELECT klauzula ORDER BY
24
Instrukcja SELECT klauzula WHERE
25
Instrukcja SELECT – odczyt z wielu źródeł danych
26
Instrukcja SELECT – odczyt z wielu źródeł danych
Czy ten wynik, jako całość, jest prawdziwy? Raczej nie! Czy zawiera w sobie
prawdziwe informacje? Oczywiście, że tak. Prawdziwymi wierszami wyniku są te,
które łączą nazwisko pracownika z nazwą i lokalizacją tego departamentu, w którym
jest faktycznie zatrudniony. A skoro w wyniku są połączone nazwiska WSZYSTKICH
pracowników z danymi WSZYSTKICH departamentów, stąd prosty wniosek, że wynik
zawiera prawdziwe rekordy. Trzeba je tylko znaleźć.
Każdy rekord w tabeli DEPT zawiera znaczącą wartość Deptno – klucz główny.
Jeżeli pracownik jest zatrudniony w jakimś departamencie, to jego rekord w tabeli
EMP zawiera wartość Deptno, klucz obcy, wskazujący na numer departamentu, w
którym zatrudniony. Zatem aby z wyniku naszego zapytania odczytać rekordy
prawdziwe, należy do polecenia dodać sformułowany powyżej warunek równości
wartości Deptno w obu tabelach:
EMP.Deptno = DEPT.Deptno
Dzięki takiej operacji, z dotychczasowego wyniku zostaną odrzucone te rekordy, w
których EMP.Deptno <> DEPT.Deptno, albo EMP.Deptno jest NULL.
RBD 2013 Opracował Krzysztof Matejewski na podstawie materiałów
Lecha Banachowskiego
27
DDL – Data Definition Language
Pod nazwą DDL rozumiemy podzbiór poleceń języka SQL odpowiedzialnych za operacje na obiektach
bazy danych – tworzenie, usuwanie oraz zmiany ich struktury. W skład DDL wchodzą trzy zestawy poleceń,
rozpoczynające się od słów kluczowych:
CREATE – utwórz nowy obiekt
DROP – usuń istniejący obiekt
ALTER – zmień strukturę istniejącego obiektu
Pod pojęciem obiektu bazy danych będziemy rozumieli tabele, widoki (perspektywy), indeksy,
procedury, wyzwalacze, bazy danych i inne. W tym wykładzie omówione zostaną zagadnienia związane z
operowaniem tabelami. Zagadnieniom związanym z procedurami i innymi obiektami baz danych będzie
poświęcony cykl wykładów w ramach przedmiotu Systemy Baz Danych.
Więzy spójności mogą zostać zadeklarowane bezpośrednio po definicji kolumny, nazywany deklaracją
więzów „w linii”:
Przykład:
Deklarując więzy „poza linią”, poprzez użycie słowa kluczowego CONSTRAINT, możemy nadać więzom
własną nazwę:
Przykład:
Odpowiednio dodanie nowej kolumny do istniejącej tabeli, zmiana typu danych kolumny i usunięcie
kolumny.
ORACLE:
Pod nazwą DML rozumiemy podzbiór poleceń języka SQL odpowiedzialnych za operacje na danych w
strukturze bazy danych – dopisywanie nowych rekordów do tabel w bazie danych, modyfikacja już istniejących
danych, usuwanie rekordów z tabel. Używane są trzy rodzaje poleceń:
W przypadku składni uproszczonej lista wartości musi odpowiadać kolejności i typom danych
wszystkich kolumn tabeli, zgodnie z instrukcją CREATE TABLE.
Przykład:
MS SQL Server umożliwia wstawienie więcej niż jednego rekordu w jednej operacji INSERT:
Lista wartości klauzuli VALUES może składać się ze stałych, funkcji lub wyrażeń.
Źródłem danych dla instrukcji INSERT może być instrukcja SELECT odczytująca wartości z innych
tabel. Instrukcja SELECT może także zawierać wyrażenia.
Przykład:
INSERT INTO Budzet_Plac(Rok, Miesiac, Suma)
SELECT 2011, 12, Sum(sal + NVL(comm, 0))
FROM emp;
W tym przypadku tabela Budzet_plac już istnieje, a jej układ kolumn jest zgodny ze strukturą instrukcji
SELECT odczytującej rekordy, które zostaną dopisane do tabeli Budzet_Plac.
UPDATE nazwa_tabeli
SET nazwa_kolumny = wyrażenie1, ...
[WHERE warunek];
np. aby zwiększyć wszystkim sprzedawcom pensję o 10%:
UPDATE Emp
SET Sal = Sal*1.1, Comm = 1000
WHERE Job = 'SALESMAN';