Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli."

Transkrypt

1 SQL W JĘZYKU PL/SQL Strukturalny język zapytań SQL określa sposób manipulowania danymi w bazie danych. Konstrukcje proceduralne języka PL/SQL stają się bardziej użyteczne w połączeniu z mocą przetwarzania języka SQL, ponieważ pozwalają wtedy programom PL/SQL na manipulowanie danymi w bazie danych Oracle. Instrukcje SQL Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli. Tabela. Kategorie instrukcji SQL Kategoria Instrukcje języka manipulowania danymi DML (Data Manipulation Language) Instrukcje języka definicji danych DDL (Data Definition Language) Instrukcje sterowania transakcją Instrukcje sterowania sesji Instrukcje sterowania systemu Przykładowe instrukcje SQL SELECT, INSERT, UPDATE, DELETE, SET TRANSACTION, EXPLAIN PLAN DROP, CREATE, ALTER, GRANT, REVOKE COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION ALTER SESSION, SET ROLE ALTER SESSION, SET ROLE ALTER SYSTEM Instrukcje języka manipulowania danymi DML (Data Manipulation Language) służą do zmieniania danych w tabelach lub danych zapytań w tabeli bazy danych, ale nie umożliwiają zmiany struktury tabeli lub innych obiektów. Instrukcje języka definicji danych DDL (Data Definition Language) służą do tworzenia, usuwania lub zmieniania struktury obiektu schematu. Polecenia, które zmieniają uprawnienia do obiektów schematu, są również instrukcjami DDL. Instrukcje sterowania transakcją gwarantują zachowanie spójności danych dzięki zorganizowaniu instrukcji SQL w logiczne transakcje, których wykonanie jako jednostki kończy się powodzeniem lub niepowodzeniem. Instrukcje sterowania sesji służą do zmieniania ustawień dla pojedynczego połączenia z bazą danych, np. do aktywacji śledzenia sesji SQL. Instrukcje sterowania systemu służą do zmieniania ustawień dla całej bazy danych, np. do aktywowania lub dezaktywowania procesu archiwizacji. 1

2 Wykorzystanie instrukcji SQL w języku PL/SQL Jedynymi instrukcjami SQL, które są dozwolone w programie PL/SQL, są: instrukcje DML instrukcje sterowania transakcjami. Niedozwolone są: przede wszystkim instrukcje DDL, ale także i niektóre instrukcje DML nie są dozwolone (np. instrukcja EXPLAIN PLAN). Aby wyjaśnić dlaczego te, a nie inne instrukcje SQL są dozwolone i niedozwolone w języku PL/SQL, konieczna jest znajomość założeń projektowych przyjętych dla języka PL/SQL. Ogólnie język programowania może wiązać zmienne na dwa sposoby: przez wiązanie wczesne lub wiązanie późne. Wiązanie zmiennej jest procesem identyfikowania lokacji pamięci skojarzonej z identyfikatorem programu. W języku PL/SQL wiązanie uwzględnia również sprawdzenie istnienia zezwolenia na uzyskanie dostępu do odwoływanego obiektu schematu w bazie danych. W przypadku języka, w którym stosuje się wiązanie wczesne, wiązanie zmiennej następuje podczas etapu kompilacji, natomiast w przypadku języka, w którym stosuje się wiązanie późne, proces wiązania zmiennej jest odkładany aż do czasu uruchomienia programu. Uwzględnienie procesu wiązania wczesnego oznacza, że etap kompilacji będzie trwać dłużej (ponieważ musi być wykonane wiązanie zmiennych), ale sam program będzie wykonywany szybciej, ponieważ wiązanie będzie już zakończone. Wiązanie późne skraca czas kompilacji, ale wydłuża czas wykonywania programu. Język PL/SQL celowo zaprojektowano w taki sposób, aby zastosować wiązanie wczesne. Decyzję tę podjęto w celu zapewnienia jak najszybszego wykonywania bloku, ponieważ wszystkie obiekty bazy danych są sprawdzane przez kompilator. Jest to sensowne rozwiązanie, ponieważ bloki PL/SQL są składowane w bazie danych za pomocą procedur, funkcji, pakietów i wyzwalaczy. Obiekty te są składowane w skompilowanej formie, a zatem w razie potrzeby mogą być ładowane bezpośrednio z bazy danych do pamięci i uruchamiane. Konsekwencją takiej decyzji projektowej jest zakaz stosowania instrukcji DDL. Instrukcje DDL modyfikują obiekt bazy danych, więc zachodzi konieczność ponownego sprawdzania zezwoleń, które wymagałyby ponownego wiązania identyfikatorów, a ten proces jest przeprowadzany podczas kompilacji. Aby lepiej to zilustrować, przeanalizujmy następujący, hipotetyczny blok PL/SQL: CREATE TABLE tabela_tymcz (wart_num NUMBER, wart_znak CHAR(10)); INSERT INTO tabela_tymcz(wart_num, wart_znak) VALUES(10, Tekst! ); 2

3 W celu kompilacji tego bloku identyfikator tabela_tymcz wymaga dowiązania. Podczas tego procesu następuje sprawdzenie faktu istnienia tabeli. Jednak tabela nie może istnieć przed uruchomieniem bloku. Z powyższego przykładu wynika, że omawiany blok nie może zostać skompilowany, a zatem nie ma sposobu na jego uruchomienie. Instrukcje sterowania transakcji są jedynymi instrukcjami SQL, które nie mają możliwości modyfikowania obiektów schematu lub uprawnień do obiektów schematu i w ten sposób są jedynymi poprawnymi instrukcjami SQL stosowanymi w języku PL/SQL. Stosowanie instrukcji DML w języku PL/SQL Dozwolonymi instrukcjami DML w języku PL/SQL są instrukcje: SELECT, INSERT, UPDATE, DELETE. Składnia instrukcji SELECT w języku PL/SQL jest następująca: SELECT * element_listy_wyboru INTO rekord_pl/sql FROM zmienna odnośnik_do_tabeli WHERE klauzula_where Poniższa tabela zawiera opis wszystkich elementów składni instrukcji SELECT. Klauzula instrukcji SELECT element_listy_wyboru zmienna rekord_pl/sql Opis ; x Kolumna (lub wyrażenie) do wybrania. Każdy element listy wyboru jest oddzielony przecinkiem i może być opcjonalnie identyfikowany przez alias (zmiennik). Cały zbiór elementów listy w instrukcji SELECT nazywa się listą wyboru. Znak gwiazdki (*) w składni jest skrótem zastępującym cały wiersz. W ten sposób są zwracane poszczególne pola w tabeli w kolejności, w jakiej pola zdefiniowano. Zmienna PL/SQL, do której będzie przekazany element listy wyboru. Każda zmienna powinna być zgodna ze swoim skojarzonym elementem wyboru. Dlatego elementy listy oraz zmienne wyjściowe powinny istnieć w tej samej liczbie. Może być stosowany zamiast listy zmiennych. Rekord powinien zawierać pola, które odpowiadają elementom z listy wyboru, ale również pozwalają na łatwiejszą manipulację zwracanymi danymi. Rekordy łączą powiązane pola w jednej jednostce składniowej. W ten 3

4 odnośnik_do_tabeli klauzula_where sposób można manipulować tymi polami zarówno jako grupą, jak również indywidualnie. Jeżeli lista wyboru jest znak gwiazdki (*) oraz źródłem danych jest pojedyncza tabela, to ten rekord może być definiowany jako odnośnik_do_tabeli%rowtype. Identyfikuje tabelę, z której mają być pobrane dane. jednym zapytaniu można określić więcej niż jeden odnośnik_do_tabeli. W takim przypadku argumenty należy oddzielić przecinkami. Zapytanie pobierające dane z kilku tabel nazywa się powiązaniem. Argument odnośnik_do_tabeli nie musi być nazwą tabeli bazy danych. Może być synonimem, tabelą w odległej bazie danych, określonej przez powiązanie z bazą danych, perspektywą, tabelą zagnieżdżoną (od systemu Oracle9i) Kryterium tego zapytania. Klauzula ta identyfikuje wiersz, który będzie zwrócony przez zapytanie. Kryterium składa się z warunków logicznych (boolowskich) łączonych operatorami logicznymi. Klauzula ta definiuje, które instrukcje tworzą tzw. zestaw aktywny zestaw wierszy zwracanych przez zapytanie SELECT, lub na których są wykonywane instrukcje UPDATE or DELETE. Istnieje znacznie więcej klauzul dla instrukcji SELECT, np. klauzule ORDER BY oraz GROUP BY. Instrukcje SELECT można także łączyć z operatorami, takimi jak: UNION, MINUS. Instrukcja SELECT według podanej powyżej składni powinna zwracać najwyżej jeden wiersz. Klauzula WHERE jest sprawdzana dla każdego wiersza w tabeli. Jeżeli odpowiada ona więcej niż jednemu wierszowi, PL/SQL zwraca następujący komunikat o błędzie: ORA-1427: Zapytanie o jeden wiersz zwraca więcej niż jeden wiersz W takim przypadku do osobnego pobrania każdego wiersza konieczne jest zastosowanie kursora. Poniższy przykład ilustruje sposób zastosowania dwóch różnych instrukcji SELECT: z_rekordtowar z_klientnazwa z_klientkraj towary%rowtype; klienci.nazwa%type; klienci.kraj%type; /* Pobranie jednego rekordu z tabeli Produkty i zapisanie w rekordzie z_rekordprodukt. Zauważmy, że klauzula WHERE odpowiada tylko jednemu wierszowi tabeli, a zapytanie zwraca wszystkie pola w tabeli Produkty (ponieważ stosowany jest znak (*). W ten sposób ładowany rekord jest definiowany jako produkty%rowtype. */ SELECT * INTO z_rekordtowar FROM towary WHERE nr_t = 15; /* Pobranie dwóch pól z tabeli Klienci i zapisanie ich w zmiennych z_klientnazwa i z_klientkraj. Zatem ponownie klauzula WHERE odpowiada tylko jednemu wierszowi tabeli.*/ 4

5 SELECT nazwa, kraj INTO z_klientnazwa, z_klientkraj FROM Klienci WHERE nr = 10; Instrukcja INSERT Składnia instrukcji INSERT jest następująca: INSERT INTO odnośnik_do_tabeli (nazwa kolumny) VALUES ( wyrażenie ) ; x instrukcja_select Klauzula odnośnik_do_tabeli odwołuje się do tabeli Oracle (albo do określonych perspektyw), nazwa_kolumny odwołuje się do kolumny w tabeli, a wyrazenie jest wyrazeniem SQL lub PL/SQL. Jeżeli instrukcja INSERT zawiera część instrukcja_select, to elementy listy instrukcji SELECT powinny odpowiadać kolumnom, do których mają być wstawiane dane. Zapytanie takiego typu określa się jako podzapytanie, ponieważ umieszczono je wewnątrz innej instrukcji SQL. Podobnie jak w przypadku instrukcji SELECT, instrukcja INSERT może również przyjmować nieco inne formy, np. zastosować podzapytanie jako część klauzuli VALUES. Poniższe przykłady ilustrują prawidłowy sposób użycia instrukcji INSERT: z_idtowar towary%type; -- Pobranie nowego identyfikatora produktu SELECT towary_sekwencja.nextval INTO z_idtowar FROM dual; -- Dodanie wiersza do tabeli towary INSERT INTO towary(nr_t, nazwa_t, cena_jedn) VALUES(z_IdTowar, Napój porzeczkowy, 3,10); /* Dodanie drugiego wiersza do tabeli Produkty, 5

6 ale z zastosowaniem numeru sekwencji bezpośrednio w instrukcji INSERT */ INSERT INTO towary(nr_t, nazwa_t, cena_jedn) VALUES(towary_sekwencja.NEXTVAL, Napój porzeczkowy, 3,10); W następnym przykładzie przedstawiono nieprawidłowy sposób wykonania polecenia INSERT. Elementy listy instrukcji SELECT podzapytania nie odpowiadają kolumnom, które mają być wstawiane. Taka instrukcja powoduje zwrócenie błędu Oracle ORA-00947: niewystarczająca liczba wartości. INSERT INTO towary SELECT * from klienci; Kolejny przykład przedstawia prawidłowo wydaną instrukcję INSERT. Przez wstawienie kopii każdego wiersza następuje podwojenie wielkości tabeli towary (w przypadku, gdy nie zostałyby naruszone więzy integralności, np. związane z kluczem tabeli towary): INSERT INTO towary SELECT * from towary; Instrukcja UPDATE Składnia instrukcji UPDATE jest następująca: UPDATE odnośnik_do_tabeli SET (nazwa kolumny) = wyrazenie ( nazwa kolumny ) = (instrukcja_select) WHERE klauzula_where ; x CURRENT OF kursor klauzula odnośnik_do_tabeli odwołuje się do tabeli bazy danych Oracle (albo do odpowiednio okreslonych perspektyw), nazwa_kolumny jest nazwą kolumny, której wartość ma być zmieniona, wyrazenie jest wyrażeniem SQL, jeśli instrukcja UPDATE zawiera część instrukcja_select, to elementy listy wyboru powinny odpowiadać kolumnom w klazuli SET, specjalną klazulę CURRENT OF kursor stosuje się wraz z definicją kursora. W poniższym przykładzie zilustrowano zastosowanie instrukcji UPDATE: z_idtowar towary.nr_t%type:=25; 6

7 z_dodajmagazyn NUMBER:=100; -- Ta instrukcja UPDATE doda 100 do pola Stan_magazyn dla towaru o nr_t = 20 UPDATE towary SET stan_magazyn:= Stan_magazyn + z_dodajmagazyn WHERE nr_t = z_idtowar; /* Ta instrukcja UPDATE spowoduje zmodyfikowanie obu kolumn tabeli tabela_tym dla wszystkich wierszy. */ UPDATE tabela_tym SET kol_num = 1, kol_znak = Nowy tekst ; Instrukcja DELETE Instrukcja DELETE usuwa wiersze z tabeli bazy danych. Klauzula WHERE wskazuje, które wiersze mają być usunięte. Składnia instrukcji DELETE jest następująca: DELETE odnośnik_do_tabeli FROM alias ; x WHERE klauzula_where CURRENT OF cursor klauzula odnośnik_do_tabeli odwołuje się do tabeli bazy danych Oracle (albo do odpowiednio okreslonych perspektyw), klazula_where definiuje zbiór wiersz, które mają być usunięte, specjalną klauzulę CURRENT OF kursor stosuje się wraz z definicją kursora. Poniższy przykład ilustruje kilka przypadków poprawnego użycia instrukcji DELETE. z_towarwycofany towary.wycofany%type; -- Usunięcie produktów wycofanych z tabeli towary z_towarwycofany:= FALSE; DELETE FROM towary WHERE Wycofany= z_towarwycofany; UWAGA: Instrukcja DELETE w powyższym bloku powoduje powstanie błędów związanych z naruszeniem ograniczenia nałożonych na tabelę produkty, co wiąże się z naruszeniem więzów integralności. 7

8 Klauzula WHERE Wraz z instrukcjami SELECT, UPDATE oraz DELETE stosuje się klauzulę WHERE będącą integralną częścią działań wykonywanych przez te instrukcje. Klauzula ta definiuje, które instrukcje tworzą zestaw aktywny zestaw wierszy zwracanych przez zapytanie (SELECT) lub na których są wykonywane instrukcje UPADTE oraz DELETE. Klauzula WHERE składa się z warunków połączonych operatorami logicznymi: AND, OR oraz NOT. Warunki zwykle przyjmują formę porównań, tak jak w poniższym przykładzie: z_wycofany towary.wycofany %TYPE:= TAK ; -- Usunięcie wszystkich towarów wycofanych DELETE FROM towary WHERE wycofany=z_wycofany; Powyższy, przykładowy blok usuwa wszystkie te wiersze z tabeli towary, dla których warunek został oceniony na wartość TRUE (tzn. dla których kolumna wycofany = TAK ). Przy tego typu porównaniach należy zwracać uwagę na właściwe stosowanie nazw zmiennych oraz na sposób porównywania znaków. Nazwy zmiennych Na potrzeby kolejnego przykładu przyjęto, że w poprzednim bloku programu zmieniono nazwę zmiennej z_wycofany na Wycofany: Wycofany towary.wycofany%type:= TAK ; -- Usunięcie wszystkich towarów (nie tylko tych wycofanych) DELETE FROM towary WHERE wycofany=wycofany; Ta prosta zmiana radykalnie wpływa na otrzymane wyniki wykonania tej instrukcji tak zmodyfikowany blok usunie wszystkie wiersze z tabeli produkty, a nie tylko te, dla których zachodzi równość Wycofany = TAK. Wynika to ze sposobu parsowania identyfikatorów w instrukcji SQL. Kiedy mechanizm PL/SQL napotka na warunek, taki jak: 1wyrazenie = 2wyrazenie, 8

9 najpierw następuje sprawdzenie identyfikatorów 1wyrazenie oraz 2wyrazenie w celu ustalenia, czy odpowiadają one kolumnom tabeli, na których jest wykonana dana operacja. Następnie identyfikatory sprawdza się, czy są zmiennymi w bloku PL/SQL. Język PL/SQL nie rozróżnia małych i dużych liter, zatem w poprzednim bloku obydwa identyfikatory wycofany oraz Wycofany są kojarzone z kolumną w tabeli produkty, a nie ze zmienną. Wynikiem sprawdzenia tego warunku dla każdego wiersza tabeli będzie wartość TRUE i dlatego wszystkie wiersze zostaną usunięte. Jeżeli blok posiada etykietę, można w dalszym ciągu użyć tej samej nazwy dla zmiennej jak dla kolumny tabeli dzięki nadanej etykiecie do odwołania do zmiennej. Przedstawiony poniżej blok daje pożądany efekt usuwa tylko te wiersze, dla których Wycofany = TAK : <<l_blokdelete>> Wycofany towary.wycofany%type:= TAK ; -- Usunięcie wszystkich towarów wycofanych DELETE FROM towary WHERE wycofany= l_blokdelete.wycofany; Mimo, ze ten sposób prowadzi do pożądanego wyniku, jednak stosowanie tej samej nazwy dla zmiennej PL/SQL i dla kolumny tabeli nie jest cechą dobrego stylu programowania. Porównania znaków W systemie Oracle mogą być zastosowane dwa różne rodzaje porównań wartości dwóch znaków: z dopełnieniem odstepu (blank-padded) lub bez dopełnienia odstępu (non-blank-padded). Typy te różnią się w sposobie porównywania ciągów znaków o różnych długościach. Załóżmy, iż porównujemy dwa ciągi znaków: ciagznakow1 oraz ciagznakow2. Do porównania z dopełnieniem odstępu stosuje się następujący algorytm: 1. Jeżeli ciąg znaków ciagznakow1 oraz ciagznakow2 są różnej długości, krótszy ciąg należy dopełnić znakami odstępu (spacjami), tak aby obydwa miały te samą długość. 2. Następnie porównuje się każdy ciąg znaków, znak po znaku, zaczynając od lewej strony. Przykładowo, w ciągu znaków ciagznakow1 znakiem jest znak1, a w ciągu znaków ciagznakow2 znak2. 9

10 3. Jeżeli ASCII(znak1)<ASCII(znak2), to ciagznakow1 < ciagznakow2. Jeżeli ASCII(znak1)>ASCII(znak2), to ciagznakow1 > ciagznakow2. Gdy ASCII(znak1)=ASCII(znak2), wówczas odpowiednio w ciągu znaków ciagznakow1 oraz ciagznakow2 przechodzi się do następnego znaku. 4. Jeżeli jest możliwe osiągnięcie końców znaków ciagznakow1 oraz ciagznakow2, to ciągi te są równe. Przy zastosowaniu algorytmu porównania z dopełnieniem odstępu wszystkie poniższe warunki zwrócą wartość TRUE: abc = abc abc = abc -- Należy zauważyć, iż w pierwszym ciągu znaków występują na końcu spacje ab < abc abcd > abcc Algorytm porównania bez dopełnieniem odstępu jest nieco inny: 1. Należy porównać każdy ciąg znaków, znak po znaku, zaczynając od lewej strony. Przykładowo, w ciągu znaków ciagznakow1 znakiem jest znak1, a w ciągu znaków ciagznakow2 znak2. 2. Jeżeli ASCII(znak1)<ASCII(znak2), to ciagznakow1 < ciagznakow2. Jeżeli ASCII(znak1)>ASCII(znak2), to ciagznakow1 > ciagznakow2. Gdy ASCII(znak1)=ASCII(znak2), wówczas należy przejść do następnego znaku odpowiednio w ciągach znaków ciagznakow1 oraz ciagznakow2. 3. Jeżeli ciąg znaków ciagznakow1 kończy się przed ciągiem znaków ciagznakow2, to ciagznakow1 < ciagznakow2. Gdy ciagznakow2 kończy się przed ciągiem znaków ciagznakow1, to ciagznakow1 > ciagznakow2. Przy zastosowaniu algorytmu porównania bez dopełnieniem odstępu wszystkie poniższe warunki zwrócą wartość TRUE: abc = abc ab < abc abcd > abcc Jednak poniższe porównanie bez dopełnieniem odstępu zwróci wartość FALSE, ponieważ ciągi znaków są różnej długości. Jest to podstawowa różnica pomiędzy powyższymi dwoma metodami porównań: abc = abc -- Należy zauważyć, iż w pierwszym ciągu znaków występują na końcu spacje Po zdefiniowaniu tych dwóch różnych metod porównań warto zastanowić się, kiedy należy stosować każdą z nich. Język PL/SQL wykorzystuje metody porównania z dopełnieniem odstępu tylko wtedy, gdy obydwa 10

11 porównywane ciągi znaków są stałej długości. Jeżeli dane ciągi znaków są różnej długości, stosuje się metodę porównywania bez dopełnienia odstępu. Typ danych CHAR określa ciągi znaków o stałej długości, a typ VARCHAR2 określa ciągi znaków o zmiennej długości. Stałe znakowe (objęte znakami apostrofu) są zawsze uważane za ciągi znaków o stałej długości. Jeżeli dana instrukcja nie jest wykonywana na poprawnych wierszach, należy sprawdzić typy danych użyte w klauzuli WHERE. Wykonanie poniższego bloku nie spowoduje usunięcia jakichkolwiek wierszy, ponieważ zmienna z_wycofany jest typu CHAR, a nie typu VARCHAR2: z_wycofany VARCHAR2(4); z_wycofany:= Tak ; -- Zauważmy, iż na końcu łańcucha występuje spacja -- Usuniecie wszystkich produktów wycofanych DELETE FROM towary WHERE wycofany=z_wycofany; Kolumna Wycofany tabeli towary jest typu CHAR. Wszystkie produkty wycofane posiadają wartość TAK dla kolumny wycofany. Ponieważ zmienna z_wycofany = Tak zawiera końcowy znak odstępu (spację) i zdefiniowano dla niej typ danych o zmiennej długości, to instrukcja DELETE nie będzie miała żadnego wpływu na wiersze. Aby klauzula WHERE dała pożądany efekt, dla zmiennych w bloku PL/SQL należy zdefiniować ten sam typ danych jak dla porównywanych kolumn bazy danych. Taki efekt gwarantuje zastosowanie atrybutu %TYPE. Klauzula RETURNING Często potrzebne są informacje na temat wierszy modyfikowanych przez instrukcję DML już po wydaniu instrukcji, np. identyfikator wiersza wprowadzonego do bazy danych. Jednym ze sposobów na uzyskanie tej informacji jest zastosowanie instrukcji SELECT po wykonaniu instrukcji. Jednak w takim przypadku potrzebna jest druga instrukcja SQL oraz kolejne odwołanie do jądra systemu RDBMS. Od systemu Oracle8 istnieje krótszy sposób klauzula RETURNING. Klauzula ta jest poprawna na końcu dowolnej instrukcji DML i jest wykorzystywana w celu uzyskania informacji na temat wiersza lub wierszy, których dotyczyło działanie instrukcji DML. Składnia klauzuli RETURNING jest następująca: RETURNING wyrazenie INTO zmienna x 11

12 gdzie wyrazenie jest poprawnym wyrażeniem języka PL/SQL lub SQL, które może obejmować kolumny lub pseudokolumny bieżacej tabeli, natomiast zmienna jest zmienną języka PL/SQL, do której zostaną zapisane wyniki. Odpowiadające sobie zmienne i wyrażenia muszą być danymi zgodnych typów. Poniższe przykłady prezentują wykorzystanie klauzuli RETURNING: z_nowyrowid z_idtowar z_nazwatowar z_cenatowar / ROWID; towary.id_prod%type; towary.nazwa_t%type; towary.cena_jedn%type; /* Wprowadzenie nowego wiersza do tabeli towary i jednoczesne pobranie identyfikatora rowid nowego wiersza. */ INSERT INTO towary(nr_t, nazwa_t, cena_jedn) VALUES(towary_sekwencja.NEXTVAL, Mleko, 1,45) RETURNING rowid INTO z_nowyrowid; DBMS_OUTPUT.PUT_LINE( Identyfikator rowid nowego wiersza to: z_nowyrowid); /* Uaktualnienie tego nowego wiersza zwiększenie wartości pola stan_magazyn i jednocześnie uzyskanie nazwy towaru i jego ceny jednostkowej. */ UPDATE towary SET stan_magazyn = stan_magazyn + 12 WHERE rowid = z_nowyrowid RETURNING nt_t, nazwa_t, cena_jedn INTO z_idtowar, z_nazwatowar, z_cenajedn; DBMS_OUTPUT.PUT_LINE( Nazwa towaru: z_nazwatowar i jego cena: z_cenatowar zł ); /* Usunięcie wiersza i uzyskanie identyfikatora Id usuniętego towaru. */ DELETE FROM towary WHERE rowid = z_nowyrowid; DBMS_OUTPUT.PUT_LINE( Identyfikator Id usuniętego wiersza wynosi: z_idtowar); Identyfikator rowid nowego wiersza: AAAF4MFAFAAAAATAFM Nazwa produktu: Mleko i jego cena: 1,45 zł Identyfikator Id usuniętego wiersza wynosi: PL/SQL procedure successfully completed 12

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE Instrukcje SQL dzielimy na następujące kategorie: 1) Instrukcje języka manipulowania danymi (DML) SELECT, INSERT, UPDATE, DELETE, SET TRANSACTION, EXPLAIN PLAN 2) Instrukcje języka definicji danych DDL

Bardziej szczegółowo

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

Bardziej szczegółowo

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

DECLARE typ [( )] [ NOT NULL ] [ { := DEFAULT } ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1 Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie wyzwalaczami 1 Procedury wyzwalane

Bardziej szczegółowo

Wyzwalacze TWORZENIE WYZWALACZY

Wyzwalacze TWORZENIE WYZWALACZY Wyzwalacze: podobnie jak procedury i funkcje, są nazwanymi blokami PL/SQL zawierającymi sekcje deklaracji, wykonania i obsługi wyjątków; nie akceptują argumentów; muszą być składowane jako samodzielne

Bardziej szczegółowo

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze

Bardziej szczegółowo

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska SQL TECHNOLOGIE BAZ DANYCH Wykład 5: Język DDL i DML. SQL (ang. StructuredQueryLanguage) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

Wyzwalacze. Anna Fiedorowicz Bazy danych 2 Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Systemy baz danych 2 laboratorium Projekt zaliczeniowy

Systemy baz danych 2 laboratorium Projekt zaliczeniowy Dany jest następujący logiczny schemat bazy danych Systemy baz danych 2 laboratorium Projekt zaliczeniowy FAKTURY POZYCJE PK f_id_faktury PK p_id_pozycji f_data_wystawienia f_data_płatnosci f_czy_zaplacona

Bardziej szczegółowo

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678'); polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Kursory - pobieranie danych z baz danych do programów PL/SQL

Kursory - pobieranie danych z baz danych do programów PL/SQL Kursory - pobieranie danych z baz danych do programów PL/SQL Rozważania będą dotyczyć sposobów pobierania danych z baz danych do programów przechowywanych w pamięci. Interakcja języka PL/SQL z językiem

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Plan wykładu BAZY DANYCH II WYKŁAD 4. Co to jest kursor? Rodzaje kursorów

Plan wykładu BAZY DANYCH II WYKŁAD 4. Co to jest kursor? Rodzaje kursorów Plan wykładu Kursory: deklaracja, otwieranie, pobieranie danych, zamykanie Kursory: atrybuty Kursory: pętle, rekordy Kursory z parametrami BAZY DANYCH II WYKŁAD 4 dr inż. Agnieszka Bołtuć Co to jest kursor?

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

OBSŁUGA WYJĄTKÓW. Mechanizm języka PL/SQL. Wyjątki:

OBSŁUGA WYJĄTKÓW. Mechanizm języka PL/SQL. Wyjątki: OBSŁUGA WYJĄTKÓW W języku PL/SQL zaimplementowano obsługę błędów za pomocą: mechanizmu wyjątków programów obsługi wyjątków w tzw. sekcji obsługi wyjątków. Wyjątki mogą być związane z: błędami systemu Oracle

Bardziej szczegółowo

Oracle11g: Programowanie w PL/SQL

Oracle11g: Programowanie w PL/SQL Oracle11g: Programowanie w PL/SQL OPIS: Kurs pozwala zrozumieć zalety programowania w języku PL/SQL. Studenci uczą się tworzyć bloki kodu wykonywanego po stronie serwera, który może być współużytkowany

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Zaawansowane bazy danych i hurtownie danych semestr I

Zaawansowane bazy danych i hurtownie danych semestr I Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie

Bardziej szczegółowo

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Zmienne i stałe Instrukcje sterujące Wykorzystanie SQL w PL/SQL Kursory Wyjątki Projekt fizyczny bazy danych Braki projektu

Bardziej szczegółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Język PL/SQL Procedury i funkcje składowane

Język PL/SQL Procedury i funkcje składowane Język PL/SQL Procedury i funkcje składowane Podprogramy, procedury i funkcje składowane, typy argumentów, wywoływanie procedur i funkcji, poziomy czystości funkcji 1 Podprogramy Procedury (wykonują określone

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Uprawnienia, role, synonimy

Uprawnienia, role, synonimy Uprawnienia, role, synonimy Schemat, użytkownicy, autoryzacja użytkowników, uprawnienia systemowe i obiektowe, nadawanie i odbieranie uprawnień, tworzenie ról, przywileje, synonimy Schematy i użytkownicy

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Wprowadzenie Tworzenie i wykonywanie procedur i funkcji Instrukcja RETURN Parametry procedur i funkcji oraz ich przesyłanie Metadane

Bardziej szczegółowo

Wprowadzenie do języka SQL

Wprowadzenie do języka SQL Wprowadzenie do języka SQL język dostępu do bazy danych grupy poleceń języka: DQL (ang( ang.. Data Query Language) DML (ang( ang.. Data Manipulation Language) DDL (ang( ang.. Data Definition Language)

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych. Wrocławska WyŜsza Szkoła Informatyki Stosowanej Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych. Dr inŝ. Krzysztof Pieczarka Email: krzysztof.pieczarka@up.wroc.pl Tradycyjne bazy danych

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl)

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl) mysql relacyjna baza danych wstęp Materiały pomocnicze do laboratorium z przedmiotu: Techniki Informatyczne Stanisław Flaga () Wydział Inżynierii Mechanicznej i Robotyki Katedra Automatyzacji Procesów

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

Bardziej szczegółowo

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa

Bardziej szczegółowo

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł!

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł! Szkolenie Oracle SQL podstawy Terminy 15 17 lutego 2010 First Minute! 1100zł! Opis szkolenia Baza danych Oracle od dawna cieszy się zasłużona sławą wśród informatyków. Jej wydajność, szybkość działania

Bardziej szczegółowo

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia). POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane

Bardziej szczegółowo

Bazy danych 10. SQL Widoki

Bazy danych 10. SQL Widoki Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

SQL :: Data Definition Language

SQL :: Data Definition Language SQL :: Data Definition Language 1. Zaproponuj wydajną strukturę danych tabela) do przechowywania macierzy o dowolnych wymiarach w bazie danych. Propozycja struktury powinna zostać zapisana z wykorzystaniem

Bardziej szczegółowo

Zarządzanie obiektami bazy danych Oracle11g

Zarządzanie obiektami bazy danych Oracle11g Zarządzanie obiektami bazy danych Oracle11g Wstęp Obiekty to struktury przechowujące, porządkujące lub operujące na danych takie jak: Tabele Więzy integralności Indeksy Widoki Sekwencje Procedury Linki

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 3 Rekordy Tabele indeksowe asocjacyjne - 2 - Rekordy Co to jest rekord? Rodzaje rekordów Rekordy użytkownika Rekordy tabelowe Rekordy

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli 1. Tworzenie tabeli Aby stworzyć tabele w SQL-u należy użyć polecenia CREATE TABLE nazwa_tabeli (nazwa_pola1 właściwości_pola1, nazwa_pola2 właściwości_pola2, itd.) Nazwa_tabeli to wybrana przez nas nazwa

Bardziej szczegółowo

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi 1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca

Bardziej szczegółowo

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

Bardziej szczegółowo

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads Instalacja MySQL Baza MySQL tworzona jest przez Szwedzką firmę MySQL AB strona domowa projektu to: www.mysql.com Wersję bezpłatną (różniącą się od komercyjnej brakiem wsparcia technicznego, nośnika i podręcznika)

Bardziej szczegółowo

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie do języka SQL Opracował: dr inż. Piotr Suchomski Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków

Bardziej szczegółowo

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty PL/SQL, c.d. 1 / 37 SQL to za mało SQL brakuje możliwości dostępnych w językach proceduralnych.

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

Bazy danych Język SQL część 2 Wykład dla studentów matem

Bazy danych Język SQL część 2 Wykład dla studentów matem Bazy danych Język SQL część 2 Wykład dla studentów matematyki 21 marca 2015 Zapytania na kilku tabelach Czasem poszukiwana informacja znajduje się w kilku tabelach. Aby zapytanie dotyczyło kilku tabel,

Bardziej szczegółowo

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do Na dotychczasowych zajęciach zapoznaliście się Państwo z poleceniem SELECT pozwalającym ą na wykonywanie zapytań ń do bazy danych i odczytywanie danych zawartych w relacjach. Celem tego ćwiczenia jest

Bardziej szczegółowo

Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż. 1/40 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Październik 2015 2/40 Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Wykorzystanie 3/40 Projekt

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z

Bardziej szczegółowo

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku Plan wykładu BAZY DANYCH II WYKŁAD 2 Bloki, struktura, sekcje Bloki anonimowe Tworzenie i uruchamianie Identyfikatory Literały Typy danych dr inż. Agnieszka Bołtuć Bloki Struktura bloku W programach pisanych

Bardziej szczegółowo

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2)

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2) Kursor jawny Każde zapytanie SQL umieszczone w programie PL/SQL może zwrócić zero, jedną bądź wiele krotek. Aby efektywnie przetworzyć krotkizwrócone przez zapytanie korzystamy z kursorów. Kursor jest

Bardziej szczegółowo

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image) Elementy języka T-SQL 40. Polecenie PRINT jest wykorzystywane do przekazania wiadomości tekstowej (maksymalna długość 8000 znaków) Przykład PRINT 'Aktualna data: '+convert(char(8),getdate()) PRINT 'Aktualny

Bardziej szczegółowo

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

Grupowanie i funkcje agregujące

Grupowanie i funkcje agregujące Grupowanie i funkcje agregujące Zadanie 1. Stwórz odpowiednią tabelę Test_agr i wprowadź odpowiednie rekordy tak, aby wynik zapytania SELECT AVG(kol) avg_all, AVG(DISTINCT kol) avg_dist, COUNT(*) count_gw,

Bardziej szczegółowo

Laboratorium nr 7. Temat: Podstawy języka zapytań SQL (część 1) 1. Wprowadzenie do laboratorium

Laboratorium nr 7. Temat: Podstawy języka zapytań SQL (część 1) 1. Wprowadzenie do laboratorium Laboratorium nr 7 Temat: Podstawy języka zapytań SQL (część 1) Systemy Zarządzania Bazą Danych (SZBD) pozwalają na rozwiązanie wielu problemów związanych ze składowaniem, przeszukiwaniem i przekształcaniem

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2014 1 / 16 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_danych_i_usługi_sieciowe_-_2014z

Bardziej szczegółowo

Podprogramy. Rozdział 11 Procedury i funkcje składowane

Podprogramy. Rozdział 11 Procedury i funkcje składowane Podprogramy Rozdział 11 Procedury i funkcje składowane Podprogramy, procedury składowane, funkcje składowane, wywoływanie podprogramów Przez podprogramy rozumiemy głównie: procedury (wykonują określone

Bardziej szczegółowo

Technologie baz danych WYKŁAD 7: Wyjątki

Technologie baz danych WYKŁAD 7: Wyjątki Wydział Informatyki Politechnika Białostocka Obsługa wyjątków Technologie baz danych WYKŁAD 7: Wyjątki [] [] Agnieszka Oniśko, Małgorzata Krętowska TBD-wyjątki 1 TBD-wyjątki 2 Sposoby powstania sytuacji

Bardziej szczegółowo

Rozdział 17. Zarządzanie współbieżnością zadania

Rozdział 17. Zarządzanie współbieżnością zadania Rozdział 17. Zarządzanie współbieżnością zadania Transakcja DML 1. Uruchom narzędzie Oracle SQL Developer i przyłącz się do bazy danych. Następnie rozpocznij nową transakcję, zmieniając pracownikowi o

Bardziej szczegółowo

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach

Bardziej szczegółowo

BAZY DANYCH Cz III. Transakcje, Triggery

BAZY DANYCH Cz III. Transakcje, Triggery BAZY DANYCH Cz III Transakcje, Triggery Transakcje Definicja: Zbiór operacji (modyfikacja danych, usuwanie, wstawianie, tworzenie obiektów bazodanowych), które albo wszystkie kończone są sukcesem, albo

Bardziej szczegółowo