Dane

Dodawanie nowych danych

Do wstawiania nowych wierszy do tabeli służy instrukcja INSERT.

Jej składnia wygląda następująco:


INSERT INTO tabela [(kolumna{, kolumna})]
     VALUES (wartość{, wartość})
                        

Polecenie to wstawia jeden nowy wiersz do tabeli tabela przyporządkowując według kolejności odpowiednie wartości do odpowiednich kolumn.

Przykład

Dołożyć do tabeli klienci nowego klienta indywidualnego, który nazywa się Jacek Kunicki i ma NIP równy '338-20-81-836'

INSERT INTO klienci(klt_id, klt_imie, klt_nazwisko, klt_typ, klt_nip)
     VALUES (1010, 'Jacek', 'Kunicki', 'IND', '338-20-81-836');
                        

Instrukcja INSERT może dodawać dane tylko do jednej tabeli.
W przypadku, gdy wstawiamy wartości do wszystkich kolumn, można opuścić wymienianie kolumn.

Przykład

Dołożyć do tabeli grupy_cen wiersz zawierający rabat 30% dla zamówień pomiędzy kwotami 100 000 i 500 000.

INSERT INTO grupy_cen
     VALUES (30, 100000, 500000);
                        

Jednym poleceniem INSERT można wstawić do tabeli wiele wierszy, pod warunkiem, że jesteśmy w stanie utworzyć te wiersze dynamicznie. Instrukcja INSERT w takim wypadku ma inną postać:


INSERT INTO tabela [(kolumna{, kolumna})]
     SELECT kolumna1{, kolumna1} FROM ...
                        

Przykład

Podwoić każdy wiersz w tabeli grupy_cen.

INSERT INTO grupy_cen
     SELECT * FROM grupy_cen;
                        

Usuwanie danych

Do usuwania danych służy polecenie DELETE.

Składnia polecenia wygląda następująco:


DELETE [FROM] tabela
[WHERE warunek]
                        

Polecenie to usuwa z tabeli dowolną ilość wierszy. Warunek po klauzuli WHERE określa, które wiersze mają zostać usunięte. Pominięcie klauzuli WHERE spowoduje, że wszystkie wiersze z tabeli zostaną usunięte.

Przykład

Usunąć z tabeli towary Mikrofon.

DELETE towary
 WHERE tow_nazwa = ‘Mikrofon’;
                        

Tabelę można także wyczyścić poleceniem TRUNCATE TABLE.

Metoda ta jest zdecydowanie szybsza, ale można nią usunąć tylko całą zawartość tabeli, i w przeciwieństwie do polecenia DELETE, operacji tej nie można już cofnąć.

Przykład

Wyczyścić tabelę grupy_cen.

TRUNCATE TABLE grupy_cen;
                        

Modyfikowanie danych

Aby zmodyfikować już istniejące dane musimy posłużyć się instrukcją UPDATE.

Składnia tego polecenia wygląda następująco:


UPDATE tabela
   SET kolumna = wartość {, kolumna = wartość}
[WHERE warunek];
                        

Po klauzuli SET podajemy ciąg kolumn rozdzielonych przecinkiem, którym nadajemy nowe wartości.
Jedno polecenie UPDATE może zmodyfikować dowolną ilość wierszy w tabeli. Po klauzuli WHERE podajemy warunek, który określa, które wiersze mają być zmodyfikowane. Jeżeli klauzula WHERE zostanie pominięta, to zmodyfikowane zostaną wszystkie wiersze w tabeli.

Przykład

Obniżyć podatek wszystkim towarom mającym podatek 7% na 0%.

UPDATE towary
   SET tow_podatek = 0
 WHERE tow_podatek = 7;
                        

W klauzuli SET nie musi zostać podana wartość statyczna. Może to być podzapytanie, lub dowolne wyrażenie korzystające np. ze starej wartości modyfikowanej kolumny.

Przykład

Obniżyć cenę o 10% wszystkim towarom, które nie były dotąd zamawiane.

UPDATE towary T
   SET tow_cena = round (tow_cena*0.9, 2)
 WHERE NOT EXISTS (SELECT 1
                     FROM pozycje_zamowien
                    WHERE pzm_tow_id = T.tow_id);