SQL. Ćwiczenia
Idz do
praktyczne. Wydanie II
" Spis treści
" Przykładowy rozdział
Autor: Marcin Lis
ISBN: 978-83-246-3051-6
Format: 140×208, stron: 176
Katalog książek
" Katalog online
" Zamów drukowany
katalog
Błyskawicznie opanuj sztukę posługiwania się bazami danych opartymi na SQL!
" Podstawy relacyjnych baz danych czyli co warto wiedzieć na początek
Twój koszyk
" Praca z danymi czyli umieszczanie ich w bazie, modyfikacja i usuwanie
" Ułatwianie sobie życia czyli funkcje agregujące, podzapytania i transakcje
" Dodaj do koszyka
Relacyjne bazy danych, oparte na języku SQL, to dziś niezwykle popularne i najczęściej używane
struktury do przechowywania dużej ilości danych. Nie tylko ułatwiają segregowanie i szybkie
uzyskiwanie potrzebnych informacji umożliwiają też przeprowadzanie na danych rozmaitych
Cennik i informacje
złożonych operacji, oszczędzających użytkownikom ogromne ilości czasu. Pozwalają bez trudu
dodawać nowe dane, zmieniać i usuwać te znajdujące się już w bazie oraz wyłuskiwać wszelkie
" Zamów informacje
wiadomości pod kątem specyficznych, szczegółowych kryteriów wyszukiwania. Wystarczy tylko
o nowościach
poznać podstawowe zasady działania języka SQL.
" Zamów cennik
SQL. Ćwiczenia praktyczne. Wydanie II pomoże Ci opanować podstawy tego języka, a także
wskaże, jak posługiwać się nim w konkretnych przypadkach. Znajdziesz tu wiedzę potrzebną do
Czytelnia
utworzenia bazy danych w jednym z kilku najpopularniejszych systemów bazodanowych,
zaprojektowania tabel optymalnych dla treści, które chcesz w nich przechowywać, wprowadzania
danych do bazy i modyfikowania ich. Zobaczysz także, co zrobić, by łatwo, szybko i precyzyjnie
" Fragmenty książek
wyszukać interesujące Cię informacje, pobrać je i posortować. Dowiesz się, co to są funkcje agregujące,
online
więzy integralności i podzapytania oraz jak korzystać z transakcji. Krótko mówiąc, znajdziesz tu
wszystko, co musisz wiedzieć, by sprawnie i wygodnie korzystać ze swojej bazy danych.
" Podstawy relacyjnych baz danych
" Praca z tabelami
" Umieszczanie danych w bazie
" Pobieranie danych z tabel
" Złożone kryteria wyszukiwania
" Modyfikacja i usuwanie danych
" ZÅ‚Ä…czenia
" Funkcje agregujÄ…ce
" Podzapytania
" Więzy integralności
Kontakt
" Transakcje
" Instalacja i podstawowa konfiguracja baz
Helion SA
Stwórz własną bazę danych i korzystaj z jej możliwości!
ul. Kościuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
© Helion 1991 2011
Spis tre ci
Wst p 9
Rozdzia 1. Podstawy relacyjnych baz danych 13
Tabele 13
Klucze 14
Relacje 15
Podstawowe zasady projektowania tabel 20
Okre lenie celu 20
Duplikowanie danych 21
Informacje atomowe 22
Puste pola 24
Jednoznaczna identyfikacja rekordów 26
Rozdzia 2. Praca z tabelami 27
Typy danych 27
Typy liczbowe 28
Typy daty i czasu 29
Typy a cuchowe 29
Typ null 30
Tworzenie i wybór bazy danych 31
Tworzenie tabel 32
Atrybuty kolumn 34
Indeksy 39
Modyfikacja tabel 42
Usuwanie tabel 49
6 SQL " wiczenia praktyczne
Rozdzia 3. Umieszczanie danych w bazie 51
Instrukcja INSERT INTO 51
Wprowadzanie wielu wierszy 57
Druga posta instrukcji INSERT 59
Rozdzia 4. Pobieranie danych z tabel 61
Podstawy instrukcji SELECT 61
Sortowanie wyników zapyta 65
Kryteria pobierania danych 67
Niepowtarzalno wierszy 75
Rozdzia 5. Modyfikacja i usuwanie danych 77
Instrukcja UPDATE 77
Modyfikacja danych w tabelach 78
Usuwanie danych 81
Rozdzia 6. Z czenia 85
czenie wyników zapyta 85
Instrukcja UNION 86
Instrukcja INTERSECT 87
Instrukcja EXCEPT 88
Pobieranie danych z wielu tabel 89
Z czenia 94
Z czenie typu CROSS JOIN 94
Z czenie typu INNER JOIN 95
Z czenie typu LEFT OUTER JOIN 96
Z czenie typu RIGHT OUTER JOIN 97
Z czenie typu FULL OUTER JOIN 99
Z czenia i klauzula WHERE 100
Aliasy tabel i rozró nianie nazw kolumn 100
Rozdzia 7. Funkcje agreguj ce 105
Rozdzia 8. Grupowanie danych 115
Rozdzia 9. Podzapytania 123
Podzapytania w klauzuli FROM 124
Podzapytania klauzuli WHERE 126
Podzapytania proste 126
Podzapytania skorelowane 128
Podzapytania w instrukcjach aktualizuj cych dane 130
Spis tre ci 7
Rozdzia 10. Transakcje 133
Transakcje w systemach baz danych 133
Obj cie instrukcji transakcj 134
Wycofywanie transakcji 135
Izolacja transakcji 136
Rozdzia 11. Wi zy integralno ci 139
Integralno danych 139
Definiowanie klucza obcego 140
Dodawanie i usuwanie wi zów 143
Dodatek A Instalacja i podstawowa konfiguracja baz 145
Baza MySQL 145
Instalacja w systemie Linux 145
Instalacja w systemie Windows 150
Baza PostgreSQL 154
Instalacja w systemie Linux 154
Instalacja w systemie Windows 158
Baza SQLite 161
Praca z baz 162
Baza Microsoft SQL Server (MS SQL) 162
Instalacja 163
Tworzenie bazy testowej 165
Praca z baz 166
Baza Oracle 167
Instalacja w systemie Linux 167
Instalacja w systemie Windows 171
5
Modyfikacja
i usuwanie danych
Instrukcja UPDATE
Do modyfikacji danych zawartych w tabelach s u y instrukcja UPDATE.
Ma ona ogóln posta :
UPDATE nazwa_tabeli
SET kolumna1=warto 1, kolumna2=warto 2, ..., kolumnaN=warto N
[WHERE warunek]
co oznacza: zmie w tabeli nazwa_tabeli, w kolumnach spe niaj cych
warunek warunek, warto kolumny kolumna1 na warto 1, kolumny
kolumna2 na warto 2 itd. Warunek wyst puj cy po klauzuli WHERE jest
przy tym opcjonalny, a jego pomini cie oznacza, e zmiany b d doko-
nane we wszystkich wierszach. W dalszych wiczeniach b dziemy
korzysta z tabeli pracownicy powsta ej w rozdziale 4.
W I C Z E N I E
5.1
Zmiana wszystkich warto ci we wskazanej kolumnie
Zmie zawarto kolumny pesel w tabeli pracownicy, tak aby wszystkie
wiersze zawiera y ci g 01234567890.
78 SQL " wiczenia praktyczne
Wykonanie wiczenia zmodyfikuje zawarto WSZYSTKICH wierszy w tabeli
pracownicy. Nie pojawi si przy tym adne ostrze enie czy te pytanie
o potwierdzenie ch ci wykonania instrukcji. Przywrócenie oryginalnej
zawarto ci tabeli b dzie wymaga o ponownego wprowadzenia danych.
Zmian wszystkich warto ci w kolumnie pesel zapewni nam instrukcja:
UPDATE pracownicy SET pesel='01234567890';
Je li teraz wykonamy instrukcj SELECT pobieraj c wszystkie dane
z tabeli pracownicy, zobaczymy, e faktycznie wszystkie wiersze kolumny
pesel zosta y zmienione, tak jak jest to widoczne na rysunku 5.1.
Rysunek 5.1. Wszystkie dane w kolumnie pesel zosta y zmodyfikowane
Modyfikacja danych w tabelach
wiczenie 5.1 pokaza o, w jaki sposób zmieni dane we wszystkich
wierszach wybranej kolumny. To jednak rzadko spotykany przypadek;
najcz ciej modyfikacji podlegaj tylko rekordy spe niaj ce zadane
kryteria. Przyk adowo, mog oby si okaza , e Kacper Adamczyk ma
przypisany b dny numer PESEL i nale y go zmieni z 92341678903 na
12341678993.
W I C Z E N I E
5.2
Modyfikacja kolumny w wybranym wierszu tabeli
Zmie numer PESEL przypisany Kacprowi Adamczykowi w tabeli
pracownicy.
Rozdzia 5. " Modyfikacja i usuwanie danych 79
Aby wykona wiczenie, nale y zastosowa instrukcj :
UPDATE pracownicy SET pesel='12341678993' WHERE id=7;
Warunek id=7 zosta zastosowany, gdy pole id jest kluczem g ównym
jednoznacznie identyfikuj cym ka dy rekord. Co prawda mo na by
wykona równie instrukcj :
UPDATE pracownicy SET pesel='12341678993' WHERE pesel='92341678903';
ale nie jest to sposób polecany. W pierwszym bowiem przypadku zaw-
sze mamy pewno , który rekord zostanie zmodyfikowany, w drugim
niestety, nie. Nie mo emy mie bowiem gwarancji, e w bazie nie znaj-
duje si ju PESEL 92341678903, gdy ta kolumna nie gwarantuje uni-
kalno ci ka dego wpisu i nie powinna by stosowana jako wyró nik
modyfikowanego wiersza (jeden PESEL móg by np. b dnie przypi-
sany kilku osobom).
Nic nie stoi równie na przeszkodzie, aby jednocze nie zmodyfikowa
kilka pól w danym wierszu. Mogliby my na przyk ad zmieni od razu
imi , stanowisko i p ac danej osoby.
W I C Z E N I E
5.3
Modyfikacja kilku kolumn w jednym wierszu
Zmodyfikuj dane wybranej osoby tak, aby jednocze nie zosta y zmie-
nione: nazwisko, stanowisko oraz p aca.
Aby wykona to zadanie, mo emy wykona instrukcj :
UPDATE pracownicy SET nazwisko='Andrzejewski', placa=3440.00,
stanowisko='kierownik' WHERE id=8;
Tym samym Kamil Andrzejczak, pracuj cy na stanowisku asystenta,
z p ac 1200 z , stanie si Kamilem Andrzejewskim, pracuj cym na sta-
nowisku kierowniczym, z p ac 3440 z . O tym, e taka zmiana faktycz-
nie nast pi a, mo emy si przekona , wykonuj c instrukcj SELECT
w postaci:
SELECT * FROM pracownicy WHERE id=8;
co zosta o równie zobrazowane na rysunku 5.2.
80 SQL " wiczenia praktyczne
Rysunek 5.2. Zmiana kilku danych w wybranym wierszu
Mo liwo ci instrukcji UPDATE nie ograniczaj si tylko do modyfikacji
danych w jednym wierszu. To, które rekordy zostan zmodyfikowane,
zale y tylko od warunku klauzuli WHERE. Mo emy wi c np. zmieni
nazw stanowiska sprzedawca na doradca klienta we wszystkich
wierszach kolumny stanowisko.
W I C Z E N I E
5.4
Modyfikacja kilku rekordów
W kolumnie stanowisko zmie wpisy o tre ci sprzedawca na doradca
klienta.
Aby wykona tak przedstawione zadanie, nale y pos u y si instrukcj :
UPDATE pracownicy SET stanowisko='doradca klienta' WHERE
stanowisko='sprzedawca';
Pobranie danych z tabeli poka e, e zmiana faktycznie zosta a dokonana
(rysunek 5.3).
Naraz mo na tak e modyfikowa wiele kolumn w wielu wierszach.
Je li wi c firma przechowuj ca dane w tabeli pracownicy przejdzie
kolejn reorganizacj i doradcy klientów ponownie stan si sprze-
dawcami, i jednocze nie ich p ace zostan zrównane do 1400 z , wszel-
kich niezb dnych zmian dokonamy równie dzi ki jednemu tylko
zapytaniu.
Rozdzia 5. " Modyfikacja i usuwanie danych 81
Rysunek 5.3. Nazwa stanowiska sprzedawca zosta a zmieniona
na doradca klienta
W I C Z E N I E
5.5
Modyfikacja kilku kolumn w wielu wierszach
U yj pojedynczego zapytania do zmiany nazwy stanowiska doradca
klienta na sprzedawca oraz p acy osób na tym stanowisku na 1400 z .
Niezb dne zapytanie ma posta :
UPDATE pracownicy SET stanowisko='sprzedawca', placa=1400.00 WHERE
stanowisko='doradca klienta';
W I C Z E N I E
5.6
Modyfikacja kolumn z warto ci NULL
Zmodyfikuj zawarto kolumny pesel w taki sposób, aby wiersze maj ce
w niej warto NULL mia y przypisany ci g znaków nieznany .
UPDATE pracownicy SET pesel='nieznany' WHERE pesel IS NULL;
Usuwanie danych
Do usuwania danych s u y instrukcja DELETE o ogólnej postaci:
DELETE FROM tabela
[WHERE warunek]
82 SQL " wiczenia praktyczne
Oznacza ona: usu z tabeli tabela wszystkie wiersze spe niaj ce waru-
nek warunek. Je li warunek zostanie pomini ty, zostan usuni te wszyst-
kie dane (podobnie jak w przypadku instrukcji UPDATE, gdzie pomini -
cie warunku powodowa o modyfikacj wszystkich wierszy tabeli).
W I C Z E N I E
5.7
Usuni cie wszystkich danych z tabeli
Usu wszystkie dane z tabeli pracownicy.
Aby usun wszystkie dane z tabeli pracownicy, nale y wykona
instrukcj :
DELETE FROM pracownicy;
Po jej wykonaniu tabela pracownicy nie b dzie zawiera a adnych
danych. Tak konstrukcj nale y wi c stosowa z rozwag , gdy ser-
wer nie wygeneruje adnego ostrze enia czy dodatkowego pytania.
Wpisanie powy szej konstrukcji i zatwierdzenie jej klawiszem Enter
spowoduje natychmiastowe skasowanie danych!
Selektywne usuwanie danych zapewnia u ycie klauzuli WHERE z odpo-
wiednim wyra eniem warunkowym, które konstruuje si na takich
samych zasadach jak w przypadku instrukcji SELECT czy UPDATE. Zosta-
nie to pokazane w kilku kolejnych wiczeniach.
W I C Z E N I E
5.8
Usuni cie wybranego wiersza
Usu z tabeli pracownicy dowolnie wybrany wiersz.
Aby usun z tabeli pracownicy dane osoby o identyfikatorze 5, zasto-
sujemy instrukcj :
DELETE FROM pracownicy WHERE id=5;
W I C Z E N I E
5.9
Jednoczesne usuni cie kilku wierszy
Usu z tabeli pracownicy wiersze o identyfikatorach (warto ci ko-
lumny id): 1, 3, 7.
Rozdzia 5. " Modyfikacja i usuwanie danych 83
Aby usun dane osób o identyfikatorach 1, 3 i 7, najpro ciej wykona
instrukcj :
DELETE FROM pracownicy WHERE id IN (1, 3, 7);
Mo na równie zastosowa seri warunków po czonych operatorem OR:
DELETE FROM pracownicy WHERE id=1 OR id=3 OR id=7;
W I C Z E N I E
5.10
Instrukcja DELETE i operator BETWEEN
Usu z tabeli pracownicy wiersze o identyfikatorach z przedzia u 4 8.
Usuni cie z tabeli pracownicy wierszy, które maj w kolumnie id war-
to ci z przedzia u 4 8, uzyskamy, wykonuj c instrukcj :
DELETE FROM pracownicy WHERE id BETWEEN 4 AND 8;
W I C Z E N I E
5.11
Usuwanie rekordów ze wzgl du na ci g znaków
Usu z tabeli pracownicy dane wszystkich osób o nazwisku Kowalski.
Aby usun z bazy dane pracowników o nazwisku Kowalski, zastosu-
jemy instrukcj :
DELETE FROM pracownicy WHERE nazwisko='Kowalski';
Wyszukiwarka
Podobne podstrony:
GIMP cwiczenia praktyczne Wydanie IIC cwiczenia praktyczne Wydanie IIJavaScript cwiczenia praktyczne Wydanie II cwjas2Internet cwiczenia praktyczne Wydanie II cwint2Access 03 PL cwiczenia praktyczne Wydanie II cwa232MySQL?rmowa?za?nych cwiczenia praktyczne Wydanie II cwmsq2Turbo Pascal cwiczenia praktyczne Wydanie IIExcel 03 PL cwiczenia praktyczne Wydanie II cwexc2Java cwiczenia praktyczne Wydanie II cwjav2Programowanie w jezyku C cwiczenia praktyczne Wydanie II cwprc2więcej podobnych podstron