© 2007 Ryszard Kurzyjamski
1
Wprowadzanie danych – uzup.
Wprowadzanie daty
INSERT INTO …
(VALUES …
…,
TO_DATE(’04/11/2007’,’DD/MM/YYYY’), ….) 2
1
Wprowadzanie danych – uzup. (2) Wprowadzanie danych z innej tabeli
INSERT INTO tabela( pole1, pole2,…) SELECT …
3
Usuwanie
DELETE FROM tabela
[ WHERE warunek ]
TRUNCATE TABLE tabela
4
2
Wprowadzanie danych
Wprowad kilka wierszy do tabeli States Spróbuj wprowadzi dwa stany o tym samym symbolu
Spróbuj wprowadzi dwa stany o tej samej nazwie, lecz ró nych symbolach
Wprowad 3 biura do tabeli Offices
Spróbuj usun
stan, w którym jest biuro
5
Aktualizacja (2)
Wprowad po 2 klientów i sprzedawców
Wprowad 3 wyroby
Wprowad 2 faktury po 3 wiersze, dla ró nych biur i sprzedawców
Spróbuj usun
biuro, które wystawiło faktur
Spróbuj usun
sprzedawc , który wystawił
faktur
Spróbuj usun
klienta, dla którego
wystawiono faktur
6
3
Modyfikacja danych
UPDATE tabela
SET pole_1 = wyr_1, pole_2 = wyr_2,..
WHERE wyr_L
7
Aktualizacja (4)
Spróbuj zmieni warto
klucza głównego dla
wiersza powi zanego wymogiem klucza
obcego (np. numeru biura, symbolu klienta) Zmie cen wyrobu w tabeli Parts
8
4
DELETE FROM tabela
[ WHERE warunek ]
TRUNCATE TABLE tabela
9
Zatwierdzanie/wycofanie
Skutek wykonania aktualizacji
Zale y od stanu autozatwierdzenia
SHOW AUTOCOMMIT
to jest polecenie SQL*PLUS
Od punktu widzenia
Zatwierdzenie jawne
COMMIT
Wycofanie
ROLLBACK
10
5
SAVEPOINT nazwa
SAVEPOINT A
instrukcje
SAVEPOINT B
instrukcje
ROLLBACK TO SAVEPOINT nazwa
Wycofywa mo na tylko niezatwierdzone transakcje
11
Skutki braku potwierdzenia
Niejawne potwierdzenie
Polecenie QUIT / EXIT
Operacje j zyka DDL
Skutek braku potwierdzenia
W wypadku awari etc. Wszystkie
niepotwierdzone transakcje zostan
automatycznie wycofane
12
6
DROP TABLE tabela PURGE
PURGE TABLE tabela
PURGE RECYCLEBIN
13
Problemy modyfikacji struktury
Dodanie kolumny z warunkiem NOT NULL
do pustej tabeli
do niepustej tabeli
Zmiana wymogu NOT NULL
ALTER TABLE tabela MODIFY
( kolumna NULL | NOT NULL ) 14
7
Problemy modyfikacji struktury (2) Zmiana rozmiaru kolumny
Zwi kszenie rozmiaru
Zmniejszenie rozmiaru
Gdy tabela pusta
Gdy kolumn wypełniaj warto ci NULL
Zmiana typu kolumny
gdy pusta tabela
gdy kolumna zawiera NULL
15
Problemy modyfikacji struktury (3)
Usuwanie kolumny
ALTER TABLE tabela
DROP COLUMN kolumna
DROP ( kolumna_1, kolumna_2,…) Wył czenie kolumny
SET UNUSED COLUMN kolumna
Usuni cie nieu ywanych kolumn
DROP UNUSED COLUMNS
16
8
CREATE TABLE tabela
AS SELECT ….
Tworzenie pustej tabeli
Dodaj WHERE fałsz (np. 1<0) 17
Tabele o strukturze indeksu
Odpowiadaj organizacji ISAM
Przeznaczone do przechowywania danych wzgl dnie stałych
Szybsze od „normalnych” tabel
Dane posortowane fizycznie w sekwencji klucza głównego
W definicji tabeli dodajemy klauzul
ORGANIZATION INDEX
18
9
Oracle automatycznie tworzy indeksy dla klucza głównego
kluczy obcych
Inne indeksy – na danie
CREATE [ BITMAP | UNIQUE ] INDEX nazwa ON tabela( kolumna_1[, kolumna_2[,…]])
[ REVERSE ]
W indeksach mo na wykorzystywa funkcje standardowe, np. UPPER(nazwisko)
19
Indeksy bitmapowe
Zasada działania indeksu
Przyspieszaj wykonywanie niektórych
zapyta
Znacznie podnosz koszty innego
przetwarzania
Nie zalecane w przetwarzaniu On-line 20
10
Mo na stosowa organizacj losow
W tym kursie pomijamy
21
Sekwencje
Słu
do autonumeracji
CREATE SEQUENCE nazwa_seq
INCREMENT BY krok
START WITH n _pocz
Wykorzystanie
INSERT INTO tabela (lista_pól)
VALUES(wyr_1, wyr_2,…, nazwa_seq.NextVal) po wywołaniu NextVal mo na u ywa
Curr_Val
22
11
CREATE VIEW nazwa_V
AS SELECT ….
[ WITH READ ONLY ]
23
Zmiana wymogów
ALTER TABLE invoices
MODIFY CONSTRAINT FK_INV_SALMN
ON DELETE SET NULL
ALTER TABLE detail
MODIFY CONSTRAINT FK_DET_INV
ON DELETE CASCADE
24
12