1
1
Oracle 10g (2)
© 2007 Ryszard Kurzyjamski
2
Wprowadzanie danych – uzup.
Wprowadzanie daty
INSERT INTO …
(VALUES …
…,
TO_DATE(’04/11/2007’,’DD/MM/YYYY’), ….)
2
3
Wprowadzanie danych – uzup. (2)
Wprowadzanie danych z innej tabeli
INSERT INTO tabela(pole1, pole2,…)
SELECT …
4
Usuwanie
DELETE FROM tabela
[ WHERE warunek ]
TRUNCATE TABLE tabela
3
5
Aktualizacja
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
6
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
4
7
Aktualizacja (3)
Modyfikacja danych
UPDATE tabela
SET pole_1 = wyr_1, pole_2 = wyr_2,..
WHERE wyr_L
8
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
5
9
Usuwanie
DELETE FROM tabela
[ WHERE warunek ]
TRUNCATE TABLE tabela
10
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
6
11
Punkty zapisu
SAVEPOINT nazwa
SAVEPOINT A
instrukcje
SAVEPOINT B
instrukcje
ROLLBACK TO SAVEPOINT nazwa
Wycofywa mo na tylko niezatwierdzone
transakcje
12
Skutki braku potwierdzenia
Niejawne potwierdzenie
Polecenie QUIT / EXIT
Operacje j zyka DDL
Skutek braku potwierdzenia
W wypadku awarii etc. Wszystkie
niepotwierdzone transakcje zostan
automatycznie wycofane
7
13
Operacje na koszu
DROP TABLE tabela PURGE
PURGE TABLE tabela
PURGE RECYCLEBIN
14
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 )
8
15
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
16
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
9
17
Tworzenie tabel „w locie”
CREATE TABLE tabela
AS SELECT ….
Tworzenie pustej tabeli
Dodaj WHERE fałsz (np. 1<0)
18
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
10
19
Indeksy
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)
20
Indeksy bitmapowe
Zasada działania indeksu
Przyspieszaj wykonywanie niektórych
zapyta
Znacznie podnosz koszty innego
przetwarzania
Nie zalecane w przetwarzaniu On-line
11
21
Inne indeksy
Mo na stosowa organizacj losow
W tym kursie pomijamy
22
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
12
23
Perspektywy (widoki)
CREATE VIEW nazwa_V
AS SELECT ….
[ WITH READ ONLY ]
24
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