Do modyfikowania zawartości już istniejących tabel służą polecenia:
INSERT
- wstawianie nowych wierszy
UPDATE
- zmiana istniejących wierszy
DELETE
- usuwanie wierszy
Składnia w przykładach:
INSERT INTO etaty
VALUES ('SPRZATACZKA', NULL, 1100);
INSERT INTO etaty(nazwa,placa_do)
VALUES ('SPRZATACZKA', 1100);
INSERT INTO etaty(nazwa,placa_od,placa_do)
SELECT 'NAD' || nazwa, placa_od, placa_do + 1000 FROM etaty;
UPDATE pracownicy
SET etat = 'PROFESOR', placa_pod = placa_pod * 2.5
WHERE nazwisko = 'Grzybowska';
UPDATE pracownicy p
SET (p.placa_pod, p.placa_dod) =
(SELECT 1.2 * AVG(placa_pod), MAX(placa_dod) FROM pracownicy WHERE id_zesp = p.id_zesp);
DELETE FROM pracownicy
WHERE nazwisko IN ('Marecki', 'Nowicki');
DELETE FROM pracownicy
WHERE id_szefa = ANY (SELECT id_prac FROM pracownicy WHERE nazwisko = 'Nowicki');
Efekty działania INSERT
, UPDATE
i DELETE
trzeba
zatwierdzić wykonując polecenie
COMMIT;
Jeśli nie chcemy zatwierdzać zmian należy wykonać polecenie
ROLLBACK;
co spowoduje wycofanie wszystkich zmian od czasu ostatniego COMMIT
.
W każdej chwili można też od nowa załadować dane testowe wykonując
@prac.sql
Zadania:
Do tworzenia tabel służy polecenie CREATE TABLE
,
a do usuwania DROP TABLE
.
Składnia w przykładach:
CREATE TABLE ksiazki (
tytul CHAR VARYING(100),
autor CHAR VARYING(100),
data_zakupu DATE DEFAULT SYSDATE);
DROP TABLE ksiazki;
CREATE TABLE ksiazki (
sygnatura NUMERIC(4) PRIMARY KEY,
tytul CHAR VARYING(100) NOT NULL,
autor CHAR VARYING(100) NUT NULL,
cena NUMERIC(6,2),
data_zakupu DATE DEFAULT SYSDATE);
CREATE TABLE plyty_cd (
id_plyty NUMERIC(4) PRIMARY KEY,
tytul_albumu CHAR VARYING(100) UNIQUE NOT NULL,
data_nagrania DATE,
data_wydania DATE,
CHECK(data_nagrania < data_wydania);
CREATE TABLE rodzaje_muzyki (
id_rodzaju INT PRIMARY KEY,
nazwa CHAR VARYING(100));
CREATE TABLE plyty_cd (
id_plyty NUMERIC(4) CONSTRAINT pk_plyty_cd PRIMARY KEY,
tytul_albumu CHAR VARYING(100) CONSTRAINT uq_tytul_albumy UNIQUE,
data_nagrania DATE,
data_wydania DATE,
CONSTRAINT chk_dates CHECK(data_nagrania < data_wydania));
CREATE TABLE plyty_cd (
id_plyty NUMERIC(4) PRIMARY KEY,
tytul_albumu CHAR VARYING(100) UNIQUE NOT NULL,
rodzaj INT REFERENCES rodzaje_muzyki(id_rodzaju));
CREATE TABLE plyty_cd (
id_plyty NUMERIC(4) PRIMARY KEY,
tytul_albumu CHAR VARYING(100) UNIQUE NOT NULL,
rodzaj INT,
FOREIGN KEY (rodzaj) REFERENCES rodzaje_muzyki(id_rodzaju));
CREATE TABLE roczne_place (nazwisko PRIMARY KEY, etat, placa)
AS SELECT nazwisko, 12 * (placa_pod + NVL(placa_dod,0)) FROM pracownicy;
Opis dostępnych w Oracle typów danych można znaleźć tutaj. Podstawowe typy to:
Zadania: