1
1
Modyfikacja danych
Modyfikacja danych
(
(
insert, update, delete,
insert, update, delete,
truncate)
truncate)
Prezentacja do ćwiczenia 10
Prezentacja do ćwiczenia 10
Materiały wykorzystane w przykładach:
Materiały wykorzystane w przykładach:
Materiały pomocnicze do ćwiczeń laboratoryjnych\Ćwiczenie 10
Materiały pomocnicze do ćwiczeń laboratoryjnych\Ćwiczenie 10
2
2
Zakres pracy
Zakres pracy
Prezentacja ma na celu przedstawienie pełnej składni instrukcji
Prezentacja ma na celu przedstawienie pełnej składni instrukcji
SELECT. Objaśnione również zostaną instrukcje pozwalające na
SELECT. Objaśnione również zostaną instrukcje pozwalające na
modyfikację danych zawartych w bazie.
modyfikację danych zawartych w bazie.
3
3
INSERT
INSERT
Instrukcja INSERT zapisuje wiersz w tabeli.
Instrukcja INSERT zapisuje wiersz w tabeli.
Składnia instrukcji INSERT:
Składnia instrukcji INSERT:
INSERT INTO tablica (kolumna1, kolumna2, ...)
INSERT INTO tablica (kolumna1, kolumna2, ...)
VALUES (‘wartosc1’, ‘wartosc2’...);
VALUES (‘wartosc1’, ‘wartosc2’...);
Przykład 1:
Przykład 1:
INSERT INTO pojazdy
INSERT INTO pojazdy
(marka,model,typ,rok_prod,pojemnosc,przebieg,nr_nadwozia)
(marka,model,typ,rok_prod,pojemnosc,przebieg,nr_nadwozia)
VALUES('Aprilia','RS-50‘,’m’,'2004','350','1267','D77Xc45');
VALUES('Aprilia','RS-50‘,’m’,'2004','350','1267','D77Xc45');
Komunikat „1 row(s) affected” informuje nas o pomyślnym
umieszczeniu informacji w bazie danych (Rysunek 1).
Rysunek 1
4
4
INSERT INTO… SELECT FROM
INSERT INTO… SELECT FROM
Zapytanie SQL pobierające dane może być także częścią innego
Zapytanie SQL pobierające dane może być także częścią innego
zapytania które umieszcza dane w tabeli:
zapytania które umieszcza dane w tabeli:
Przykład 2:
Przykład 2:
INSERT INTO pojazdy
INSERT INTO pojazdy
(marka,model,typ,rok_prod,pojemnosc,przebieg,nr_nadwozia)
(marka,model,typ,rok_prod,pojemnosc,przebieg,nr_nadwozia)
SELECT
SELECT
marka,model,typ,rok_prod,pojemnosc,przebieg,nr_nadwozia
marka,model,typ,rok_prod,pojemnosc,przebieg,nr_nadwozia
FROM pojazdy
FROM pojazdy
WHERE id_pojazdy=1;
WHERE id_pojazdy=1;
Wynik zapytania można podejrzeć wyświetlając tabele „quad”.
Wynik zapytania można podejrzeć wyświetlając tabele „quad”.
5
5
SELECT INTO
SELECT INTO
Pobierane dane można umieścić w innej tabeli, aby to wykonać należy
Pobierane dane można umieścić w innej tabeli, aby to wykonać należy
zastosować instrukcję SELECT INTO.
zastosować instrukcję SELECT INTO.
Przykład 3:
Przykład 3:
SELECT
SELECT
DISTINCT
DISTINCT
marka
marka
INTO tymcz
INTO tymcz
asowa
asowa
FROM
FROM
pojazdy
pojazdy
;
;
Powyższe zapytanie tworzy tabelę tymczasową ze słownikiem marek
Powyższe zapytanie tworzy tabelę tymczasową ze słownikiem marek
wszystkich pojazdów dostępnych w wypożyczalni (Rysunek 2).
wszystkich pojazdów dostępnych w wypożyczalni (Rysunek 2).
Uwaga:
Uwaga:
Pobierane kolumny muszą mieć zgodne typy z kolumnami docelowymi.
Pobierane kolumny muszą mieć zgodne typy z kolumnami docelowymi.
Rysunek 2
6
6
Instrukcja UPDATE zmienia pola w wierszu tabeli (aktualizuje je).
Instrukcja UPDATE zmienia pola w wierszu tabeli (aktualizuje je).
Składnia instrukcji UPDATE:
Składnia instrukcji UPDATE:
UPDATE tablica
UPDATE tablica
SET nazwa kolumny = wyrażenie
SET nazwa kolumny = wyrażenie
WHERE warunek;
WHERE warunek;
Przykład 3:
Przykład 3:
UPDATE pojazdy
UPDATE pojazdy
SET marka = 'YAMAHA‘
SET marka = 'YAMAHA‘
WHERE id_pojazdy = 2;
WHERE id_pojazdy = 2;
UPDATE
UPDATE
Zapytanie aktualizuje wiersze o id_pojazdy równym 2,
ustawia markę pojazdu na YAMAHA.
Sprawdź wynik wyświetlając odpowiednia tablice.
7
7
DELETE
DELETE
Instrukcja DELETE usuwa wiersz lub wiersze z tabeli
Instrukcja DELETE usuwa wiersz lub wiersze z tabeli
Składnia instrukcji DELETE:
Składnia instrukcji DELETE:
DELETE FROM tabela
DELETE FROM tabela
{WHERE( warunek );}
{WHERE( warunek );}
Instrukcja (warunek) WHERE jest instrukcją opcjonalną, bez niej
Instrukcja (warunek) WHERE jest instrukcją opcjonalną, bez niej
usuwane są wszystkie wiersze z tabeli.
usuwane są wszystkie wiersze z tabeli.
Przykład 4
Przykład 4
:
:
DELETE FROM
DELETE FROM
pojazdy
pojazdy
WHERE (id_
WHERE (id_
pojazdy
pojazdy
= 5);
= 5);
Uwaga:
Uwaga:
Powyższa instrukcja zadziała wówczas gdy nie będzie
Powyższa instrukcja zadziała wówczas gdy nie będzie
powiązanych
powiązanych
wierszy w innych tabelach z wierszem
wierszy w innych tabelach z wierszem
usuwanym. Są to tzw.
usuwanym. Są to tzw.
restrykcje, które dbają o spójność
restrykcje, które dbają o spójność
danych w bazie danych.
danych w bazie danych.
8
8
DELETE FROM…. FROM… WHERE
DELETE FROM…. FROM… WHERE
DELETE
DELETE
FROM
FROM
wypozyczenie
wypozyczenie
WHERE
WHERE
EXISTS
EXISTS
(
(
SELECT
SELECT
nazwisko
nazwisko
FROM
FROM
wypozyczenie w
wypozyczenie w
INNER JOIN
INNER JOIN
klient k
klient k
ON
ON
k.id_klienta =
k.id_klienta =
w.id_klienta
w.id_klienta
WHERE
WHERE
nazwisko = "Kowalski");
nazwisko = "Kowalski");
Zapytanie zawierające SELECT użyte w warunku
Zapytanie zawierające SELECT użyte w warunku
jako wynik zwraca wszystkie wypożyczenia dla klientów o nazwisku
jako wynik zwraca wszystkie wypożyczenia dla klientów o nazwisku
Kowalski.
Kowalski.
Instrukcja DELETE usuwa z tabeli wypożyczeń, wypożyczenia dla
Instrukcja DELETE usuwa z tabeli wypożyczeń, wypożyczenia dla
klientów o
klientów o
nazwisku Kowalski.
nazwisku Kowalski.
9
9
TRUNCATE
TRUNCATE
Instrukcja TRUNCATE to szczególny przypadek instrukcji DELETE (tj.
Instrukcja TRUNCATE to szczególny przypadek instrukcji DELETE (tj.
bez
bez
klauzuli WHERE). Instrukcja TRUNCATE usuwa wszystkie wiersze z
klauzuli WHERE). Instrukcja TRUNCATE usuwa wszystkie wiersze z
tabeli,
tabeli,
bez żadnych wyjątków. Po usunięciu wszystkich wierszy pozostaje
bez żadnych wyjątków. Po usunięciu wszystkich wierszy pozostaje
tylko
tylko
zachowana struktura tabeli i obiekty z nią skojarzone. Instrukcja
zachowana struktura tabeli i obiekty z nią skojarzone. Instrukcja
TRUNCATE
TRUNCATE
jest wykonywana szybciej niż instrukcja DELETE.
jest wykonywana szybciej niż instrukcja DELETE.
Składnia instrukcji TRUNCATE:
Składnia instrukcji TRUNCATE:
TRUNCATE TABLE tabela;
TRUNCATE TABLE tabela;
Przykład:
Przykład:
TRUNCATE TABLE tymczasowa;
TRUNCATE TABLE tymczasowa;
10
10
Ćwiczenia
Ćwiczenia
• Stwórz tymczasową tabelę ze słownikiem marek oraz
rokiem produkcji skuterów.
• Ze stworzonej tabeli tymczasowej usuń skutery (s - w
bazie oznacza skutery) z rocznika od 1999 do 2002
• Wyczyść tabelę tymczasową zawierającą słowniki marek