Robert Chwastek. Bazy danych
|
|
- Władysław Murawski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Robert Chwastek Bazy danych
2 !" # $ % &"' w Krakowie. ( # ) * Copyright (c) Robert Chwastek, Kraków
3 + #, 1. E DEFINICJA BAZY DANYCH S TRANSAKCJE J TYPY DANYCH SPIS TYPÓW DANYCH TYP NUMERYCZNY KONWERSJE TYPÓW W MODEL RELACYJNY STRUKTURY DANYCH W MODELU RELACYJNYM R SQL S SQL Definicje podstawowe Rozkaz CREATE TABLE Rozkaz DROP Rozkaz INSERT Rozkaz DELETE Rozkaz CREATE SEQUENCE Rozkaz SELECT Rozkaz UPDATE Rozkaz RENAME Rozkaz ALTER TABLE Rozkaz CREATE INDEX Rozkaz CREATE VIEW Rozkaz COMMIT Rozkaz ROLLBACK Rozkaz SAVEPOINT Rozkaz SET TRANSACTION OPERACJE RELACYJNE Selekcja Projekcja Produkt Grupowanie PODZAPYTANIA WIDOKI (PERSPEKTYWY) TRANSAKCJE NORMALIZACJA RELACJI Cele normalizacji Pierwsz Definicje pomocnicze Czwarta pos Podsumowanie IA OPERATORY Operatory arytmetyczne Operatory znakowe Operatory porównania Operatory logiczne !
4 4.2. W WARUNKI STANDARDOWE FUNKC FUNKCJE NUMERYCZNE FUNKCJE ZNAKOWE FUNKCJE GRUPOWE FUNKCJE KONWERSJI FUNKCJE OPERACJI NA DATACH INNE FUNKCJE FORMATY ZAPISU DANYCH Formaty numeryczne Formaty dat PROGRAMOWANIE PROCEDURALNE - PL/SQL WPROWADZENIE STRUKTURA BLOKU PROCEDURY I FUNKCJE KURSORY REKORDY O Informacje podstawowe "! #$ %!& "! #$ '! R PL/SQL Rozkaz OPEN Rozkaz CLOSE Rozkaz FETCH Rozkaz SELECT... INTO Rozkaz IF Rozkaz LOOP Rozkaz EXIT Rozkaz GOTO LITERATURA
5 Definicja bazy danych W pewnym uproszczeniu przez - danych, a przez system bazy danych " - ) * # *. - ) / ) # 0 # - #1* 2 # ) -/ rozumiany jako: #/ " #/ " # -3-4 # ) -/ -3 * ) # * ( jest opis semantyki (znaczenia) danych, przechowywanych w bazie. System bazy danych ) # 01* ( - #/ modelu danych. Przez model danych rozumiemy - - / ) # # #* 5- / ) # # rzeczywistego, istotnych z punktu widzenia danego zastosowania tworzy schemat bazy danych. Baza danych jest modelem logicznie spójnym ) # celowi. W - ) 0 1 / #* 5 - ## # )* + ) - - aplikacjami* * & - - -/ * - ) # tym celu aplikacje. 6) / ) ) -, 3 ) # * - * 0#1 -* ) - ) * Schemat jest opisem struktury (formatu) przechowywanych danych oraz wzajemnych 7 * 5
6 1.2. danych (SZBD) jest to zestaw programów ) - * + - jest oprogramowaniem ogólnego przeznaczenia. System bazy danych - - )* 1.3. Transakcje $ - #/ 0#/ #1* $ * - ) / - )* ( # - przypadku niepowodzenia którejkolwiek z nich wycofuje instrukcje uprzednio wykonane.. # -, 6
7 ) / ), 0 9 " 91 ) definiowanie struktury danych przechowywanych w bazie, czyli tworzenie schematu implementacyjnego " 691 ) - * 0 : 9 " :91 ) transakcjami (np. zatwierdzanie lub wycofywanie) 7 0; 91 ) - - zgodnych z podanymi warunkami 7
8 2. Typy danych 2.1. Spis typów danych Typ char(size) character varchar(size) date long long varchar raw(size) long raw rowid number Opis : # ) * ) / <==* ( # #/ > Synonim do char W aktualnej wersji ORACLE a jest to synonim do char, konieczne jest * ( ) - #? * Poprawne daty z zakresu 1 stycznia 4712 p.n.e. do 31 grudnia 4712 n.e. "6A"BB *, CD>"8%"EFG : # ) H==!= * 6) / - * synonim do long : - #* + * I <==* (# * : - #*. # * (# szesnastkowej. J #/ *. * ) -/ - przechowywana, ale obliczana na podstawie informacji o fizycznym ) * (#/ ) -/ ROWIDTOCHAR. $ * 8 # / >*D K do 9.99 * * 6) - )* 2.2. Typ numeryczny $ ) - * ) / trzech sposobów: number number (precyzja) number (precyzja, skala) 8
9 . # - ) / >!E* + # - ) / -84 do 127. W momencie definiowania kolumny numerycznej dobrym zwyczajem jest ) # # - * 8# #/ -* 8# #/ * 8# #/ - 4 * 0>D "<1 * : ) ) * A ) - / - ) 4, -0L =1 - * 9- ) ) / * + -# M - >D - )/ * 9.87E-2 oznacza 9.87 * N - ) AI%:9MG -* 6) * - - -, 9
10 Specyfikacja Typ Precyzja Skala number number 38 null number(*) number 38 null number(*, s) number 38 s number(p) number p 0 number(p,s) number p s decimal number 38 0 decimal(*) number 38 0 decimal(*, s) number 38 s decimal(p) number p 0 decimal(p, s) number p s integer number 38 0 smallint number 38 0 float number 38 null float(*) number 38 null float(b) number b null real number 63 binary (18 decimal) null double precision number 38 null 2.3. Konwersje typów ( - ) * / - - ) * / - / *.) - ) AI%:9M, Z typu Do typu char number date char - TO_NUMBER TO_DATE number TO_CHAR - TO_DATE date TO_CHAR ) / # ) - - * (#/ 0J991 # D - ) J99 ) #/ 0J991* 2 O9 / # # # # * O9, 10
11 O90:A66 D1 #/ :A66 #/ - D # :A66 #/ J99* (#/ #/ J99* * - # #, >DDD J99 J99 J99 <DDD >=DD ) 0>DDD P <DDD1Q< R >=DD* 8 ) )/ # N+ J99 N+ A$ J99* 8# ) # # *.) J99 - # ) -/ # ) J99* AI%:9M * $ :A66 R J99 +M9M:$ ) * 8 AI%:9M -* 11
12 3. Model relacyjny 5 - podstawowych elementów: relacyjnych struktur danych ) bazy danych # - # # 3.1. Struktury danych w modelu relacyjnym. - - nu #* ( bazach danych relacja przedstawiana jest w postaci tabeli. Relacja jest zbiorem krotek ) #* S) - * S) - - * S) 0-1 #, #/ 01 #/ # ,! " # $% & '()*)+)*,-'. /" & 01)-2))(,-' )2()()*+! '))2)2)2(*2! 5 & 112(2()2((* 6%!" /" &78 - # - * ( ) 12
13 - # )* - # - * ( # - - jedna jak i druga terminologia. $- ) /, zbiór encji wraz z atrybutami S) - - * ( - / " zabezpieczenie przed tym powtórzeniem jest realizowane poprzez pola kluczowe. Wiersze ) " - * ( - - " ) ) #/ #* ( - - ) /, J) - * S / / - 0) #/1* tabeli. $ - - " - # )* J ) - * Unikaj powtarzania informacji w bazie danych (normalizacja) QL.) - +;9 * A - # # * Rozkaz Typ Opis ALTER TABLE DDL #/ CREATE INDEX DDL Tworzy indeks dla tabeli CREATE SEQUENCE DDL $ - ) - " * + ) )/ unikalnych identyfikatorów w tabelach CREATE TABLE DDL $ - przestrzeni dla danych 13
14 CREATE VIEW DDL - # - - innych widoków DELETE DML J - ) - DROP obiekt DDL J INSERT DML Dodaje nowy wiersz (lub wiersze) do tabeli lub widoku RENAME DDL SELECT DML Wykonuje zapytanie. Wybiera wiersze i kolumny z jednej lub kilku tabel UPDATE DML Zmienia dane w tabeli COMMIT DML S7 ROLLBACK DML ( - punktu. SAVEPOINT DML Zaznacza punkt, do którego mozliwe jest wykonanie rozkazu ROLLBACK SET TRANSACTION DDL 5 " 0 odczytu). 3.3.! Definicje podstawowe N 01 " # - # * I) - ) 0* CTG - CUG1* ## napisanych w ten sposób aplikacji. + " ) +;9* + +;9 ORACLE a przedstawia tabela: access add all alter and any as asc audit between by char check cluster column comment compress connect create current date dba decimal default delete desc distinct drop else exclusive exists file float for from grant graphic group having identified if immediate in increment index install initial insert integer intersect into is level like lock long maxextents minus mode modify noaudit nocompress not nowait null number of offline on online option or order pctfree prior privileges public raw 14
15 rename resource revoke row rowid rownum rows select session set share size smallint start successful synonym sysdate table then to trigger uid union unique update user validate values varchar vargraphic view whenever where with 9- " -/ - * 9- * ( AI%:9M - ) / - * >D ) )/ - CG - CMG*., 7E2 = 7 * e-03 = 25 * 10-3 AI%:9M - ) 7/ CSG - C6G* 9 CSG ) - -/ ) >D<L 0> S1 C6G ) - ) )/ >DLE=VH 0> 61*., 256K = 256 * M = 1 * I +;9 7 # Rozkaz CREATE TABLE I :IM%$M $%9M ) ), # - # - - # - - I :IM%$M $%9M, CREATE TABLE [user.]table ( {column_element table_constraint} [, {column_element table_constraint} ]... ) [ PCTFREE n ] [ PCTUSED n ] [ INITTRANS n ] [ MAXTRANS n ] [ TABLESPACE tablespace ] [ STORAGE storage ] [ CLUSTER cluster (column [, column]...) ] [ AS query ] Parametry: " # - # # - - * $- ) ) / - 0%1 15
16 - " - -/ * ( - ) / W " # * $- / W " # / - - " # - ) #/ - " # - " # 0 # -/ # - 1 ) / - query - jest poprawnym zapytaniem takim samym jak zdefiniowane w rozkazie +M9M:$* 8# ) / " # * 6) ) - * 9- -/ sama jak liczba kolumn w zapytaniu.., CREATE TABLE pracownicy( nr_pracownika NUMBER NOT NULL PRIMARY KEY, imie CHAR(15) NOT NULL CHECK (imie = UPPER(imie)), nazwisko CHAR(25) NOT NULL CHECK (nazwisko = UPPER(nazwisko)), nr_wydzialu NUMBER (3) NOT NULL ); Rozkaz DROP I ) - ) * A /, DROP object_type [user.]object.) ) ) poszczególnych typów obiektów: DROP CLUSTER [user.]cluster [INCLUDING TABLES] - kasowanie * ( N:9JN& $%9M+ - * 8# N:9JN& $%9M+ -/ ) - * * DROP [PUBLIC] DATABASE LINK link " * 8# - / ) 0%1* DROP INDEX [user.]index - kasowanie indeksu. DROP [PUBLIC] ROLLBACK SEGMENT segment - kasowanie segmentu 0-1* 6) / ) * S ) / tylko administrator bazy danych. 16
17 DROP SEQUENCE [user.]sequence - kasowanie sekwencji. DROP [PUBLIC] SYNONYM [user.]synonym - usuwanie synonimu. Synonim - ) / 0%1*. ) / # * DROP TABLE [user.]table " - * ( - # - )* ( - * DROP TABLESPACE tablespace [INCLUDING CONTENTS] - usuwanie - * I ) -/ 0%1* ( przypadku podania klauzuli INCLUDING CONTENTS obszar danych zostanie * 8# N:9JN& :A$M$+ - * DROP VIEW [user.]view " *. - * Rozkaz INSERT I ) * %- / - ) -/ # - 0%1 - / - * +, INSERT INTO [user.]table [ (column [, column]...) ] { VALUES (value [, value]...) query } Parametry: " # - - " - " - -? " #/ # * (#/ ) -/ )* 8# #/ J99 -/ # * X " +M9M:$ #/ # # # * 5 ) / AIMI 2AI 2AI UPDATE. Opis: I N+MI$ ) O%9JM+ * # 0-1 #* S # # J99 0 -/ A$ J991* 8# ) +M9M:$ O%9JM+ ) # 0 1*. 17
18 - # 0 - # 1* 5 ) / ) - * ( # *. -/ #/ - * Y # ) *., INSERT INTO pracownicy VALUES (50, JAN, KOWALSKI, 3); INSERT INTO ksiazki (tytul, autor, miejsce) SELECT 'Pan Tadeusz', autor_nr, miejsce_nr FROM autorzy, miejsca WHERE nazwisko = 'Mickiewicz' AND miejsce = 'lewa polka' ; Rozkaz DELETE I M9M$M ) - * +, DELETE [FROM] [user.]table [alias] [WHERE condition] Parametry: " ) - " - - ) / " - ) M9M$M " / ) /* ( ) / - / * S - ) # $IJM - 2%9+M* Opis: : 7 - *., Skasowanie wszystkich wierszy w tabeli pracownicy: DELETE FROM pracownicy ; + ) numerem 2: DELETE FROM ksiazki WHERE autor = 2 ; 18
19 Rozkaz CREATE SEQUENCE $ ) ) / - * + -/ ) - * przynajmniej uprawnienia RESOURCE w conajmniej jednej przestrzeni tabel. +, CREATE SEQUENCE [user.]sequence [INCREMENT BY n] [START WITH n] [MAXVALUE n NOMAXVALUE] [MINVALUE n NOMINVALUE] [CYCLE NOCYCLE] [CACHE n NOCACHE] [ORDER NOORDER] Parametry: " ) X " -/ -/ -- )* N:IM6M$ B " # ) -* 8# " * # #/ >* ) - ) D* +$%I$ (N$' " - -/ * # # 6NO%9JM 6%ZO%9JM * J #/ MZ$O%9* 6NO%9JM " # #/ ) / * # > #/ ">D<V P >*. A6NO%9JM ) - / # * 6%ZO%9JM " # # ) / * (# # "> >D<V " > * ( A6%ZO%9JM ) - / # * :B:9M A:B:9M " # # A:B:9M ) ) 7 * ( ) - -* ( :B:9M # # # 0 1 cykl generacji numerów. 19
20 :%:'M A:%:'M " :%:'M " -# -* S A:%:'M ) #/* # :%:'M <D* (#/ :%:'M -/ ) MAXVALUE - MINVALUE. AIMI AAIMI " AIMI ) - - * S AAIMI #/* S #/ ) ) #/ 01 * 5 ) do generacji kluczy pierwotnych. Opis: + -/ ) )* %- / # ) ) / +M9M:$ * + ) / * ) - -/ ) - ) - )* 8 ) ) ) ) * ) ) / - ) ) 0 ) )1*, MZ$O%9 :JIIO%9*. MZ$O%9 ) # * +, sequence.nextval X *. :JIIO%9 # * %- ) - ) :JIIO%9 # ) MZ$O%9 * +, sequence.currval X *. MZ$O%9 :JIIO%9 -/ ), +M9M:$ +M9M:$ 0 1 # # N+MI$ ) +M$ J.%$M. MZ$O%9 :JIIO%9 ) )/, podzapytaniach # N+$N:$ z klauzulami ORDER BY, GROUP BY i HAVING w rozkazie SELECT z operatorem ustawienia (UNION, INTERSECT, MINUS) 20
21 ., CREATE SEQUENCE eseq INCREMENT BY 10 ; INSERT INTO pracownicy VALUES (eseq.nextval, Jan, Kowalski, 3) ; Rozkaz SELECT I +M9M:$ ) # - - * 6) -/ ) * %- / # - - -/ # / +M9M:$ - - -/ - (DBA). +, SELECT [ALL DISTINCT] {* table.* expr [c_alias] } [, { table.* expr [c_alias] } ]... FROM [user.]table [t_alias] [, [user.]table [t_alias]]... [ WHERE condition ] [ CONNECT BY condition [START WITH condition] ] [ GROUP BY expr [. Expr]... [HAVING condition] ] [ {UNION INTERSECT MINUS} SELECT...] [ ORDER BY {expr position} [ASC DESC] [, {expr position} [ASC DESC]] ]... [ FOR UPDATE OF column [, column]... [NOWAIT] ] Parametry: %99 " # ) +M9M:$ / * N+$N:$ " # ) / * # # ) +M9M:$ - * K " ) - / pokazane. - *K " ) - / [ " ) # W " 0 1 ) ) # * ( ) - * % -/ ) miejscu zapytania. \*]- " # - ) /* 8# ) # ) 0 SELECT). 21
22 W " # / - - * # ) * ( - / * " / - * ( # * " - ) SELECT, a nie na nazwie. %+: M+: " # ) -/ # - 01* " ) - 2IA6* A(%N$ " # ) AI%:9M / ) / ) #/ - - )* Opis: J) - ) - # -, # - -/ ) +M9M:$ AI%:9M - 7 # - /*. +M9M:$ # *., SELECT imie, nazwisko FROM pracownicy ; SELECT tytul, autorzy.imie, autorzy.nazwisko, miejsca.miejsce FROM ksiazki, autorzy, miejsca WHERE ksiazki.autor = autorzy.autor_nr AND ksiazki.miejsce = miejsca.miejsce_nr ; Rozkaz UPDATE I J.%$M ) - * ( - # - 0%1-7 J.%$M - * +, UPDATE [user.]table [alias] SET column = expr [, column = expr]... [ WHERE condition ] 22
23 lub UPDATE [user.]table [alias] SET (column [, column]...) = (query) [, column [, column]...) = (query) ]... [ WHERE condition ] Parametry: " # - * - " - * " ) - rozkazu. " - * - # * [ " ) " # X " +M9M:$ - AIMI B 2AI J.%$M - * " * ( / #/ $IJM - 2%9+M* ( - # Opis: S +M$ # # -/ * S ('MIM # / ) / # # * 8# ('MIM - * I J.%$M ) ('MIM - # )7 CRG # # * 8# +M$ / ) * S) #/ # # * 8# 0 +M$? R X1 J99* 5 ) / - * 8 - ) J.%$M*., UPDATE pracownicy ; Rozkaz RENAME I IM%6M - - * 5 ) / # - - * 23
24 +, RENAME old TO new Parametry: old - aktualna nazwa tabeli, widoku lub synonimu " ) - - Opis: ( - - * 5 ) / * 5 ) -/, :IM%$M $%9M IA. $%9M IM%6M -, CREATE TABLE temporary (new_column_name) AS SELECT old_column_name FROM table ; DROP TABLE table ; RENAME temporary TO table ;., RENAME wydzialy TO jednostki ; Rozkaz ALTER TABLE I ) - * (, dodaje kolumny i warunki modyfikuje definicje kolumn jak typy i warunki usuwa warunki - ) %:SJ. - * %- / - -/ # - / %9$MI - - -/ 0%1* +, ALTER TABLE [user.]table [ADD ( {column_element table_constraint} [, {column_element table_constraint}]...) ] [MODIFY (column_element [,column_element]...)] [DROP CONSTRAINT constraint]... [PCTFREE integer] [PCTUSED integer] [INITTRANS integer] [MAXTRANS integer] [STORAGE storage] [BACKUP] Parametry: \*]- " # - - /* 8# ) # ) * 24
25 %Q6AN2B W " - - # # # * % - W " # - * IA. " - * %:SJ. " #/ 0 1 ) -G - wykonywania rozkazu ALTER TABLE. Opis: 8# ) % - #/ ) - J99* ( ) A$ J99 wierszy. S 6AN2B ) / ) -, rozmiar typ danych NOT NULL 5 - ) lko wtedy, gdy wszystkie # J99* 6) ) A$ J99 # * 8# jest rozmiar kolumny zadeklarowanej jako NOT NULL i w klauzuli MODIFY nie poda A$ J99 A$ J99* ( M9M:$ K 2IA6 ***1 ) / # - *., ALTER TABLE pracownicy ADD (placa NUMBER(7, 2)) ; ALTER TABLE pracownicy MODIFY (placa NUMBER(9, 2)) ; Rozkaz CREATE INDEX I - - * N -# - * N ) # * N ) / # - ) NMZ danej tabeli lub administrator (DBA). +, CREATE [UNIQUE] INDEX index ON {table(column [ASC DESC][, column [ASC DESC]]...) 25
26 CLUSTER cluster} [INITTRANS n] [MAXTRANS n] [TABLESPACE tablespace] [STORAGE storage] [PCTFREE n] [NOSORT] Parametry: JN;JM " ) - # * ( AI%:9MG # JN;JM - - ) / * " * -/ ) - - )* - " - * column - nazwa kolumny w tabeli. %+: M+: " AI%:9M - # < * :9J+$MI " # A+AI$ " AI%:9MG ) - ) indeksu. Opis: N, * ) / ) # ) #/ # - * ) -/ ) >H * Jeden element # * ( ) -/ ) - #/ * #/ )* 8# % : # ) do wyszukiwania konkatenacji kolumn A, B, C, kolumn A i B lub tylko kolumny A. Nie - ) : - pojedynczej kolumny B lub C. 6) # - - * ) / ) - ) #/ ) #/ *., CREATE INDEX i_prac_imie ON pracownicy (imie) ; 26
27 Rozkaz CREATE VIEW I ) * J/ ) # - ) co najmniej uprawnienia SELECT lub administrator. +, CREATE VIEW [user.]view [(alias [, alias]...)] AS query [ WITH CHECK OPTION [CONSTRAINT constraint] ] Parametry: " # view - nazwa tworzonego widoku X " - - * 5 ) -/ +M9M:$ AIMI B ani FOR UPDATE. (N$' :'M:S A.$NA " ) # - * S (N$' :'M:S A.$NA ) -/ ) - * :A+$I%N$ " (N$' :'M:S A.$NA* Opis: Widok jest logicznym oknem dla jednej lub kilku tabel. W ##, widok nie przechowuje danych - jest on przeznaczony do pokazywania danych zawartych w innych tabelach. ) -/ ) +;9 ) ) - ) ) ) / gdy zapytanie na którym bazuje widok zawiera: klauzule GROUP BY, CONNECT BY lub START WITH N+$N:$ - ) # 6) tóry posiada pseudokolumny - ) J.%$M - )* ( ), - - # )# " ) -/ ) - - ) - * 27
28 " ) / ) zmiany nazwy kolumny bez zmiany rzeczywistych danych zapisanych w tabeli. #*., CREATE VIEW bibl AS SELECT ksiazki.tytul, autorzy.imie, autorzy.nazwisko, miejsca.miejsce FROM ksiazki, autorzy, miejsca WHERE ksiazki.autor = autorzy.autor_nr AND ksiazki.miejsce = miejsca.miejsce_nr WITH CHECK OPTION CONSTRAINT chkopt ; Rozkaz COMMIT +, COMMIT [WORK] Opis: I :A66N$ :A66N$ (AIS a 7 bazie danych Rozkaz ROLLBACK +, ROLLBACK [ WORK ] [TO [ SAVEPOINT ] savepoint ] Parametry: (AIS " - # %+N +%OM.AN$ " IA99%:S savepoint - nazwa punktu zaznaczonego podczas wykonywania aktualnej transakcji. Opis: I IA99%:S ) 0 klauzuli TO) lub poczatku transakcji (bez klauzuli TO).., ROLLBACK ; ROLLBACK TO SAVEPOINT SP5 ; Rozkaz SAVEPOINT +, SAVEPOINT savepoint 28
29 Parametry: savepoint - nazwa punktu w aktualnej transakcji zaznaczanego przez wykonywany rozkaz Opis: I +%OM.AN$ ) IA99%:S * -/ * + - # - ) / *., UPDATE pracownicy SET placa_podstawowa = 2000 WHERE nazwisko = Kowalski ; SAVEPOINT Kow_plac; UPDATE pracownicy SET placa_podstawowa = 1500 WHERE nazwisko = Nowak ; SAVEPOINT Now_plac; SELECT SUM(placa_podstawowa) FROM pracownicy; ROLLBACK TO SAVEPOINT Kow_plac; UPDATE pracownicy SET placa_podstawowa = 1300 WHERE nazwisko = Nowak ; COMMIT; Rozkaz SET TRANSACTION +, SET TRANSACTION { READ ONLY } Parametry: IM% A9B " / Opis: I ) - / 7* ) ) N+MI$ J.%$M - M9M$M* I +M$ $I%+%:$NA / -* 29
30 3.4. Operacje relacyjne A - - * (), " ) - 01 # warunki; " ) " ) 01 # # 7 * Selekcja Operacja ) - 01 # * A ) podzbiorem poziomym.! " # $% & '()*)+)*,-'. /" & 01)-2))(,-' )2()()*+! '))2)2)2(*2! (2()2((* ( +;9 ) +M9M:$ ('MIM*., SELECT * FROM osoby; spowoduje wybranie wszystkich krotek (wierszy) z relacji (tabeli) ludzie. ( - C(G C+AG 0# 1 ) /, SELECT * FROM osoby ; ( -/ )*. - -/ - # 0# " +$ - # " +A1 ) / AI / -, SELECT * FROM osoby ; 30
31 )7 # * Projekcja. ) - # - - +M9M:$ * A ) podzbiorem pionowym.! " # $% & '()*)+)*,-'. /" & 01)-2))(,-' )2()()*+! '))2)2)2(*2! (2()2((* &9 : '()*)+)*,-' 01)-2))(,-' & 4 ++2)2()()*+! '))2)2)2(* (2()2((*. ) / +M9M:$,!" #$%%& ' A -/ +M9M:$* N /. - # ) /, SELECT Pesel, Nazwisko FROM osoby 31
32 ; Bazy danych Robert Chwastek Produkt * A ) - - ) ) ) * ( # ) *. 7 * / ;2 ;( / / / ) +M9M:$*. ) /, SELECT * FROM R1, R2; Operacja znajd 7 ) -/ ) - - #* A - # * ( - * 32
33 / 69 2 / % 2! 2 ( ( 3<== ( * 2 / / % %! A ) / SELECT. SELECT imie, nazwisko, tytul FROM autorzy, ksiazki WHERE autorzy.nazwisko = Mickiewicz and autorzy.nr = ksiazki.autor ; A # -* ( +;9 ) / 0-1 ) - * Unia J " #1* ( # #/ *. ) - # 0 1, SELECT imie, nazwisko FROM pracownicy UNION SELECT imie, nazwisko FROM wlasciciele ; Przekrój Prze 3/ - - * *.- # #/ - - bazowych..) 0* 1 # * 33
34 SELECT nazwisko FROM pracownicy INTERSECT SELECT nazwisko FROM wlasciciele ; Operacj - ) *. - # niej zatrudnieni: SELECT imie, nazwisko FROM wlasciciele MINUS SELECT imie, nazwisko FROM pracownicy ; Grupowanie S &IAJ. B '%ON& +M9M:$ / -/ ) - / 0 1 * A * * Klauzu &IAJ. B ) * +-, SELECT stanowisko, avg(placa_podstawowa) FROM pracownicy GROUP BY stanowisko ; N ) #/ a grupy. ('MIM, SELECT stanowisko, avg(placa_podstawowa) FROM pracownicy WHERE stanowisko!= KIEROWCA GROUP BY stanowisko ; ) -/ )) ) * ( ) ) stanowiska: SELECT wydzial, stanowisko, avg(placa_podstawowa) FROM pracownicy GROUP BY nr_wydzialu, stanowisko ; S '%ON& # # * : # / )! DDD ) /, SELECT stanowisko, max(placa_podstawowa) FROM pracownicy 34
35 GROUP BY stanowisko HAVING max(placa_podstawowa) > 3000 ; !"!#$ S +M9M:$ #, 1. SELECT i WHERE 2. GROUP BY 3. HAVING 4. ORDER BY 3.5. Podzapytania 5 +;9 -/ )) * ) -/ ) * *. ) / dwa rodzaje: podzapytania proste (nazywane po prostu podzapytaniem) - podzapytanie jest wykonywane przed 4 " ) * # ) ('MIM +M9M:$* 8# ) - #/ #/ ) )/ -# ('MIM -, SELECT nazwisko FROM pracownicy WHERE placa_podstawowa = (SELECT min(placa_podstawowa) FROM pracownicy) ;.) - * 8# - # ) N * - ) )/, SELECT nazwisko, nr_wydzialu FROM pracownicy WHERE placa_podstawowa IN (SELECT min(placa_podstawowa) FROM pracownicy GROUP BY nr_wydzialu) ; 35
36 9- # -/ operatora IN. ( / ) ) %B %99* A %B / ) * A %99 ) * + %B %99 ) # *. ) / ) '%ON&*.) # # - )!D, SELECT nr_wydzialu, avg(placa_podstawowa) FROM pracownicy GROUP BY nr_wydzialu HAVING avg(placa_podstawowa) > (SELECT avg(placa_podstawowa) FROM pracownicy WHERE nr_wydzialu = 30) ; 5 -/ )) #/ *. ) 7 ) /, ) / AIMI B 0) / 14 )) # - )) - ) * Podzapytanie skorelowane jest zapytaniem zagnie)) dla % *. #/ ) * ) -- ) #, SELECT imie, nazwisko, placa_podstawowa, nr_wydzialu FROM pracownicy pracownik WHERE placa_podstawowa > (SELECT avg(placa_podstawowa) FROM pracownicy WHERE nr_wydzialu = pracownik.nr_wydzialu) ; ( * 8# ) - 0 ^@1* 36
37 3.6. Widoki (perspektywy) ( * * ) * ( * ( * (, )# 5 #/ - ) /, proste ) ( +M9M:$ ) danych zawartych w widoku. Widok - 7 +;9 ) * ( ) - ) / * : ) #/ ) # - ) # 0 wszystkich systemach). ) # :IM%$M ONM(*.) ) # 1, CREATE VIEW personalia AS SELECT imie, nazwisko FROM pracownicy ; $ ) - opisie rozkau CREATE VIEW: CREATE VIEW bibl AS SELECT ksiazki.tytul, autorzy.imie, autorzy.nazwisko, miejsca.miejsce FROM ksiazki, autorzy, miejsca WHERE ksiazki.autor = autorzy.autor_nr AND ksiazki.miejsce = miejsca.miejsce_nr ; 37
38 3.7. Transakcje $, :A66N$ IA99%:S*. ) - *. - * A J.%$M " - - * 5 ) -/ - - )* 8# ^@ - ^)@* I :A66N$ ) racji.. ) - )* ( J.%$M ) / :A66N$ * A - )* I IA99%:S # :A66N$* 8 ) 7 - rozkazu COMMIT lub ROLLBACK. Rozkaz SAVEPOINT pozwala na zaznaczenie i nazwanie pewnego punktu * ( - IA99%:S $A ) # 0* 1* ( IA99%:S $A # 7 )* ( IA99%:S - COMMIT powoduje skasowanie wszystkich uprzednio zaznaczonych punktów ) 7/ :A66N$ - IA99%:S* 8# / /* 6) / - - skrypt Normalizacja relacji Cele normalizacji - )* 8 ) / ) 0 1 * 8# - 0* / -/ - - 1* N ) ) # - 0* 1* (3 - * I ) / -, 38
39 nazwa przedmiotu, imie, nazwisko, (%)*%. - / /, +,- *!" ".%" ul. Królewska 30/3 Kraków) 8 -, # ) - S - 4 ) / redundancja danych; 0* 1 #/ #4 ) ) /4 ) / ) - * J # - * 8 ) / -,., /%" 0-" %" % (%% " 0,%%12" ulica, nr_domu, nr_mieszkania 5 "(%)*% S) ^5@ ^.@ - ^W@* $ # ) ), # ) * # 4 0* 1 # ^5@* 5-4 ) - / -/ ) * 8 - # * * I # # - * # # - #*. / - - ) - / * (#/ - ) #
40 *. postaci normalnej ilustruje rysunek: >% $ >% # % $% % / % # 7 $%7 #"78 ))2 )2). - )1+ % *) )11 %#?4 1) ))( )() &"* )') $< 2) ))* )2). - )1+ % +) )') $< 21 >% $ >% # % $% % / % # 7 $%7 #"78 ))2 )2). - )1+ % *) ))2 )2). - )11 %#?4 1) ))( )() &"* )') $< 2) ))* )2). - )1+ % +) ))* )2). - )') $< Definicje pomocnicze %- / postaci normalnej. Przed omówieniem procesu normalizacji konieczne jest jednak /, 40
41 Uniwersalny schemat relacji R = {A 1, A 2,..., A n _ - - * &' R = {A 1, A 2,..., A n } nazywamy zbiór atrybutów S R, który jednoznacznie identyfikuje wszystkie krotki relacji o schemacie R. Inaczej ) I / 1 i t 2 ) t 1 [S] = t 2 [S]. Kluczem S I - * ) nie istnieje K S - - I* S )* Klucz nazywamy kluczem prostym ) - - jest zbiorem jednoelementowym; w przeciwnym wypadku mamy do czynienia z %* # ) )/ nazywamy kluczami potencjalnymi* # potencjalnych nazywamy ( * ^5@ - 0 N #1* ) )/ ) ) ) / #* Atrybut relacji nazywamy podstawowym ) ) relacji. Atrybut relacji nazywamy wtórnym ) ) ) * Atrybut B relacji R jest ' % - % 0 # ) ) % identyfikuje B i oznacza A 1 # # - % ) #/ - - * 5 )#/ - % # )# - #* N ) - % 0* ) ) %1 - % * ( - )# ^5@ ) /, 41
42 $>% #% $%% / % #7 $%7 #"78 Atrybut B jest ' % zbioru atrybutów X w schemacie R, ) Z Y i nie istnieje podzbiór X Z ) ZG Y. ) / ) )# )# * Zbiór atrybutów Y jest ' % zbioru atrybutów X w I ) Z Y i istnieje podzbiór X Z ) ZG Y. Z B *.- atrybutów Z jest ' % - - Z # ) - - B - - B ) - - Z - - Z ) B - - B ) 5*. ^5@ - ) - ) - ) - - ) I# ) )/ ) ) 0 -/ 1 0) ) / * 6 ) - - B # ) - - Z I ) I dla dowolnej pary krotek t 1 i t 2 ) 1 [X] = t 2 [X], istnieje taka para krotek s 1 i s 2 ) s 1 [X] = s 2 [X] = t 1 [X] = t 2 [X] oraz s 1 [Y] = t 1 [Y] i s 1 [R-X-Y] = t 2 [R-X-Y] oraz s 2 [Y] = t 2 [Y] i s 2 [R-X-Y] = t 1 [R-X-Y]. 42
43 6 ) 1 i t 2 ) # - - Z [x] = t 2 [X]), # - - B sposób krotki s 1 i s 2 ) ) *. / ) ^%@ ^6@ :@ ^@ ^8@ ^8@ ) / -,!% $% 6%" 6%" 6%" 6%" $% $% $% $% $% $% /. /... 3% 3% 3 3 /" /" & 3< 3< ">% ">% ">% A# - Z R 01 B R 01 ) I-X-Y = 0(1*., t 1 R 0S % 8 :1 t 2 = (Kowalski, Magda, Systemy operacyjne) odpowiada para krotek s 1 = (Kowalski, Agnieszka, Systemy operacyjne) s 2 R 0S 6 8 :1 ) / ) ) ) # )# wypadku jednoelementowego zbioru atrybutów (Dziecko) od jednoelementowego - - 0(11* 5 # )# ), - # ) zbioru atrybutów X 43
44 # ZBRI Z # ) B * 5 )# % funkcjonalnymi. I R 0% 1, A 2,..., A n I 1, R 2,..., R m 1 ) ) schemat R i z tego zbioru stanowi podzbiór zbioru atrybutów (A 1,..., A n 6 ) I R 0% 1,..., A n 1 )#/ 0, KI\I 1,..., R n ]1 ) dekompozycja relacji r (o schemacie R) na relacje r 1,..., r n ) ) / 1,..., r m. 6) / ) # )#/ )# R <* 6 ) )#/ KI\I 1,..., R m ] )# atrybutów schematu R od klucza wtedy i tylko wtedy, gdy w dowolnej sekwencji 7 ) - I* ) I ) ) - 0* ) 1 ) * 6) )/ ) ^5@ ) - ^ #@ ) " ^N #@1* ( ) / - - ) * ( ^5@ ) /, ^:#@ -, %>% $ >% # % $% % ))2 )2). / % - ))( )() &"* ))* )2). - 44
45 >% % $ >% ))2 ))2 ))( ))* ))* # 7 )1+ )11 )') )1+ )') #"78 *) 1) 2) +) 21 <7 # 7 )1+ )11 )') $%7 % %#?4 $< 8 / ) ^:#@ - ^N #/@ ) ) ^N #@1* ) )/ ) - # kluczami prostymi.. relacji Zamówienia do drugiej postaci normalnej otrzymujemy )#, Dostawca na zamówieniu 45
46 $>% #% $%% / % Zamówione dostawy $>% #7 #"78 :# #7 $% $ # ) - ) ) ) * %- / - )# ) / )#/ *., / < / < ( )#/ - - ^ 46
47 @ ( ^5@ ^@ -, >% $ >% # % ))2 )2) ))( )() ))* )2) % # % )2) $% %. / % - )() &"* )*)! # I - Z B 5 - I ) Z Y Z = R i podzbiór Y jest nietrywialnie # ) Z* Dana relacja R jest w czwartej postaci normalnej wtedy i tylko wtedy, gdy jest w # )#/ - B Z - )#/ - Z* ` )/ ) - ^.@ # )# funkcjonalnej jest w trzeciej postaci normalnej, ale nie jest w czwartej postaci normalnej, ) - ^@ ^(@ ) - ^@ * ) )#/ atrybutami. 8 # )#/ * + ) # )#/ ) / - / )# * 47
48 ( ) /, ^(@ - / # )#/, $% 6%" 6%" $% $% $% /.. 3% 3 /" & $% 6%" 6%" $% $% & 3< ">% I wtedy i tylko wtedy, )# KI\I 1,..., R m ] )#/ )# - klucza. ) # ) ) - / 0 -/ 1 - ) / - - ) * ( ) / - ) * Podsumowanie. ) # # - * 48
49 . - / - * J * 6 - / )#/ - ) / - #/ * 49
50 4. " ( ) * 4.1. Operatory + +;9 * Operatory arytmetyczne A nego. Jednak -/ ) %$M* + -, Operator Opis ( ) 5 #/ SELECT (X+Y)/(Y+Z)... 7* ( * +, - Operatory jednoargumentowe zachowania i zmiany znaku.... WHERE NR = WHERE -PLACA < 0 *, / 6) SELECT 2*X+1... WHERE X > Y/2 +, - Dodawanie, odejmowanie SELECT 2*X+1... WHERE X > Y-Z Operatory znakowe 8 nkatenacji. I - * ) / ) :'%I -/ ) ) <== * A ) - operatora konkatenacji. Operator Opis S SELECT Nazwa: ENAME... 50
51 Operatory porównania A ) )7* ( #/ 0$IJM - 2%9+M1* Operator Opis ( ) 5 #/... NOT (A=1 OR B=1) 7 = + )... WHERE PLACA = 1000 równe!=, ^=, <> + )... WHERE PLACA!= 1000 ) > ( )... WHERE PLACA > 1000 < 6 )... WHERE PLACA < 1000 >= ( - )... WHERE PLACA >= 1000 <= 6 - )... WHERE PLACA <= 1000 IN Równy dowolnemu elementowi.... WHERE ZAWOD IN Synonim do = ANY ( URZEDNIK, INFORMATYK ) NOT IN I) ) * ( 2%9+M # dowolny element zbioru jest równy NULL Synonim do!= ALL ANY. #/ ) # - * 6 -/ jednym z operatorów: =,!=, >, <, ar br* 5 $IJM # przynajmniej jeden z elementów * ALL. #/ ) # - * 6 -/ jednym z operatorów: =,!=, >, <, ar br* 5 $IJM # ) warunek. [NOT] BETWEEN... WHERE PLACA IN (SELECT PLACA FROM PRAC WHERE WYDZIAL=30)... WHERE PLACA NOT IN (SELECT PLACA FROM PRAC WHERE WYDZIAL=30)... WHERE PLACA = ANY (SELECT PLACA FROM PRAC WHERE WYDZIAL =30)... WHERE (PLACA, PREMIA) >= ALL ((14900, 300), (3000, 0)) \] - [... WHERE A BETWEEN 1 AND 9 mniejszy lub równy y. 51
52 x AND y [NOT] EXISTS [NOT] LIKE IS [NOT] NULL 5 $IJM # \] zwraca przynajmniej jeden wiersz. \] * 9 CcG ) 0D - 1 jest równy NULL. Litera _ * [Nie] jest równe NULL.... WHERE EXISTS (SELECT PLACA FROM PRAC WHERE WYDZIAL = 30)... WHERE STAN LIKE T%... WHERE ZAWOD IS NULL A A$ N 2%9+M 0 ('MIM ) ) 1 # / NULL. Np. rozkaz: SELECT TRUE FROM prac WHERE wydzial NOT IN (5, 15, NULL) ; ) ) wydzial NOT IN (5, 15, NULL) wydzial!= 5 AND wydzial!= 15 AND wydzial!= NULL ( # J99 #/ J99* ) - #/ J99* Operatory logiczne A ) - 7 # 0 # - - 1* Operator Opis ( ) 5 #/ SELECT... WHERE x = y AND (a = b 7 OR p = q) NOT 5 ) "... WHERE NOT (zawod IS NULL) gicznego WHERE NOT (A=1) AND Logiczne i. Wynik jest równy... WHERE A = 1 AND B = 2 $IJM # # - $IJM OR Logiczne lub. Wynike jest równy... WHERE A = 1 OR B = 3 $IJM #/ 52
53 jednego operandu jest równa TRUE.) - % AI ) #, AND true false null true true false null false false false false null null false null OR true false null true true true true false true false null null true null null Operatory zbiorowe 7 - #* Operator Opis UNION J -* `... SELECT... - UNION SELECT... * INTERSECT :#/ -*. tylko raz MINUS A- ) -* ( - * M tylko raz... SELECT... INTERSECT SELECT SELECT... MINUS SELECT " () - # - * ( - ) -/ #* ( # ) operandów. ) ), numeryczny: 2 * 2 znakowy: TO_CHAR(TRUNC(SYSDATE + 7)) 53
54 () ) -/ ) ) ) # *, SET Nazwisko = LOWER(Nazwisko) N / )7, - #/ +, [table.] { column ROWID } text number sequence.currval sequence.nextval NULL ROWNUM LEVEL SYSDATE UID USER., pracownicy.nazwisko %,)*3 10 SYSDATE +, : { n variable } [ :ind_variable ]., :nazwisko_pracownika:nazwisko_pracownika_indykator 4(%%5 +, function_name( [DISTINCT ALL] expr [, expr]... )., LENGTH( Kowalski ) ROUND( *82) - )7 +, (expr) +expr, -expr, PRIOR expr expr * expr, expr / expr expr + expr, expr - expr, expr expr., ( Kowalski: Nauczyciel ) LENGTH( Nowak ) * 57 SQRT(144) + 72 )7 +, (expr [, expr],...) 54
55 ., ( Kowalski, Nowak, Burzynski ) (10, 20, 40) (LENGTH( Kowalski ) * 5, -SQRT(144) + 77, 59) () ), # +M9M:$ jako warunek w klauzulach WHERE i HAVING w klauzulach CONNECT BY, START WITH, ORDER BY klauzuli VALUE w rozkazie INSERT w klauzuli SET rozkazu UPDATE 4.3. Warunki ( - )7 * ( - # $IJM - 2%9+M* ( / ), ) - <expr> <comparison operator> <expr> <expr> <comparison operator> <query> <expr-list> <equal-or-not> <expr-list> <expr-list> <equal-or-not> <query> porównanie z dowolnym lub ze wszystkimi elementami listy lub zapytania <expr> <comparison> { ANY ALL } ( <expr> [, <expr]...) <expr> <comparison> { ANY ALL } <query> <expr-list> <equal-or-not> { ANY ALL } ( <expr-list> [, <expr_list>]...) <expr-list> <equal-or-not> { ANY ALL } <query> )# - <expr> [NOT] IN ( <expr> [, <expr>]... ) <expr> [NOT] IN <query> <expr-list> [NOT] IN ( <expr-list> [, <expr-list>]... ) <expr-list> [NOT] IN <query> )# # <expr> [NOT] BETWEEN <expr> AND <expr> #/ J99 <expr> IS [NOT] NULL 55
56 EXISTS <query> kombinacja innych warunków (podana zgodnie z priorytetami) ( <condition> ) NOT <condition> <condition> AND <conditin> <condition> OR <condition>., Nazwisko = Kowalski pracownicy.wydzial = Wydzialy.Wydzial Data_urodzenia > 01-JAN-67 Zawod IN ( Dyrektor, Urzednik, Informatyk ) Placa BETWEEN 500 AND
57 5. #! 5.1. Funkcje numeryczne Przeznaczenie ABS(n) 5 #/ - - ABS(-15) Wynik: 15 CEIL(n) CEIL(15.7) Wynik: 16 FLOOR(n) FLOOR(15.7) Wynik: 15 MOD(m, n) 5 - MOD(7, 5) Wynik: 2 POWER(m, n) 5 - * 9- -/ 4 -* POWER(2, 3) Wynik: 8 ROUND(n[, m]) SIGN(n) 5 - * 8 D* 9- ) -/ - 0 odpowiedniej liczby cyfr przed przecinkiem) 5 D # D "> # D > # od 0 SQRT(n) Zwraca pierwiastek kwadratowy liczby n. 8# ad - TRUNC(m[, n]) 5 - * 8# D* 8# - * ROUND(16.167, 1) Wynik: 16.2 ROUND(16, 167, -1) Wynik: 20 SIGN(-15) Wynik: -1 SQRT(25) Wynik: 5 TRUNC(15.79, 1) Wynik: 15.7 TRUNC(15.79, -1) Wynik: Funkcje znakowe Przeznaczenie CHR(n) Zwraca znak o podanym kodzie CHR(65) Wynik: A 57
58 INITCAP(string) LOWER(string) LPAD(string1, n [, string2]) LTRIM(string [, zbiór]) REPLACE(string, search [, replace]) RPAD(string1, n [, string2]) RTRIM(string [, zbiór]) SOUNDEX(string) SUBSTR(string, m [, n]) 5 ) ) * Zamienia wszystkie litery w podanym * 5 > # <* 8# < * 8# # > zwracane jest n pierwszych znaków z tekstu string1. Usuwa litery z tekstu string od lewej ) ) -* 8# - pusty. 5 ) replace. 5 > # <* 8# < * 8# # > zwracane jest n pierwszych znaków z tekstu string1. 5 > -* 8# - 5 >* 2 +AJMZ ) -/ ) ) - wymawianych tak samo. 5 # * 8# 58 INITCAP( PAN JAN NOWAK ) Wynik: Pan Jan Nowak LOWER( PAN JAN NOWAK ) Wynik: pan jan nowak LPAD( Ala ma, kota*, 17) Wynik: kota*kota*ala ma LTRIM( xxxxxxostatn G C[G1 Wynik: REPLACE( Jack & Jue, J, Bl ) Wynik: Black & Blue RPAD( Ala ma, 17, kota* ) Wynik: Ala ma kota*kota* RTRIM( Ostatnie [[Z[[[G C[G1 Wynik: ^A [[Z@ SELECT nazwisko FROM bibl WHERE SOUNDEX (nazwisko) = SOUNDEX ('Mickiewicz'); SUBSTR( ABCDE,2, 3) Wynik:
59 TRANSLATE( string, from, to) UPPER(string) ASCII(string) INSTR(string1, string2 [, n [, m]]) LENGTH(string) * wszystkich znaków from na znak to. 5 ) * BCD TRANSLATE( HELLO! THERE!,!, - ) Wynik: HELLO- THERE- UPPER( Jan Nowak ) Wynik: JAN NOWAK ASCII( A ) Wynik: 65 INSTR( MISSISSIPPI, S, 5, 2) Wynik: 7 Zwraca kod ASCII pierwszej litery w 5 " < > # * 8) #/ >* 8# #/ >* 5 #/ * LENGTH( Nowak ) Wynik: Funkcje grupowe 2 #* # * S &IAJ. B +M9M:$ ) / * S N+$N:$ - # 0 pomijane). Klauzula ALL powoduje wybranie wszystkich wierszy wynikowych do - * ( # J99 :AJ$0K1* () - -/ :'%I J6MI - %$M* Przeznaczenie AVG( [DISTINCT ALL] num) 5 #/ # # SELECT AVG(placa) Srednia FROM pracownicy COUNT( [DISTINCT ALL] expr) 5 - których expr nie jest równe SELECT COUNT(nazwisko) Liczba FROM pracownicy COUNT(*) NULL SELECT COUNT(*) Wszystko FROM pracownicy
60 MAX( [DISTINCT ALL] expr) MIN( [DISTINCT ALL] expr) STDDEV( [DISTINCT ALL] num) SUM( [DISTINCT ALL] num) VARIANCE( [DISTINCT ALL] num) NULL 5 #/ ) 5 #/ ) Zwraca odchylenie # # J99* 5 # * 5 # # NULL SELECT MAX(Placa) Max FROM pracownicy SELECT MIN(Placa) Min FROM pracownicy SELECT STDDEV(Placa) Odchylenie FROM pracownicy SELECT SUM(Placa) Koszty osobowe FROM pracownicy SELECT VARIANCE(Placa) Wariancja FROM pracownicy 5.4. Funkcje konwersji 2 ) # #/ * A, typtotyp. Pierwszy typ jest typem, z którego wykonywana jest konwersja, drugi jest typem wynikowym. Przeznaczenie ( znaków na ROWID CHARTOROWID (string) CONVERT(string [,dest_char_set [,source_char_set ] ]) HEXTORAW (string) ROWTOHEX(raw) ( ) implementacjami zestawu znaków. Zestawem # J+V%+:NN* S #/ - ) #/ I%(. #/ cyfry szesnastkowe liczbie. 60 SELECT nazwisko FROM pracownicy WHERE ROWID = CHARTOROWID ( F ) SELECT CONVERT ( New WORD, US7ASCII, WE8HP ) Conversion FROM DUAL INSERT INTO GRAPHICS (RAW_COLUMN) SELECT HEXTORAW ( 7D ) FROM DUAL SELECT RAWTOHEX (RAW_COLUMN) Graphics FROM GRAPHICS ROWIDTOCHAR. SELECT ROWID FROM
61 TO_CHAR(n [, fmt]) (konwersja numeryczna) TO_CHAR(d [, fmt]) (konwersja daty) TO_DATE(string [, fmt]) wiersza na tekst. Wynik #/ 18 znaków. S #/ ) * 8# #/ - / * S ) *. * J) # -/ podanego tekstu. Do ) - #/ # DD-MON-YY TO_NUMBER (string). - - GRAPHICS WHERE ROWIDTOCHAR(ROWID) LIKE %F38% SELECT TO_CHAR(17145, $099,999 ) Char FROM DUAL SELECT TO_CHAR(HIREDATE, Month DD, YYYY ) New date format FROM EMP WHERE ENAME = SMITH INSERT INTO BONUS (BONUS_DATE) SELECT TO_DATE ( January 15, 1989, Month dd, YYYY ) FROM DUAL UPDATE EMP SET SAL = SAL + TO_NUMBER( SUBSTR( $100 raise', 2, 3)) WHERE ENAME = 'BLAKE 5.5. Funkcje operacji na datach Przeznaczenie 5 - * 9- ) -/ ujemna ADD_MONTHS (date, n) LAST_DAY(date) 5-61 SELECT ADD_MONTHS (HIREDATE, 12) Next year FROM EMP WHERE ENAME = SMITH SELECT LAST_DAY (SYSDATE) Last
62 MONTHS_BETWEE N (date1, date2) NEW_TIME(date, a, b) NEXT_DAY(date, string) ROUND(date [, fmt]) SYSDATE podanej dacie. FROM DUAL 5 - > <* ( ) -/ - * :#/ # 31 dni. 5 - # *. - ) -/ z: AST, ADT - Atlantic Standard or Daylight Time BST, BDT - Bering Standard or Daylight Time CST, CDT - Central Standard or Daylight Time EST, EDT - Eastern Standard or Daylight Time GMT - Greenwich Mean Time HST, HDT- Alaska-Hawaii Standard or Daylight Time MST, MDT - Mountain Standard or Daylight Time NST - Newfoundland Standard Time PST, PDT - Pacific Standard or Daylight Time YST, YDT - Yukon Standard or Daylight Time 5 tygodnia podanego w string, 3 ) *. -/ * 5 * # - ) 7* 5 * Nie wymaga podania argumentów. SELECT MONTHS_BETWEEN ( 02-feb-86, 01-jan-86 )) Months FROM DUAL SELECT TO_CHAR( NEW_TIME(TO_DATE( 17:47, hh24:mi ), PST, GMT ), hh24:mi ) GREENWICH TIME FROM DUAL SELECT NEXT_DAY( 17-MAR-89, TUESDAY ) NEXT DAY FROM DUAL SELECT ROUND ( TO_DATE( 27-OCT-88 ), YEAR ) FIRST OF THE YEAR FROM DUAL SELECT SYSDATE FROM DUAL 62
63 TRUNC(date [, fmt]) 5 - jednostki podanej w fmt. # 7 * usuwana jest informacja o czasie. SELECT TRUNC( TO_DATE( 28-OCT-88, YEAR ) First Of The Year FROM DUAL ( IAJ $IJ: ) )/ - -, CC, SCC wiek SYYY, YYYY, YEAR, 0 ) >*DV1 SYEAR, YYY, YY, Y Q 0 >H" 1 MONTH, MON, MM 0 >H1 WW 7 W 7 DDD, DD, J 7 DAY, DY, D - ) HH, HH12, HH24 godzina MI minuta 5.6. Inne funkcje Przeznaczenie 5 #* ( ) konwertowane do typu ) wykonaniem porównania. GREATEST(expr [, expr]...) LEAST(expr [, expr]...) NVL (expr1, expr2) 5 #* ( ) konwertowane do typu ) wykonaniem porównania. 8# [> J99 zwraca expr2, w przeciwnym wypadku zwraca expr1. SELECT GREATEST ( Harry, Harriot, Harold ) GREATEST FROM DUAL SELECT LEAST ( Harry, Harriot, Harold ) LEAST FROM DUAL SELECT ENAME NVL(TO_CHAR(COMM), NOT APPLICABLE ) COMMISION FROM EMP WHERE DEPTNO = 30 63
64 UID Zwraca unikalny identyfikator ) * 64 SELECT USER, UID FROM DUAL USER 5 ) SELECT USER, UID FROM DUAL 5.7. Formaty zapisu danych 2 ), - # 4 ) # * 2 ) $AW:'%I $AW%$M* Formaty numeryczne 2 ) $AW:'%I # #/ * J) - * 8 #/ ) #/ CKG*.) - ) / numerycznego: Element Opis CFG # #/ # $ $9999. #/ CTG B B9999 (# 0 1 MI 9999MI (# C"C # PR 9999PR (# #/ CaG >, (przecinek) 9,999 (#. (kropka) (# V 999V99 6) #/ >D n - po V E 9.999EEEE (# - 0 / M1 DATE DATE Dla dat przechowywanych w postaci numerycznej. (# C66QQBBG Formaty dat 2 ) $AW:'%I # * 6 -/ ) ) $AW%$M # * Format standardowy, to DD-MON-YY.
65 Elementy formatu dat przedstawia tabela: Element Opis SCC lub CC (4 C+G C"C YYYY lub SYYYY : C+G - YYY, YY lub Y Ostatnie 3, 2 lub 1 cyfra roku Y,YYY Rok z przecinkiem na podanej pozycji SYEAR lub YEAR Rok przeliterowany. S powoduje poprzedzenie daty przed C"C BC lub AD 5 :Q% 0 Q 1 B.C. lub A.D Znak BC/AD z kropkami Q S 0> <! - L1 MM 6 0D>"><1 MONTH F MON $ WW $7 0>"=<1 07 i trwa 7 dni) W $7 0>"=1 07 V 1 DDD 7 0>"!HH1 DD 7 0>"!>1 D 7 0>"V1 DAY F DY Trzyliterowy skrót nazwy dnia AM lub PM (3 A.M. lub P.M. (3 HH lub HH12 Godzina (1-12) HH24 Godzina (1-24) MI Minuta (0-59) SS Sekunda (0-59) SSSS + 0D"EH!FF1 /., Znaki przestankowe umieszczane w wyniku... : # ) )/, 26 " ^2 6@ Q liczb zerami; $' " # - * L TH dla liczby 4; +. " ) +.$' - $'+. " +. $'* 65
66 6. Programowanie proceduralne - PL/SQL 6.1. Wprowadzenie I +;9 - # # - * A +;9.9Q+;9* PL/SQL pozwala wykorz/ +;9* ( 0%9$MI :IM%$M IM%6M1 niektóre rozkazy kontroli danych jak CONNECT, GRANT i REVOKE. S.9Q+;9 +;9 z 7 * 6) +;9 +;9 0* 1 * S).9Q+;9 7 #* PL/SQL pozwala na definiowa * 5 ) * 8 -/ )* S) * $ +;9G* 5 *, premia NUMBER(7, 2); (#/ ^,R@ *, podatek := cena * stopa; ) #/ # ) +M9M:$ - 2M$:' #, SELECT placa INTO placa_aktualna FROM pracownicy WHERE nazwisko = Nowak ;.9Q+;9 pola. N ) #/ * - ) :A+$%$ # *, stopa_premii CONSTANT NUMBER(3, 2) := 0.10; ( - -* 8 0 1* 6) ) c$b.m * * 5 / - 0 ) )/ ) - 1, tytul books.tytul%type 6) ) - * ( ) )/ cia($b.m* 66
67 (.9Q+;9 ) / 7, R UR a b br ar* 6 / ), 0 1* 6.2. Struktura bloku S.9Q+;9 - *, DECLARE deklaracje BEGIN rozkazy wykonywalne EXCEPTION - END; S) - ) / - * - -/ ))* (.9Q+;9-0* - 1* ) - * 6) / ) - * A- - ) * 5 - # - / * - - * N * N - / - ) * - - ) ) - * - - )) ) - - * 6.3. Procedury i funkcje PL/SQL w wersji 2.0 pozwala na definiowanie funkcji i procedur. +, PROCEDURE name [ (parameter [, parameter]... ) ] IS [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [name]; +, var_name [IN OUT IN OUT] datatype [{ := DEFAULT } value] 67
68 A# ) / 7 * ) * N$0=1*. # " *.IA:MJIM 7 - # * *. - - * : N+ 7 M 0 ) / 1* :#/ 0 N+ M&N1 - * ( ) M:9%IM* :#/ 0 M&N MZ:M.$NA - M1.9Q+;9* ( # / * -, PROCEDURE zwieksz (prac_id INTEGER, kwota REAL) IS placa_aktualna REAL; BEGIN UPDATE pracownicy SET placa_podstawowa = placa_podstawowa + kwota WHERE prac_id = id_pracownika; END zwieksz; 5 - #* ) IM$JI* FUNCTION name [ (argument [, argument]... ) ] RETURN datatype IS [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [name]; ( / IM$JI* I IM$JI 7 * ( / IM$JI -/ )* ( ) / * 8# 7 IM$JI.9Q+;9 * ( IM$JI ) / ) )* 6.4. Kursory W celu wykonania rozkazu SQL system tworzy pewien obszar roboczy nazywany * ( *.9Q+;9 / 7 / *.9Q+;9 ) dwóch typów kursorów: 68
69 " ) ) - / 7 / 0# 2AI14 ".9Q+;9 operacji. 8# ) - ) * S # -.9Q+;9 * +-, DECLARE 6(%7%" FROM pracownicy (89:::'... BEGIN... + * ) / A.M sposób: OPEN prac_kursor; ( ) 2M$:'* S) 2M$:' * I 2M$:' ) -/ ) -, FETCH prac_kursor INTO prac_nazw, prac_wydz;. 7 -* :9A+M *, CLOSE prac_kursor; S) - # * - CcG -# * 5 -, ca$2aj " $IJM # 2M$:' 7 powodu braku wierszy c2aj " $IJM # 2M$:' 7 %ROWCOUNT - liczba wierszy w kursorze (po otwarciu kursora) cn+a.m " $IJM # - ) - rsora: LOOP FETCH prac_kursor INTO prac_nazw, prac_wydz; IF prac_kursor%rowcount > 10 THEN ;;,5<:... EXIT WHEN prac_kursor%notfound;... END LOOP; 69
70 6.5. Rekordy (.9Q+;9 ) - * S) * I ) # # - *.9Q+;9 / wierszom w tabeli, widoku lub kursorze, nie pozwala jednak na definiowanie typów poszczególnych pól. #/ * 8# - ) - %ROWTYPE: DECLARE CURSOR prac_kursor IS SELECT nazwisko, wydzial, data_zatrudnienia FROM pracownicy; prac_rek prac_kursor%rowtype... FETCH prac_kursor INTO prac_rek; Rekor ) -/ ) - -, nazwa_rekordu nazwa_tabeli%rowtype; I, DECLARE prac_rek pracownicy%rowtype;... BEGIN... END; ), nazwa_rekordu.nazwa_pola; %- / 0 ) # W1 ) /, suma := suma + prac_rek.placa; 6) # - #* ) / ) # # - *. # ) / C,RG -, %=(%!4(!>! 5' J), prac_rek.nazwisko := UPPER(prac_rek.nazwisko);. # ) e jest na dwa sposoby: # 0 - /
71 # +M9M:$ *** N$A - 2M$:' *** N$A J), DECLARE prac_rek1 pracownicy%rowtype; prac_rek2 pracownicy%rowtype; BEGIN SELECT nazwisko, imie, wydzial, placa_podstawowa INTO prac_rek1 FROM pracownicy WHERE wydzial = 30; prac_rek2 := prac_rek1;... END;.9Q+;9 2AI * +, DECLARE CURSOR prac_kursor IS SELECT nazwisko, imie, wydzial, placa_podstawowa FROM pracownicy; BEGIN FOR pracownik IN prac_kursor LOOP suma := suma + pracownik.placa_podstawowa;... END LOOP; Niejawnie deklarowanym rekordem jest tu zmienna o nazwie pracownik. Zmienna ta jest - nazwa_kursora%rowtype $% Informacje podstawowe ) * (# ) /, - - # * ) ) - ) / - * ( - 7 * ( 0:PP 8?.9Q+;91 # - -* / - / * ( -* ( 0 1 )*. -/, ^? (.9Q+;9 ) ) / # -.9Q+;9* 71
72 . ) ^. - / ) - * & - 01 * - 0-1* ( * ( ) -/ I%N+M* ( * 8# - *. 05MIAWNONM :Q5, DECLARE cz_wsk NUMBER(3,1); BEGIN... SELECT cena / zysk FROM akcje?@';;0%5 %2,) -- ZERO_DIVIDE INSERT INTO informacje (nazwa, c_z) VALUES ( ABC, cz_wsk); COMMIT EXCEPTION WHEN ZERO_DIVIDE THEN INSERT INTO informacje (nazwa, c_z) VALUES ( ABC, NULL); COMMIT;... WHEN OTHERS THEN ROLLBACK; END;. * ) * ( # -/ # ), BEGIN SELECT... ;;%%!&-A& BC SELECT... ;;%%!&-A& BC SELECT... ;;%%!&-A& BC END; 72
73 #/ ) * $ - ) # /, BEGIN SELECT... SELECT... SELECT... EXCEPTION WHEN NO_DATA_FOUND THEN ===D;%&* B&-3A& BC END; ( #/ * 5 ) ) - -)* 8# - - ) - - * *' $.9Q+;9 - * ( # * (- ), :JI+AIW%9IM%BWA.M " - ) otwartego; J.WO%9WAWNMZ " - N+MI$ - J.%$M - w indeksie zadeklarowanym jako UNIQUE; NO%9NW:JI+AI " - kursora (np. nie otwartego); NO%9NWJ6MI " - numerycznego z tekstu, który nie reprezentuje liczby; AW%$%W2AJ " +M9M:$ / ) 0* +M9M:$ *** N$A14 +$AI%&MWMIIAI " - - # 4 $AAW6%BWIA(+ " +M9M:$ ) 0* +M9M:$ *** N$A14 O%9JMWMIIAI " # lub pola; ZERO_DIVIDE - próba dzielenia przez zero; ( %- -)/ 0^/@1 - * # -.9Q+;9 MZ:M.$NA 7 - * S) 73
74 - ('M $'M # -* ) - * A A$'MI+ 0 1 / - 0* #1* A #/ MZ:M.$NA, EXCEPTION WHEN... THEN ;;%&*,) WHEN... THEN ;;%&*,) WHEN... THEN ;;%&*,) WHEN OTHERS THEN ;;%&*(%% B,)3 END; 8# - ) ) / ('M AI, WHEN over_limit OR under_limit OR VALUE_ERROR THEN... ) )/ A$'MI+ #* + A$'MI+ / * ) / ) ) ) -/ - - * ( - * - - * *' % 8.9Q+;9 ) *( -/ # I%N+M* ( - ) ) MZ:M.$NA*, DECLARE overflow EXCEPTION; result NUMBER(5); BEGIN... END; ) / ).9Q+; # * ( ) ) # * ( ) -/ ) ) rozkazach SQL. 74
75 ) - * 6) / ) - * Jak podano w# * ( ) -/ * +) I%N+M* J), DECLARE brak_czesci EXCEPTION; liczba_czesci NUMBER(4); BEGIN... IF liczba_czesci < 1 THEN RAISE brak_czesci; END IF;... EXCEPTION WHEN brak_czesci THEN ;;%&*&-A&-1C END; 6) ) 0 I%N+M1, RAISE INVALID_NUMBER; : #/ - - *. ) -/ - )) - - * ( ) ) I%N+M - * ) / ) #*.- # - * 6.7.!&! Rozkaz OPEN Rozkaz OPEN wykonuje zapytanie skojarzone z jawnie zadeklarowanym kursorem * S ) * +, OPEN cursor_name [(input_parameter [, input_parameter]... )] ; Parametry: cursor_name - nazwa kursora uprzednio zadeklarowanego, który nie jest aktualnie otwarty. W " ).9Q+;9 * 8 # ) 0# klauzuli WHERE). 75
76 . A.M -/ ) #/ * N #/ A.M -/ # *. A.M ) -/ celu pobrania ich z kursora.. 0 A.M1 0 1 ) -/ -, ( #/ ) A.M * ( -/ # ) ) -/ CRbG* +- ) - ) #, DECLARE CURSOR prac_kur(nazw CHAR, wydz NUMBER) IS... BEGIN OPEN prac_kur( Kowalski, 10);... OPEN prac_kur(wydz => 15, nazw => Nowak ); END; 6) )/ # ) / ) / * Rozkaz CLOSE I :9A+M ) * S) / * I :9A+M - - * +, CLOSE cursor_name ; Parametry: cursor_name - nazwa aktualnie otwartego kursora Rozkaz FETCH I 2M$:' - 0 +M9M:$ 1* A * 5 # kolumn w aktualnym wierszu. +, FETCH cursor_name INTO { record_name variable_name [, variable_name]... } ; Parametry: 76
77 cursor_name - nazwa aktualnie otwartego kursora.?- W " * ( # -/ * ) / * ( -/ - * W " - 0 ) - %ROWTYPE)..,... OPEN prac_kursor;... LOOP FETCH prac_kursor INTO prac_rek; EXIT WHEN prac_kursor%notfound;... END LOOP; Rozkaz SELECT... INTO Rozkaz SELECT... INTO odczytuje informacje z bazy danych i zapisuje je do * (.9Q+;9 0 +;91 +M9M:$ N$A* %- - +M9M:$ 0 ) / / 1* + +M9M:$ N$A, SELECT select_list_item [, select_list_item]... INTO { record_name variable_name [, variable_name]... } rest_of_select_statement ; Parametry: Zobacz opis rozkazu FETCH.., SELECT nazwisko, placa*12 INTO pnazw, plac_sum FROM pracownicy WHERE pracownik_nr = 12345; Rozkaz IF Rozkaz IF pozwala na warunkowe wykonywanie rozkazów. +, IF plsql_condition THEN seq_of_statements [ELSEIF plsql_condition THEN seq_of_statements]... [ELSE seq_of_statements] END IF; Parametry: X W " 0) - # 1 77
78 XWW " -/ Opis: I N2 )/ - 0-1* 8# $'M ) M9+MN2 M9+M - M N2 - ) M N2* ( M9+MN2* 8# $'M N2 7* 8# ) M9+MN2* 8# ) M9+M 0# 1* ( - J99 *., IF liczba_czesci < 20 THEN ilosc_zamawianych := 50; ELSEIF liczba_czesci < 30 THEN ilosc_zamawianych := 20; ELSE ilosc_zamawianych := 5; END IF; INSERT INTO zamowienia VALUES(typ_czesci, ilosc_zamawianych); Rozkaz LOOP I 9AA. ).9*Q+;9*, ('N9M 2AI 2AI +, [<<label_name>>] [ { WHILE plsql_condition } { FOR {numeric_loop_param cursor_loop_param } } ] LOOP seq_of_statements END LOOP [ label_name ] ; + W W, index IN [REVERSE] integer_expr.. integer_expr + W W, record_name IN { cursor_name [(parameter [, parameter]...)] ( select_statement ) } 78
79 Parametry: - W " * 6) ) MZN$ # / #*. ) #, label_name.index XWW " - X W ".9*Q+;9* ( ('N9M - ) * A #/ $IJM* ( * [ " 2AI* # * W[ " ) - * () - # 2AI* IMOMI+M " / [ 0 1* W " * ( # 2AI * " 0# parametrami). W " )*.9*Q+;9-0 1* Opis: N - ) * $ 7 MZN$*., <<loop1>> LOOP... IF (x > 10) THEN EXIT loop1;... END LOOP loop1;. ('N9M / * ( - ) * ( ) / *., WHILE x < 10 LOOP... x := x - y;... END LOOP;. 2AI / # #/ * ) * N ) -/ - *., FOR i IN 1.. n LOOP silnia := silnia * n; 79
80 END LOOP;. 2AI ) / ) 0-1* : ) *., DECLARE CURSOR prac_kursor IS select * FROM pracownicy; prac_rek prac_kursor%rowtype; BEGIN... FOR prac_rek IN prac_kursor LOOP suma := suma + prac_rek.placa_podstawowa; END LOOP;... END; Rozkaz EXIT I MZN$ ) # * I, - * +, EXIT [label_name] [WHEN plsql_condition] ; Parametry: - W " / #* 8# MZN$ # - )) wykonywanej. X W " ) MZN$ * 6 -/.9*Q+;9* (# - #/ $IJM* Rozkaz GOTO I &A$A ) hmiastowego przekazania sterowania od rozkazu * +, << label_name >> + &A$A, GOTO label_name ; Opis: I &A$A ) * 5 - ) - - * ) ) * 8# &A$A ) 2AI automatycznie. 80
81 7. Literatura 1. Wojciech Cellary, Zbyszko Królikowski Wprowadzenie do projektowania baz danych dbase III, Wydawnictwa Naukowo -Techniczne, Warszawa ORACLE SQL Language Reference Manual 3. ORACLE PL/SQL User s Guide and Reference 4. ORACLE SQL*Plus User s Guide and Reference 81
PL/SQL. Funkcje wbudowane
Slajd 1 PL/SQL Opis funkcji SQL PL/SQL(funkcje SQL) M. Rakowski - WSISiZ 1 Slajd 2 Funkcje wbudowane Funkcje wbudowane mają za zadanie umożliwić bardziej zaawansowane operowanie danymi. Funkcje operacji
Bardziej szczegółowoSQL (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ółowoPaweł 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ółowoPODSTAWY BAZ DANYCH 13. PL/SQL
PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących
Bardziej szczegółowoSzkolenie 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ółowoOracle 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 1 Wprowadzenie Dostęp do bazy danych Program SQL*Plus Podstawy PL/SQL - 2 - Wprowadzenie Dlaczego warto uczyć się o Oracle u? Oracle
Bardziej szczegółowoPL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń
PL/SQL Zaawansowane tematy PL/SQL Piotr Medoń Cele Omówienie transakcji bazodanowych Omówienie obsługi wyjątków Zarządzanie perspektywami Tworzenie i usuwanie sekwencji Budowa wyzwalaczy 2 Transakcje bazodanowe
Bardziej szczegółowoZaawansowane 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ółowoSQL 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ółowoPrzestrzenne 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ółowoTechnologie 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ółowoProcedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu
Procedury składowane Kolejnym typem programu języka PL/SQL są procedury składowane. Procedury mogą posiadać parametry typu IN, OUT lub IN OUT. Umożliwiają wykonanie operacji na danych w bazie, mogą też
Bardziej szczegółowoDECLARE <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ółowoJę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ółowoWyzwalacz - 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ółowoRef. 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ółowokończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli
SPOOL moj_plik SPOOL OFF @ moj_ plik edit CREATE TABLE DESCRIBE ALTER TABLE RENAME DROP TABLE CONNECT CONNECT USER_NAME DISCONNECT EXIT zapisuje wszystkie wydane polecenia oraz ich wyniki do pliku moj_plik,
Bardziej szczegółowoKOLEKCJE - 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ółowoWykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze
Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej
Bardziej szczegółowoUPDATE 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ółowoPL/SQL. Zaawansowane tematy PL/SQL
PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD
Bardziej szczegółowoPodstawy 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ółowoSystemy 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ółowoI. 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ółowoBloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Bardziej szczegółowoBazy 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ółowostrukturalny 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ółowoORACLE (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ółowoJęzyk PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL
Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL.
Bardziej szczegółowoWidok Connections po utworzeniu połączenia. Obszar roboczy
Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer
Bardziej szczegółowoSQL 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ółowoMateriały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne
Materiały dostępne są na stronie: Materiały Technologie baz danych aragorn.pb.bialystok.pl/~gkret Wykład 5: Kursory jawne. Podprogramy. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka
Bardziej szczegółowoJę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ółowoPerspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.
Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. 1 Perspektywa Perspektywa (ang. view) jest strukturą logiczną
Bardziej szczegółowoPawel@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ółowoBazy 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ółowoOracle 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ółowoWykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
Bardziej szczegółowo3 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ółowoJęzyk SQL. Rozdział 3. Funkcje wierszowe
Język SQL. Rozdział 3. Funkcje wierszowe Funkcje wierszowe (funkcje znakowe, funkcje liczbowe, funkcje operujące na datach, funkcje konwersji, funkcje polimorficzne). 1 Funkcje Przekształcają dane, pobrane
Bardziej szczegółowoWykład 2. SQL 1 Structured Query Lenguage
Wykład 2 SQL 1 Structured Query Lenguage SQL (Structured Query Language) Język zapytań do bazy danych. IBM lata osiemdziesiąte. Stosowany w systemach zarządzania bazami danych (DBMS); Oracle, Paradox,Access,
Bardziej szczegółowoHurtownia Świętego Mikołaja projekt bazy danych
Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek
Bardziej szczegółowoFunkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe
Funkcje Rozdział 3a Funkcje wierszowe Funkcje wierszowe (funkcje znakowe, funkcje liczbowe, funkcje operujące na datach, funkcje konwersji, funkcje polimorficzne) Przekształcają dane, pobrane przez polecenie
Bardziej szczegółowoPlan 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ółowoAspekty aktywne baz danych
Aspekty aktywne baz danych Aktywne aspekty baz danych Baza danych powinna zapewniać pewne własności i niezmienniki; Własności te powinny mogą być zapisane do bazy danych, a baza danych powinna zapewniać
Bardziej szczegółowoBazy 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ółowoPakiety podprogramów Dynamiczny SQL
Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)
Bardziej szczegółowoPlan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,
Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających
Bardziej szczegółowoProcedury i funkcje składowane
Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe
Bardziej szczegółowoWykład 5. SQL praca z tabelami 2
Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,
Bardziej szczegółowoInstrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.
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
Bardziej szczegółowo1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12
Plan wykładu Spis treści 1 Projekt fizyczny 1 2 Transformacja ML do PF 2 2.1 Definiowanie tabel............................... 2 2.2 Więzy integralności............................... 4 2.3 Modyfikacja
Bardziej szczegółowoOracle11g: 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ółowoRelacyjne 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ółowoKursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1
Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor
Bardziej szczegółowoBlaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie
Bardziej szczegółowoProcedury 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ółowo15. 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ółowoPlan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH
Plan wykładu 2 TWORZENIE APLIKACJI BAZODANOWYCH Wykład 2: Wprowadzenie do PL/SQL: bloki anonimowe, zmienne, kursory Wprowadzenie do PL/SQL Bloki Podstawowe składowe języka Zmienne i stałe Kursory Małgorzata
Bardziej szczegółowoPL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń
PL/SQL Część 1 Bloki PL/SQL Piotr Medoń Cele Zapoznanie się z podstawowymi typami PL/SQL Zapoznanie się z blokiem PL/SQL Zapoznanie się z instrukcjami sterującymi wykonaniem 2 Blok PL/SQL Struktura bloku
Bardziej szczegółowoPaź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ółowoJęzyk SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą
Bardziej szczegółowoPRZESTRZENNE BAZY DANYCH WYKŁAD 2
PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie
Bardziej szczegółowoTworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];
Widoki/Perspektywy Podstawy Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy]; Usuwanie widoku DROP VIEW [nazwa_widoku]; Przykład 1 Przykład najprostszego
Bardziej szczegółowoPakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.
Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą
Bardziej szczegółowoWykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach
Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym. Modele - konceptualne reprezentacja obiektów w
Bardziej szczegółowoSQL 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ółowow 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ółowoWykład 4. SQL praca z tabelami 1
Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy
Bardziej szczegółowo1. ELEMENTY JĘZYKA PL/SQL
1. ELEMENTY JĘZYKA PL/SQL Aplikacje korzystające z PL/SQL będącego proceduralnym rozszerzeniem SQL mogą wykonywać procedury i funkcje języka PL/SQL składowane w bazie danych oraz wysyłać własne programy
Bardziej szczegółowoDeklarowanie kursora
Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor
Bardziej szczegółowoPL/SQL. Część 1 Oracle SQL. Piotr Medoń
PL/SQL Część 1 Oracle SQL Piotr Medoń Cele Różnice w budowie zapytań bazodanowych pomiędzy bazami SQL Server oraz Oracle Standardowe funkcje Oracle SQL 2 Wprowadzenie do SQL SQL (Structured Query Language)
Bardziej szczegółowoCREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy
Bardziej szczegółowoPlan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99
Plan ćwiczenia Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych Użytkownicy i schematy bazy danych. Uwierzytelnianie i autoryzacja. Przywileje systemowe i obiektowe. Role. Synonimy. Uprawnienia,
Bardziej szczegółowoDECLARE 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ółowoBAZA DANYCH SIECI HOTELI
Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu
Bardziej szczegółowoRelacyjne 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ółowoLiteratura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska
Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie
Bardziej szczegółowoKolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle
Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.
Bardziej szczegółowoJęzyk SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.
Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych. 1 polecenie CREATE TABLE CREATE TABLE nazwa_relacji Tworzenie
Bardziej szczegółowoWykł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ółowoWprowadzenie do języka PL/SQL. Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL. Zmienne rekordowe.
Wprowadzenie do języka PL/SQL Język PL/SQL Wprowadzenie Język PL/SQL to rozszerzenie SQL o elementy programowania proceduralnego i obiektowego. PL/SQL umożliwia wykorzystanie: zmiennych i stałych struktur
Bardziej szczegółowoĆ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ółowoBazy 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ółowoUżywany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.
Plan wykładu Spis treści 1 Dynamiczny SQL 1 2 Wyzwalacze 2 3 Podsumowanie 9 4 Źródła 9 1 Dynamiczny SQL Dynamiczny SQL Dynamiczny SQL - technika programowania umożliwiająca generowanie instrukcji SQL dynamicznie
Bardziej szczegółowoDeklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;
Kursory Każde zapytanie SQL umieszczone w programie PLSQL jest wykonywane w tzw. obszarze roboczym lub inaczej obszarze kontekstu. PLSQL wykorzystuje ten obszar do przechowywania danych otrzymanych w wyniku
Bardziej szczegółowoBloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Bardziej szczegółowoPL/SQL. Lidia Małkiewicz i Cezary Skubała
PL/SQL Lidia Małkiewicz i Cezary Skubała Jest językiem trzeciej generacji (3GL), który udostępnia konstrukty programistyczne, włączając w to deklaracje zmiennych, pętlę, obsługę błędów itd. Obecnie PL/SQL
Bardziej szczegółowoSELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek
SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *
Bardziej szczegółowoProgramowanie 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ółowoBaza danych inside. Biologiczne Aplikacje Baz Danych
Baza danych inside Biologiczne Aplikacje Baz Danych dr inż. Anna Leśniewska alesniewska@cs.put.poznan.pl Użytkownicy i schematy Użytkownik osoba lub aplikacja, uprawniona do dostępu do danych zgromadzonych
Bardziej szczegółowo050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła
050 SQL ELEMENTY ZAAWANSOWANE Prof. dr hab. Marek Wisła Deklarowanie zmiennych DECLARE @nazwa-zmiennej typ-danych {, @nazwazmiennej typ-danych}; deklaruje nazwy zmiennych lokalnych (definiowanych przez
Bardziej szczegółowoIndeksy. Indeks typu B drzewo
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ółowoBAZY 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ółowoWprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.
Bazy Danych i Systemy informacyjne Wykład 2 Piotr Syga 16.10.2017 Dodawanie, usuwanie i zmienianie rekordów Wstawianie rekordu wstawianie do tabeli INSERT INTO A VALUES ( fioletowy, okrągły, słodko-kwaśny
Bardziej szczegółowoSQL - DDL. 1 Tabele systemowe. 2 Typy danych
SQL - DDL DDL (ang. data definition language) jest częścią języka zapytań SQL obejmująca tworzenie i zarządzanie (modyfikację, usuwanie i przydzielanie uprawnień) obiektami w bazie danych (tabelami, perspektywami,
Bardziej szczegółowoWprowadzenie 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ółowoP 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