Thursday, October 18, 2018

Instrukcje DML w PL/pgSQL


Abyśmy mogli rozpocząć przykłady z tego rozdziału, niezbędne będzie stworzenie potrzebnej nam tabeli i umieszczenie w niej danych:


create table ludziki (
id serial primary key,
imie text,
nazwisko text,
wiek integer
);


insert into ludziki(imie,nazwisko,wiek) values ('Marian','Paździoch',75);
insert into ludziki(imie,nazwisko,wiek) values ('Waldemar','Kiepski',24);
insert into ludziki(imie,nazwisko,wiek) values ('Ferdynand','Kiepski',56);
insert into ludziki(imie,nazwisko,wiek) values ('Marian','Boczek',34);
insert into ludziki(imie,nazwisko,wiek) values ('Rozalia','Kiepska',120);


Po tej operacji powinniśmy mieć tabelę z 5 wierszami.

Insert

Jeśli zechcemy wstawić wiersz do tabeli z użyciem PL/pgSQL, wystarczy umieścić instrukcję Insert wewnątrz kodu:


do
$$
begin
insert into ludziki(imie,nazwisko,wiek) values ('Zenek','Martyniuk',45);
end $$;


Kolumna id jest uzupełniana automatycznie, w związku z tym że jest to kolumna typu serial. PL/pgSQL pozwala nam dodatkowo na użycie zmiennych:


do
$$
declare
im text:='Koziołek';
na text:='Matołek';
wi integer:=17;
begin
insert into ludziki(imie,nazwisko,wiek) values (im,na,wi);
end $$;

Po uruchomieniu kodu i sprawdzeniu zawartości tabeli ludziki, zaobserwujemy pojawienie się nowych wierszy w tabeli:


 Update i delete


Instrukcja UPDATE czy DELETE może być wykonywana tak jak w SQL, z tym że w PL/pgSQL możemy używać zmiennych, podobnie jak przy INSERT:


do
$$
declare
postarzej_o integer:=5;
begin
update ludziki set wiek=wiek+postarzej_o;
end $$;


Po wykonaniu powyższego kodu wszystkie ludziki są starsze o 5 lat :) Poniżej usuwamy jeszcze Zenka Martyniuka (i tak jest go już wszędzie pełno).


do
$$
declare
kogo integer:=6;
begin
delete from ludziki where id=kogo;
end $$;



No comments:

Post a Comment

Bezpłatny kurs PL/pgSQL by Andrzej Klusiewicz

Cześć  :) Oddaję w Wasze ręce wersję 1.0.0.0.0.(0) swojego tutoriala dotyczącego języka PL/pgSQL - czyli proceduralnego języka przetwarza...