SQL_cwiczenia_praktyczne_cwsql2.pdf

(295 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREœCI
SQL. Æwiczenia
praktyczne
Autor: Marcin Lis
ISBN: 83-246-0621-1
Format: A5, stron: 152
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Poznaj zasady pracy z bazami danych
• Projektowanie baz i tabel
• Wprowadzanie i wybieranie danych
• Konstruowanie z³o¿onych zapytañ
Bazy danych s¹ „krêgos³upem” niemal ka¿dej aplikacji. Rozbudowane systemy
finansowe, aplikacje korporacyjne, portale i sklepy internetowe, a nawet proste
programy do fakturowania opieraj¹ siê na bazach danych. Rynek systemów zarz¹dzania
bazami danych jest bardzo zró¿nicowany -- mo¿na znaleŸæ zarówno ogromne aplikacje
komercyjne, jak i systemy dostêpne nieodp³atnie. Na szczêœcie dla programistów
i u¿ytkowników z ka¿dym z takich systemów mo¿na „porozumieæ siê” za pomoc¹
jêzyka o nazwie SQL. Oczywiœcie, ka¿da z baz danych ma specyficzne dla siebie
instrukcje, jednak rdzeñ jêzyka jest wspólny.
Dziêki ksi¹¿ce „SQL. Æwiczenia praktyczne” na podstawie prostych i gotowych
do rozwi¹zania przyk³adów poznasz podstawy tego jêzyka. Nauczysz siê planowaæ
i projektowaæ tabele, umieszczaæ w nich dane oraz przetwarzaæ je. Dowiesz siê,
w jaki sposób formu³owaæ zapytania jêzyka SQL, za pomoc¹ których mo¿na
wprowadzaæ dane, wybieraæ je wed³ug okreœlonych kryteriów i przeprowadzaæ
obliczenia. Poznasz równie¿ sposoby pobierania danych z wielu tabel za pomoc¹
z³¹czeñ oraz przeczytasz o transakcjach i wiêzach integralnoœci.
• Zasady projektowania tabel baz danych
• Typy danych
• Wprowadzanie danych do bazy
• Pobieranie danych
• Modyfikowanie i usuwanie danych
• Z³¹czenia
• Transakcje w systemach baz danych
Po przeczytaniu tej ksi¹¿ki bêdziesz w stanie sprawnie pos³ugiwaæ siê
systemami baz danych opartymi na SQL
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOœCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Wstęp
Rozdział 1. Podstawy relacyjnych baz danych
Tabele
Klucze
Relacje
Podstawowe zasady projektowania tabel
5
9
9
10
11
16
Rozdział 2. Praca z tabelami
Typy danych
Tworzenie tabel
Atrybuty kolumn
Indeksy
Modyfikacja tabel
Usuwanie tabel
25
25
29
31
35
39
45
Rozdział 3. Umieszczanie danych w bazie
Instrukcja INSERT INTO
Wprowadzanie wielu wierszy
Druga postać instrukcji INSERT
47
47
53
55
Rozdział 4. Pobieranie danych z tabel
Podstawy instrukcji SELECT
Sortowanie wyników zapytań
Kryteria pobierania danych
Niepowtarzalność wierszy
57
57
61
63
71
4
SQL • Ćwiczenia praktyczne
Rozdział 5. Modyfikacja i usuwanie danych
Instrukcja UPDATE
Modyfikacja danych w tabelach
Usuwanie danych
73
73
74
78
Rozdział 6. Złączenia
Łączenie wyników zapytań
Pobieranie danych z wielu tabel
Złączenia
81
81
86
90
Rozdział 7. Funkcje agregujące
Rozdział 8. Grupowanie danych
Rozdział 9. Podzapytania
Podzapytania w klauzuli FROM
Podzapytania klauzuli WHERE
Podzapytania w instrukcjach aktualizujących dane
97
105
113
114
115
119
Rozdział 10. Transakcje
Transakcje w systemach baz danych
Obejmowanie instrukcji transakcją
Wycofywanie transakcji
Izolacja transakcji
123
123
124
125
126
Rozdział 11. Więzy integralności
Integralność danych
Definiowanie klucza obcego
Dodawanie i usuwanie więzów
129
129
130
133
Dodatek A
Dodatek B
Co nowego?
Instalacja PostgreSQL
135
144
Dane zapisane w tabelach bazy danych można pobierać za
pomocą instrukcji
SELECT
. Jej podstawowa postać ogólnie wy-
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
SELECT
, utworzymy przy-
kładową tabelę
pracopraco
o następujących kolumnach:
q
ad
— typu
INTEGER
, będąca kluczem głównym i zawierająca
identyfikator każdego wiersza;
q
amae
— typu
VARCHAR(20)
, z atrybutem
NOT NULL,
zawierająca
imię pracownika;
q
razpasko
— typu
VARCHAR(30)
, z atrybutem
NOT NULL
, zawierająca
nazwisko pracownika;
58
SQL • Ćwiczenia praktyczne
q
placa
— typu
DECIMAL(DE 2)
, z atrybutem
NOT NULL,
zawierająca
miesięczne wynagrodzenie pracownika;
q
staropasko
— typu
VARCHAR(20)
, z atrybutem
NOT NULL,
zawierająca
stanowisko pracownika
1
;
q
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ń.
Zgłoś jeśli naruszono regulamin