sql. ćwiczenia praktyczne full.pdf

(4142 KB) Pobierz
1277652793.009.png
4
SQL • Ćwiczenia praktyczne
Rozdział 5.
Modyfikacja i usuwanie danych
73
Instrukcja UPDATE
73
Modyfikacja danych w tabelach
74
Usuwanie danych
78
Rozdział 6.
Złączenia
81
Łączenie wyników zapytań
81
Pobieranie danych z wielu tabel
86
Złączenia
90
Rozdział 7.
Funkcje agregujące
97
Rozdział 8.
Grupowanie danych
105
Rozdział 9.
Podzapytania
113
Podzapytania w klauzuli FROM
114
Podzapytania klauzuli WHERE
115
Podzapytania w instrukcjach aktualizujących dane
119
Rozdział 10. Transakcje
123
Transakcje w systemach baz danych
123
Obejmowanie instrukcji transakcją
124
Wycofywanie transakcji
125
Izolacja transakcji
126
Rozdział 11. Więzy integralności
129
Integralność danych
129
Definiowanie klucza obcego
130
Dodawanie i usuwanie więzów
133
Dodatek A
Co nowego?
135
Dodatek B
Instalacja PostgreSQL
144
Dane zapisane w tabelach bazy danych można pobierać za
pomocą instrukcji
. Jej podstawowa postać ogólnie wy-
SELECT
gląda tak:
SELESELkolumna1,Lkolumna2,L...,LkolumnaN
FROMLtabela
[WHERELwarunek]
[ORDERLBYLkolumna1,Lkolumna2,L...,LkolumnaNL[ASSL|LDES]]
Taka konstrukcja oznacza: pobierz wartości wymienionych kolumn
z tabeli tabela, spełniających warunek warunek , a wyniki posortuj wzglę-
dem kolumn wymienionych w klauzuli ORDER BY, rosnąco ( ASC ) lub
malejąco ( DESC ). Elementy ujęte w nawiasy kwadratowe są opcjonalne.
Aby przećwiczyć działanie tej wersji instrukcji
, utworzymy przy-
SELECT
kładową tabelę
o następujących kolumnach:
pracopraco
, będąca kluczem głównym i zawierająca
identyfikator każdego wiersza;
amae
— typu
ad
INTEGER
— typu
, z atrybutem
zawierająca
VARCHAR(20)
NOT NULL,
imię pracownika;
razpasko
— typu
, z atrybutem
, zawierająca
VARCHAR(30)
NOT NULL
nazwisko pracownika;
1277652793.010.png 1277652793.011.png 1277652793.012.png 1277652793.001.png 1277652793.002.png
58
SQL • Ćwiczenia praktyczne
— typu
, z atrybutem
zawierająca
placa
DECIMAL(DE 2)
NOT NULL,
miesięczne wynagrodzenie pracownika;
staropasko — typu VARCHAR(20) , z atrybutem NOT NULL, zawierająca
stanowisko pracownika 1 ;
pesel — typu CHAR(11) , zawierająca PESEL pracownika.
Taka tabela zostanie utworzona za pomocą instrukcji:
SREAEELEABLELpracownicy
(
LLidLINEEGERLPRIMARYLKEY,
LLimieLVARSHAR(20)LNOELNULL,
LLnazwiskoLVARSHAR(30)LNOELNULL,
LLplacaLDESIMAL(7,L2)LNOELNULL,
LLstanowiskoLVARSHAR(20),
LLpeselLSHAR(11)
)
Wypełnimy ją przykładowymi danymi:
INSERELINEOLpracownicyLVALUESL(1,L'Adam',L'Kowalski',L1624.I0,
'magazynier',L'1234I678901');
INSERELINEOLpracownicyLVALUESL(2,L'Adam',L'Nowak',L3760.00,L'kierownik',
'9234I678901');
INSERELINEOLpracownicyLVALUESL(3,L'Andrzej',L'Kowalski',L4200.00,
'kierownik',L'7234I678901');
INSERELINEOLpracownicyLVALUESL(4,L'Arkadiusz',L'Malinowski',L1600.00,
'kierowca',L'9234I678909');
INSERELINEOLpracownicyLVALUESL(I,L'Andrzej',L'Malinowski',L14I0.00,
'sprzedawca',LNULL);
INSERELINEOLpracownicyLVALUESL(6,L'Krzysztof',L'Nowicki',L1300.00,
'sprzedawca',LNULL);
INSERELINEOLpracownicyLVALUESL(7,L'Kacper',L'Adamczyk',L1610.I0,
'serwisant',L'92341678903');
INSERELINEOLpracownicyLVALUESL(8,L'Kamil',L'Andrzejczak',L1200.00,
'asystent',LNULL);
INSERELINEOLpracownicyLVALUESL(9,L'Krzysztof',L'Arkuszewski',L1I00,
'magazynier',L'02343678913');
INSERELINEOLpracownicyLVALUESL(10,L'Kamil',L'Borowski',L1600.00,
'sprzedawca',L'32349678913');
1 Jak wiesz z rozdziału 1., w realnie działającej bazie nazwy stanowisk
powinny raczej znajdować się w oddzielnej tabeli, jednak umieszczenie
ich w tabeli pracownicy ułatwi nam wykonywanie dalszych ćwiczeń.
1277652793.003.png
 
Rozdział 4. • Pobieranie danych z tabel
59
ĆWICZENIE
4.1
Wyświetlenie zawartości wybranej tabeli
Użyj instrukcji
do wyświetlenia zawartości tabeli
.
SELECT
pracopraco
Instrukcja
, która pobierze wszystkie wiersze z tabeli
,
SELECT
pracopraco
ma postać:
SELESEL*LFROMLpracownicy;
Symbol
oznacza tu, że interesuje nas zawartość wszystkich kolumn.
Przykładowy efekt działania tego polecenia został zaprezentowany
na rysunku 4.1. Widać na nim, że faktycznie wyświetlone zostały
wszystkie dane wprowadzone uprzednio do tabeli
*
, jak rów-
nież to, że kolejność wierszy jest taka, w jakiej były one wprowadza-
ne do bazy.
pracopraco
Rysunek 4.1.
Efekt działania instrukcji SELECT pobierającej wszystkie dane
z tabeli pracownicy
Aby wyświetlić zawartość tylko niektórych kolumn z wybranej tabeli,
nazwy tych kolumn należy umieścić za słowem
, oddzielając
poszczególne nazwy znakami przecinka. Przykładowo mogą nas inte-
resować jedynie imiona, nazwiska i stanowiska pracowników.
SELECT
ĆWICZENIE
4.2
Pobieranie danych z wybranych kolumn
Pobierz z tabeli
dane o imionach, nazwiskach i stanowiskach.
Wykonanie ćwiczenia zapewni nam instrukcja:
pracopraco
SELESELimie,Lnazwisko,LstanowiskoLFROMLpracownicy;
1277652793.004.png 1277652793.005.png 1277652793.006.png 1277652793.007.png 1277652793.008.png
 
Zgłoś jeśli naruszono regulamin