IBM DB2 cechy warte odnotowania
|
|
- Angelika Leśniak
- 8 lat temu
- Przeglądów:
Transkrypt
1 IBM DB2 cechy warte odnotowania v v v v v v Różne typy tabel w tym MDC - wielowymiarowe Podział jednej bazy danych na niezależne partycje nie tylko pojedynczej tabeli Łączenie pokrewnych instrukcji w jedną w celu zwiększenia wydajności Nadtabela i jej podtabele - oprócz typów i podtypów Możliwość przekazywania z procedury zbiorów wynikowych wierszy poprzez otwarte kursory również do aplikacji Autoryzacja przyznanym poziomem dostępu do tabel, kolumn i wierszy Label Based Access Control (LBAC) 1/125
2 Bibliografia Przygotowane w oparciu o: materiały szkoleniowe używane przez Artura Wrońskiego (IBM) i E. Mrówkę-Matejewską; Graeme Birchall, DB@ UDB V8.2 SQL Cookbook - dostępna w Internecie i w katalogu z prezentacją; materiały edukacyjne firmy IBM: DB2 v9 Fundamentals, DB2 SQL Workshop, DB2 SQLWorkshop for Experienced Users, DB2 v9 Admin Workshop for Windows, DB2 v8 Stored Procedures Programming Workshop dostępne w katalogu z prezentacją Dokumentacja: Raul F.Chong,.. Zrozumieć DB2, IBM Press, Mikom, PWN /125
3 DB2 Editions M assively P arallel P rocessor (M PP ) DB2 C luster E nterprise S erver E dition w ith D ata P artitioning Feature E nterprise S erver E dition W orkgroup S erver E dition E xpress E dition Express: wersja darmowa wsparcie techniczne na Forum internetowym. 3/125
4 Instancja (database manager) - niezależne środowisko do pracy z bazami danych - dwie instancje na tym samym komputerze nie współużytkują żadnych zasobów (parametrów, plików). Serwer administracyjny udostępnia usługi zdalnej administracji i harmonogramowania zleceń (np. wykonanie skryptu SQL o określonej godzinie). Serwer administracyjny ma własną konfigurację i własną narzędziową bazę danych (tools database). 4/125
5 Control Center Object Tree Pane Contents Pane Object Detail Pane 5/125
6 Hierarchia obiektów DB2 Instance=Database Manager Instance 1 dbm configuration file SYSCATSPACE SYSCATSPACE Catalog Catalog Log DB configuration file Database 1 View1 View2 Log DB configuration file Database 2 View1 TSSMS1 TSDMSLRG1 USERSPACE1 Table1 Table2 Table3 Table1 Index1 TSDMSLRG3 BLOBs TSDMSREG2 Index1 Index2 Przy tworzeniu bazy danych domyślnie są tworzone trzy przestrzenie tabel: SYSCATSPACE, TEMPSPACE1, USERSPACE1 6/125
7 Struktura przestrzeni tabel Kontener miejsce, gdzie przechowywane są dane np. katalog, plik, dysk (raw device). 7/125
8 Przestrzeń tabel zarządzana przez system operacyjny (SMS) CREATE TABLESPACE nazwa MANAGED BY SYSTEM USING ('path') Dodatkowe miejsce na dysku jest alokowane w miarę potrzeb dane mogą być rozrzucone po całym dysku (większa fragmentacja). Wymagają mniejszego zaangażowania DBA w zarządzanie. 8/125
9 Przestrzeń tabel zarządzana przez DBA (DMS) CREATE TABLESPACE nazwa MANAGED BY DATABASE USING (FILE 'path' size) Składa się z kontenerów, które mogą być: plikami o z góry ustalonym rozmiarze, założonych przez DBA w momencie tworzenia przestrzeni tabel, jest dla nich od razu alokowana przestrzeń na dysku, co oznacza, że zwykle znajdują się w spójnym obszarze na dysku. Oznacza to mniej operacji R/W. dyskami (RAW devices) - system ma do dyspozycji spójny obszar całego dysku. Aby powiększyć rozmiar przestrzeni tabel, administrator musi dołożyć kolejny kontener albo rozszerzyć istniejący. Dane LOB mogą być składowane w osobnej przestrzeni tabel. 9/125
10 Typy przestrzeni tabel v v v Regular - do przechowywania tabel, indeksów i tabel katalogu systemowego. Temporary - używane przez operacje, które wymagają dodatkowego miejsca na dysku: sortowanie, złączenia tabel, reorganizacja tabel. Long - do przechowywania danych typu LOB. 10/125
11 Strony danych i ekstenty Domyślnie strona danych w bazie DB2 ma wielkość 4 KB (można ustawić też wielkość 8, 16 i 32 KB podczas tworzenia bazy danych). Każda strona (niezależnie od wielkości) zawiera nagłówek o stałej wielkości 76 bajtów. Wiersz danych nie może być dzielony między różne strony danych. Rozmiar ekstentu może mieć różną wielkość (ustawioną przez DBA podczas tworzenia przestrzeni tabel) - równy wielokrotności rozmiaru strony danych. Dane typu Long Field (long varchar i long vargraphic) przechowywane są w segmentach po 32 KB a dane LOB w segmentach po 64 MB. 11/125
12 Wstawianie danych Miejsce na nowe dane jest alokowane we wszystkich kontenerach przestrzeni tabel wg algorytmu round-robin - dane w każdej przestrzeni tabel są równo rozłożone między kontenery. W momencie dołożenia kontenera do przestrzeni tabel jest wykonywana reorganizacja danych tak, aby uzyskać równomiernie rozłożenie danych w kontenerach. Kontenery powinny mieć jednakowy rozmiar, aby były równomiernie zapełniane i żeby miejsce w jednym z nich nie skończyło się szybciej niż w innych. 12/125
13 Przypisanie puli buforów danych do przestrzeni tabel Domyślna pula buforów: ibmdefaultbp ALTER BUFFERPOOL ibmdefaultbp IMMEDIATE SIZE 1000; CREATE BUFFERPOOL databp IMMEDIATE SIZE PAGESIZE 8K; ALTER TABLESPACE userspace1 BUFFERPOOL databp; 13/125
14 Struktura bazy danych 14/125
15 Partycja bazy danych Partycja bazy danych (węzeł bazodanowy, database partition) - część bazy danych składającą się z własnych danych, indeksów, plików konfiguracyjnych i dzienników transakcji. Oprócz tego są partycje tabeli jak w Oracle i MS SQL Server. 15/125
16 Tabela na poziomie fizycznym Obiekt tabeli składa się z osobnych podobiektów: Obiekt danych - zawierający zwykłe dane tabeli. Obiekt indeksów zawierający wszystkie indeksy założone na tabeli. Obiekt dla pól typu LONG zawierający zawartość wszystkich pól typu LONG. - Pierwszy obiekt dla pól typu LOB zawierający wszystkie dane LOB. - Drugi obiekt dla pól typu LOB zawierający metadane dla wszystkich danych LOB. 16/125
17 Bitmapy ekstentów Bitmapy: 1. alokowanych/wolnych ekstentów w pliku, 2. opisujące ekstenty używane przez daną tabelę. 17/125
18 Typy tabel 1. Regular implementowane jako sterta (heap). 2. Append typ regular zoptymalizowany dla operacji INSERT i wyszukiwania (z typu regular zmiana przez ALTER TABLE). 3. Multidimensional clustering (MDC) grupowane według kilku kluczy (nazywanych wymiarami) dla zastosowań OLAP. 4. Range-clustered (RCT) grupowane liniowo względem wartości jednoznacznego klucza (wartość klucza określa adres) z określonego przedziału wartości, z góry alokowany obszar dla rekordów. Możliwy obszar nadmiarowy dla kluczy spoza określonego przedziału. Oprócz tego niezależnie są indeksy pogrupowane. 5. Partycjonowane 18/125
19 Składowanie tabeli MDC jako zbioru komórek z dostępem przez indeksy blokowe Komórka (pojęcie logiczne) zbiór rekordów z tym samym układem wartości wymiarów. Indeks blokowy osobno dla każdego wymiaru. Alternatywa dla indeksów bitmapowych. 19/125
20 Zbiór komórek - każda składająca się ze zbioru bloków Komórka składa się z bloków stron rekordów (rozmiaru ekstentów) zapisywanych obok siebie na dysku. 20/125
21 Złożony indeks blokowy Umożliwiający znajdowanie bloków dla kombinacji wartości wymiarów. Uporządkowanie leksykograficzne 21/125
22 Tabela zorganizowana według wymiarów (MDC table) CREATE TABLE Sales ( sales_person VARCHAR(30) NOT NULL, region CHAR(5) NOT NULL, number_of_sales INT NOT NULL, year INT) ORGANIZE BY DIMENSIONS (sales_person, year); 22/125
23 SQL 23/125
24 Schemat Instancja serwera składa się z baz danych. Każda baza danych składa się ze schematów, w tym jeden schemat tworzony automatycznie o nazwie identycznej z identyfikatorem autoryzacji właściciela bazy danych. Jest to domyślny (bieżący) schemat w bazie danych. CREATE SCHEMA MySchema; Nazwa kwalifikowana obiektu w bazie danych: schemat.obiekt CREATE TABLE Tab1 (kol int); Tworzona w schemacie userid czyli userid.tab1 CREATE TABLE MySchema.Tab1 (kol int); Tworzona w schemacie MySchema czyli MySchema.Tab1 24/125
25 Usunięcie schematu DROP SCHEMA nazwa RESTRICT; Możliwe tylko wtedy, gdy schemat jest pusty nie zawiera obiektów (słowo RESTRICT wymagane). 25/125
26 Zmiana bieżącego schematu VALUES CURRENT SCHEMA; SET CURRENT SCHEMA db2admin; CREATE TABLE tab1 ( ); -- bieżący sch. CREATE TABLE schema1.tab1 ( ); -- jawny schem. SET CURRENT SCHEMA USER; 26/125
27 VALUES Wynikiem tabela o wartościach określonych przez wartości wyrażeń. Przykłady: VALUES (1, 2, 3) - 1 wiersz o 3 kolumnach VALUES (1,21),(2,22),(3,23) - 3 wiersze każdy o 2 kolumnach VALUES CURRENT DATE 1 wiersz z jedną kolumną 27/125
28 28/125
29 EMPLOYEE (lub STAFF) CREATE TABLE EMPLOYEE (EMPNO CHARACTER(6) PRIMARY KEY,FIRSTNME VARCHAR(12) NOT NULL,MIDINIT CHARACTER(1),LASTNAME VARCHAR(15) NOT NULL,WORKDEPT CHARACTER(3),PHONENO CHARACTER(4),HIREDATE DATE,JOB CHARACTER(8),EDLEVEL SMALLINT NOT NULL,SEX CHARACTER(1),BIRTHDATE DATE,SALARY DECIMAL(9,2),BONUS DECIMAL(9,2),COMM DECIMAL(9,2)) IN USERSPACE1; 29/125
30 DEPARTMENT (lub DEPT) CREATE TABLE DEPARTMENT (DEPTNUMB SMALLINT NOT NULL,DEPTNAME VARCHAR(14),MANAGER SMALLINT,DIVISION VARCHAR(10),LOCATION VARCHAR(13)) IN USERSPACE1; 30/125
31 Tabele CREATE TABLE tab1 (id INT); CREATE TABLE tab2 LIKE tab1; CREATE TABLE tab3 AS (SELECT * FROM tab1) ; DESCRIBE TABLE tab1; 31/125
32 Typy danych SMALLINT, INT, BIGINT REAL, DOUBLE, DECIMAL(n,m) CHAR(n), VARCHAR(n), LONG VARCHAR, CLOB(n) GRAPHIC,VARGRAPHIC,LONG VARGRAPHIC, DBCLOB(n) BLOB(n) DATE, TIME, TIMESTAMP DATALINK obiekt zawierający link (URL) do zewnętrznego obiektu (atrybuty: link type, data location, comment) XML 32/125
33 Konwersje typów Operacje na niekompatybilnych typach danych wymagają jawnej konwersji, np: CHAR <-> NUMERIC - Przykład jawnej konwersji CAST(col1 as DECIMAL(4,2)) DECIMAL(col1,4,2) - Metoda na sprawdzenie typów zapytania DESCRIBE OUTPUT (SELECT SUM(col1) FROM tab2); 33/125
34 Kolumna IDENTITY CREATE TABLE invoice_data (invoice# INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,. PRIMARY KEY (invoice#)); GENERATED ALWAYS zawsze generowany przez System (opcja domyślna), GENERATED BY DEFAULT generowane przez System gdy użytkownik nie załączy wartości. Ostatnio wygenerowana wartość: IDENTITY_VAL_LOCAL() Generowane przed wyzwalaczem BEFORE. Możliwe parametry: AS IDENTITY (START WITH 100 INCREMENT BY 10) 34/125
35 Wstawianie do tabeli z IDENTITY INSERT INTO customers(name, address) VALUES ( FRED, xxx ); -- lub INSERT INTO customers VALUES (DEFAULT, FRED, xxx ); Jedna operacja: Wstaw i wyświetl SELECT MIN(cust#) AS minc, WYNIK MAX(cust#) AS maxc, ============== COUNT(*) AS rows MINC MAXC ROWS FROM FINAL TABLE (INSERT INTO customers VALUES (DEFAULT,'FRED','xxx'), (DEFAULT,'DAVE','yyy'), (DEFAULT,'JOHN','zzz')); Połączenie dwóch instrukcji w jedną zwiększenie wydajności. 35/125
36 Sekwencje CREATE SEQUENCE seq1 AS BIGINT [START WITH 1 INCREMENT BY 1 NO MAXVALUE NO CYCLE CACHE 24]; CACHE czy generować wartości sekwencji blokami VALUES NEXTVAL FOR seq1 ; VALUES PREVVAL FOR seq1 ; VALUES PREVVAL FOR seq1 INTO :host-var; ALTER SEQUENCE seq1 RESTART WITH 100; 36/125
37 Przykład CREATE SEQUENCE fred; SEQ# WITH temp1 (n1) AS 2 VALUES ( a ),( b ),( c ),( d ),( e ) 3 SELECT NEXTVAL FOR fred AS seq# 4 FROM temp1; 5 37/125
38 Globalna stała za pomocą sekwencji CREATE SEQUENCE biggest_sale_to_date AS INTEGER START WITH INCREMENT BY 0; Przechowywana w katalogu systemowym. 38/125
39 Tymczasowa globalna tabela DECLARE GLOBAL TEMPORARY TABLE fred (dept SMALLINT NOT NULL, avg_salary DEC(7,2) NOT NULL, num_emps SMALLINT NOT NULL) ON COMMIT PRESERVE ROWS; -- lub ON COMMIT DELETE ROWS -- DECLARE, bo jej schemat nie jest zapisywany w katalogu systemowym i istnieje tylko na czas sesji (domyślny kwalifikator schematu tabeli session tj. session.fred). Objęte mechanizmem wycofywania ale nie odtwarzania po awarii! INSERT INTO fred SELECT dept, AVG(salary), COUNT(*) FROM staff WHERE id > 200 GROUP BY dept; SELECT COUNT(*) AS cnt FROM fred; DELETE FROM fred WHERE dept > 80; 39/125
40 Odróżnialny typ Aby uniemożliwić wspólne operacje np. na dwóch różnych walutach. CREATE DISTINCT TYPE Jap_Yen AS DECIMAL(15,2) WITH COMPARISONS; Wartości typu JAP_YEN nie mogą być porównywane z wartościami typu DECIMAL(15,2) 40/125
41 Indeksy CREATE INDEX idx1 ON tab1(col1) ; CREATE INDEX idx1 ON tab1(col1) CLUSTER ; -- indeks pogrupowany na tabeli tab1, może być niejednoznaczny. Gdy indeks na kluczu głównym ma być pogrupowany, to jest istotna kolejność: CREATE TABLE bez definiowania klucza głównego, CREATE INDEX CLUSTER ALTER TABLE PRIMARY KEY 41/125
42 Partycjonowana tabela 1. Każda partycja tabeli w innej przestrzeni tabel CREATE TABLE Customer (shipdate DATE, name CHAR(30)) IN ts1, ts2, ts3, ts4, ts5 PARTITION BY RANGE(shipdate) (STARTING FROM ('01/01/2009') ENDING AT ('12/31/2009') EVERY (3 MONTHS)) 2. Każda partycja tabeli w innej partycji bazy danych CREATE TABLE Sales (CUSTOMER VARCHAR(80), REGION CHAR(5), YEAR INTEGER) DISTRIBUTE BY HASH (YEAR) ORGANIZE BY DIMENSIONS (REGION, YEAR) 42/125
43 Perspektywy CREATE VIEW employee_view AS SELECT a.empno, a.firstnme, a.salary, a.workdept FROM employee a WHERE a.salary >= (SELECT AVG(b.salary) FROM employee b WHERE a.workdept = b.workdept); 43/125
44 Perspektywy CREATE TABLE p1(id INT CHECK (id < 100)); CREATE TABLE p2(id INT CHECK (id >= 100)); CREATE VIEW pv AS SELECT id FROM p1 UNION ALL SELECT id FROM p2 WITH CHECK OPTION WITH ROW MOVEMENT; WITH ROW MOVEMENT przy aktualizacji wiersz naruszający warunek CHECK zmienia tabelę. 44/125
45 Perspektywy lokalne WITH temp1(id,name) AS ( VALUES (1,'abc'), (2,'bcd'), (3,'cde')) SELECT id+100, UCASE(name) FROM temp1 ORDER BY name DESC; WITH temp1(col1) AS ( VALUES 0 UNION ALL SELECT col1 + 1 FROM temp1 WHERE col1 + 1 < 100 ) SELECT * FROM temp1; -- rekurencyjna 45/125
46 Terminologia SELECTów WITH get_matching_rows AS -- perspektywa lokalna (SELECT id, name, salary -- podzapytanie FROM staff WHERE id < 50 UNION ALL -- pełne zapytanie SELECT id, name, salary -- podzapytanie FROM staff WHERE id = 100 ) SELECT * -- podzapytanie FROM get_matching_rows ORDER BY id FETCH FIRST 10 ROWS ONLY FOR FETCH ONLY; 46/125
47 Tabela zmaterializowanego zapytania - materialized query table (perspektywa zmaterializowana) CREATE TABLE staff_summary AS (SELECT dept, COUNT(*) AS count_rows, SUM(id) AS sum_id FROM staff GROUP BY dept) DATA INITIALLY DEFERRED REFRESH IMMEDIATE; - Tabela utworzona z klauzulami określającymi źródło AS oraz parametry odświeżania REFRESH: IMMEDIATE budowa przy użyciu instrukcji REFRESH TABLE, następnie przy każdej zmianie źródłowych tabel, lub DEFERRED tylko za pomocą instrukcji REFRESH TABLE. - Fraza DATA INITIALLY DEFERRED wymagana. - Można tworzyć indeks (ale nie PRIMARY KEY ani UNIQUE). - Można tworzyć indeks pogrupowany (CLUSTER). 47/125
48 Instrukcja REFRESH TABLE REFRESH TABLE staff_summary; Dwa tryby odświeżania: INCREMENTAL (przyrostowy) w oparciu o dziennik zmian, NOT INCREMENTAL wyliczane od nowa całe zapytanie. Dziennik zmian (staging table) wymagany do odświeżania typu INCREMENTAL. Tworzony tak jak tabela, np: CREATE TABLE emp_sumry_s ( ) FOR staff_summary PROPAGATE IMMEDIATE; 48/125
49 Alias tabeli, perspektywy CREATE ALIAS employee_al1 FOR employee; 49/125
50 Nickname Nazwa dla odległej tabeli lub nie-relacyjnego obiektu, przy użyciu którego w zapytaniach można ich używać tak jakby były zwykłymi tabelami. CREATE NICKNAME emp FOR unixserver.production.employee; 50/125
51 Katalog systemowy w schemacie SYSCAT SELECT CAST(colname AS CHAR(18)) AS Name, CAST(typename AS CHAR(18)) AS Type, length AS Length, scale AS Scale, nulls AS Nulls FROM syscat.columns WHERE tabname = 'MASTER' AND tabschema = 'PL38219' ORDER BY colno; 51/125
52 Więzy spójności ALTER TABLE detail ADD CONSTRAINT detail_fk FOREIGN KEY (fk) REFERENCES master(id) ON DELETE CASCADE; ALTER TABLE tab1 ADD CONSTRAINT const1 CHECK (ABS(c1) > 100 OR c2 < 1000) ; 52/125
53 Wyszukiwanie danych Jak w Standardzie: v v v v v v Kolumny wyliczane Select count Select distinct Klauzule WHERE, ORDER BY Klauzula GROUP BY HAVING Predykaty LIKE, BETWEEN, IN 53/125
54 Zmienne systemowe CURRENT ISOLATION CURRENT DATE CURRENT LOCK TIMEOUT CURRENT PATH CURRENT SCHEMA CURRENT TIME CURRENT TIMESTAMP USER VALUES CURRENT DATE; -- lub SELECT CURRENT DATE FROM sysibm.sysdummy1; -- jak DUAL w Oracle 54/125
55 Operacje na czasie CURRENT TIMESTAMP + 1 DAY CURRENT DATE 3 MONTHS CURRENT TIME 1 HOUR - 80 MINUTES + 2 SECONDS DATE(' ') + 1 MONTH MONTHNAME(CURRENT DATE) DAYOFYEAR(CURRENT TIMESTAMP) TO_CHAR(CURRENT TIMESTAMP,'YYYY-MM-DD HH24:MI:SS') CHAR(CURRENT DATE, ISO) CHAR(CURRENT DATE, EUR) 55/125
56 Operacje na ciągach znaków 'String1' CONCAT ' String2 ' LENGTH(RTRIM('String1 ' )) LTRIM(' String1' ) LCASE('String1' ) UCASE('String1' ) SUBSTR('abcdef',2,3) REPLACE ( 'DINING', 'N', '--' ) SELECT SUBSTR(PROJNO,1, 2) AS PROJ_CLASS, PROJNAME FROM PROJECT WHERE PROJNO LIKE 'IF%'; SELECT LASTNAME CONCAT ', ' CONCAT FIRSTNAME FROM EMPLOYEE WHERE WORKDEPT = 'A00' ORDER BY NAME; 56/125
57 Podzapytania SELECT CAST(t.nr AS INT), t.empno, t.lastname, (SELECT deptname FROM department WHERE t.workdept = deptno) deptname FROM (SELECT empno, lastname, workdept, ROW_NUMBER() OVER() AS nr FROM employee) AS t WHERE t.nr <= 10 57/125
58 Numerowanie rekordów (funkcje analityczne) WITH temp AS ( SELECT id, name, dept, years, salary, RANK() OVER(ORDER BY salary DESC) AS row FROM staff ) SELECT * FROM temp WHERE row > 5 and row <= 10 ORDER BY row; Rank = 1+ liczba rekordów mniejszych od niego w danym porządku (mogą więc być przerwy w numeracji, jeśli dwa lub więcej rekordów ma ten sam rank w danym porządku). Rownumber, row_number = kolejny numer (bez przerw). 58/125
59 CASE SELECT FIRSTNME, LASTNAME, CASE WHEN salary < THEN 'Należy sie podwyżka' WHEN salary > and salary < THEN 'OK' ELSE 'Przeplacamy' END AS comment FROM EMPLOYEE; 59/125
60 Złączenia *) INNER JOIN ON *) LEFT OUTER JOIN ON *) RIGHT OUTER JOIN ON *) FULL OUTER JOIN ON 60/125
61 Klauzule FETCH FIRST i OPTIMIZE FOR SELECT years, name, id FROM staff ORDER BY years DESC FETCH FIRST 10 ROWS ONLY; Zamiast FETCH FIRST n ROWS ONLY można użyć OPTIMIZE FOR n ROWS wtedy zwracane są wszystkie wiersze, ze wskazówką dla optymalizatora, że przekazywanie wierszy do klienta będzie się odbywać blokami n wierszy. Może być używana też bez ORDER BY. 61/125
62 Funkcja TABLE SELECT a.id, a.dept, a.salary, b.deptsal FROM staff a, TABLE (SELECT b.dept, SUM(b.salary) AS deptsal FROM staff b WHERE b.dept = a.dept GROUP BY b.dept ) AS b WHERE a.id < 40 ORDER BY a.id; Wymagana gdy podzapytanie odwołuje się do wierszy zewnętrznych tabel. Ale można było zastosować tu operator INNER JOIN bez korzystania z TABLE. 62/125
63 Przykład z funkcją TABLE SELECT id, salary AS sal, comm AS com, w, typ FROM staff, TABLE(VALUES (salary,'sal'), (comm, 'COM') ) AS tab(w, typ) WHERE id < 40 ORDER BY id, typ; 63/125
64 INSERT v v v v Create table A(liczba int, napis varchar(10)); Insert into A values (1,'aaa'); Insert into A (liczba) values(2); Insert into A values (3,'ccc'),(4,'ddd'),(5,'eee'); v Select * from A; v Create table B(liczba int, napis varchar(10)); v Insert into B (select * from A) ; 64/125
65 Wstawianie do dwóch tabel CREATE TABLE Us_customer (Cust# INTEGER NOT NULL, Cname CHAR(10) NOT NULL, Country CHAR(3) NOT NULL, CHECK (Country = 'USA'), PRIMARY KEY (Cust#)); CREATE TABLE Intl_customer (Cust# INTEGER NOT NULL, Cname CHAR(10) NOT NULL, Country CHAR(3) NOT NULL, CHECK (Country <> 'USA'), PRIMARY KEY (Cust#)); INSERT INTO (SELECT * FROM Us_customer UNION ALL (SELECT * FROM Intl_customer) VALUES (111,'Fred','USA'), (222,'Dave','USA'),(333,'Juan','MEX')); Połączenie dwóch instrukcji w jedną w celu zwiększenia wydajności. 65/125
66 Modyfikowanie danych - UPDATE v v Update B set liczba = liczba+10 where liczba<4; Update B set liczba = liczba+10, napis = 'cccc' where liczba = 12; v Update A set (liczba,napis) = (select liczba, napis from B where liczba = 22) where liczba = 2; 66/125
67 Usuwanie danych - DELETE v Delete from C where v Delete from (select rownumber() over(order by liczba) as rowid from A) where rowid>4; 67/125
68 Wyświetlanie modyfikowanych wierszy OLD TABLE, NEW TABLE, FINAL TABLE v v v Select from OLD TABLE (Delete from Select * from [NEW FINAL] TABLE (Insert into A values(10,'kkk'),(11,'mmm'),(12,'ooo')); Select from [NEW FINAL] TABLE (Update. NEW stan po wykonaniu instrukcji a przed wykonaniem wyzwalaczy AFTER i akcji referencyjnych FINAL stan na sam koniec po wykonaniu wyzwalaczy AFTER i akcji referencyjnych Połączenie dwóch instrukcji w jedną w celu zwiększenia wydajności. 68/125
69 MERGE Włóż wiersze tabeli u do tabeli g stosując UPDATE gdy wiersz z datą istnieje w g, wpp stosując INSERT. MERGE INTO main g USING (SELECT data,swieto FROM upd_main) u ON (g.data = u.data) WHEN MATCHED THEN UPDATE SET swieto = u.swieto WHEN NOT MATCHED THEN tylko INSERT lub SIGNAL INSERT (data,swieto) VALUES (u.data, u.swieto) [NOT] MATCHED [AND warunek_wyszukiwania] Połączenie INSERT, UPDATE, DELETE na jednej tabeli. Zwiększenie wydajności. 69/125
70 UNION, INTERSECT, EXCEPT v v v UNION i UNION ALL INTERSECT i INTERSECT ALL EXCEPT i EXCEPT ALL 70/125
71 TRANSAKCJE * Transakcje rozpoczynają się niejawnie. * Każda baza danych w DB2 jest transakcyjna. * Można wyłączyć tworzenie pozycji transakcji w dzienniku transakcji na poziomie tabeli na czas trwania transakcji (do jej końca). ALTER TABLE tabela ACTIVATE NOT LOGGED INITIALLY; 71/125
72 Poziomy izolacji Odejście od nazw w Standardzie. * UR : brak blokad, chyba, że dany rekord jest zmieniany (UNCOMMITTED READ) * CS : blokada na wierszu tylko przy odczycie rekordu (COMMITTED READ) * RS : blokada do odczytu utrzymywana do końca transakcji (REPEATABLE READ) * RR : niezmienny wynik każdego zapytania w trakcie trwania transakcji (SERIALIZABLE) 72/125
73 Blokowane obiekty 73/125
74 Blokady na tabeli Dla transakcji realizowanej w trybie READ UNCOMMITTED IN IS IX SIX S U X Z Intent None Intention Share Intention exclusive Share with Intention exclusive Share Update exclusive superexclusive Obejmuje też blokady wierszy Tylko blokada tabeli Z do wykonania ALTER i DROP na tabeli oraz CREATE i DROP na indeksie tabeli. 74/125
75 Blokady na wierszu Blokada wiersza Minimalna wspomagająca blokada na tabeli S U X W NS NW Share Update exclusive Weak exclusive Next key Share Next key Weak exclusive IS IX IX IX IS IX Aplikacja nie uzyskuje jeśli założyła blokadę na tabeli: blokady wierszy S, U, X lub Z 75/125
76 Dodatkowe rodzaje wierszowych blokad v v v Weak Exclusive W zakładana na wiersz wstawiany do tabeli (na tabeli IX) słabsza niż X na tym wierszu. Next Key Weak Exclusive NW gdy do indeksu jest dodawana nowa pozycja (na tabeli IX) słabsza niż X na tym wierszu. Next Key Share NS zakładana na wiersz podczas pełnego odczytu tabeli w trybie READ COMMITTED i REPEATABLE READ (na tabeli IS) słabsza niż S na tym wierszu. 76/125
77 77/125 Kompatybilność trybów blokad U YES NO NO NO YES NO NS YES YES NO NO YES YES W NO NO NO NO NO YES B A IN IS S IX SIX U X Z Tabelowe B A S U X W NS NW Wierszowe IS YES YES YES YES YES YES NO NO S YES YES YES NO NO YES NO NO IX YES YES NO YES NO NO NO NO IN YES YES YES YES YES YES YES NO X NO NO NO NO NO NO S YES YES NO NO YES NO NW NO NO NO YES YES NO SIX YES YES NO NO NO NO NO NO U YES YES YES NO NO NO NO NO X YES NO NO NO NO NO NO NO Z NO NO NO NO NO NO NO NO
78 Blokady explicite -- Zapytanie tylko do odczytu SELECT * FROM tab1 FOR READ ONLY; -- Zapytanie może uaktualniać rekordy w trakcie przemieszczania się kursora po zbiorze wynikowym SELECT * FROM tab1 FOR UPDATE; -- Do instrukcji SELECT, SELECT INTO, DELETE, UPDATE można dołączyć poziom izolacji: WITH RR, WITH RS, WITH CS, WITH UR. 78/125
79 Konwersja blokady v Gdy aplikacja posiadając już pewną blokadę na obiekcie, chce zamienić tę blokadę na silniejszą (np. U na X, IS na S, IX na X) Silniejsza blokada może być przyznana lub nie. v Przykład Aplikacja wybiera wiersz w tabeli używając klauzuli FOR UPDATE u Na wiersz jest zakładana blokada U (Update) Aplikacja dokonuje modyfikacji wiersza używając klauzuli WHERE CURRENT OF u Zachodzi konwersja blokady U na X 79/125
80 Parametry inicjalizacyjne bazy danych dotyczące blokad Locklist ilość miejsca pamięci do użycia przez blokady. Maxlocks maksymalny procent miejsca pamięci z Locklist przeznaczony do użycia przez pojedynczą transakcję. Gdy transakcja przekroczy Maxlocks, system zamienia blokady na wierszach na blokady na tabelach (eskalacja blokad). 80/125
81 Blokada tabeli ALTER TABLE tabela LOCKSIZE TABLE; -- (blokowanie tabeli zamiast domyślnie wierszy) Wskazane, gdy DML dotyczy większości wierszy dużej tabeli. Z powrotem do blokowania wierszy (które jest domyślne): ALTER TABLE tabela LOCKSIZE ROW; LOCK TABLE tabela IN [SHARE EXCLUSIVE] MODE (blokada zwalniana na koniec transakcji) 81/125
82 Blokada bazy danych/przestrzeni tabel (explicite) CONNECT TO database IN [EXCLUSIVE SHARE] MODE Blokada bazy danych: CONNECT TO database IN EXCLUSIVE MODE Blokada przestrzeni tabel: QUIESCE table-spaces FOR TABLE table-name INTENT FOR UPDATE; 82/125
83 Tworzenie typów obiektowych CREATE TYPE DEPT AS ( DEPT NAME VARCHAR(20), MAX_EMPS INT) REF USING INT MODE DB2SQL -- MODE DB2SQL wymagany CREATE TYPE EMP AS ( NAME VARCHAR(32), SERIALNUM INT, DEPT REF(DEPT), SALARY DECIMAL(10,2)) MODE DB2SQL CREATE TYPE MGR UNDER EMP AS ( BONUS DECIMAL(10,2)) MODE DB2SQL Ewentualna specyfikacja metody po słowie kluczowym METHOD. Niezależnie, implementacja metody: CREATE METHOD BONUS (RATE DOUBLE) FOR EMP RETURN SELF..SALARY * RATE 83/125
84 Przykład tabeli z podtabelami Hierarchia typów obiektowych: Typy obiektowe: BusinessUnit_t, Person_t Podtypy: Student_t UNDER Person_t, Employee_t UNDER Person_t, Manager_t UNDER Employee_t, Architect_t UNDER Employee_t 84/125
85 Tworzenie hierarchii tabel odpowiadającej hierarchii typów CREATE TABLE BUnit OF BusinessUnit_t (REF IS Oid USER GENERATED); CREATE TABLE Person OF Person_t (REF IS Oid USER GENERATED); CREATE TABLE Employee OF Employee_t UNDER Person INHERIT SELECT PRIVILEGES -- wymagana klauzula dla podtabel (SerialNum WITH OPTIONS NOT NULL, Dept WITH OPTIONS SCOPE BUnit ); CREATE TABLE Student OF Student_t UNDER Person INHERIT SELECT PRIVILEGES; CREATE TABLE Manager OF Manager_t UNDER Employee INHERIT SELECT PRIVILEGES; CREATE TABLE Architect OF Architect_t UNDER Employee INHERIT SELECT PRIVILEGES; 85/125
86 Instrukcje SQL na nadtabeli i jej podtabelach Instrukcje SELECT, UPDATE, DELETE operujące na nadtabeli, domyślnie działają również na wszystkich wierszach jej podtabel. Np. UPDATE na tabeli Employee dotyczy wierszy tabel Employee, Manager i Architect, ale UPDATE na tabeli Manager dotyczy tylko wierszy tabeli Manager. Aby ograniczyć działanie instrukcji wyłącznie do danej tabeli należy użyć opcji ONLY (np. ONLY Employee). 86/125
87 Jak zaszyfrować kluczowe dane? SET ENCRYPTION PASSWORD = 'Ben123'; INSERT INTO EMP(SSN) VALUES ENCRYPT (' '); INSERT INTO EMP(SSN) VALUES ENCRYPT (' ', 'Ben123'); SELECT DECRYPT_CHAR (SSN,'Ben123') FROM EMP; 87/125
88 LBAC (Label Based Access Control) Poziom dostępu definiowany dla tabel i wierszy tabel. SELECT * FROM EMP WHERE SALARY >= & Poziom dostępu użytkownika = 100 Użytkownicy na poziomie 100 mają dostęp do wierszy: ID <= 100 i salary >= (na zielono) No LBAC LBAC ID SALARY Gdy opcja LBAC nie jest włączona, użytkownicy za pomocą powyższego zapytania mają dostęp do wierszy: salary >= (na czerwono) Ułatwienie zarządzania uprawnieniami dostępu użytkowników do danych /125
89 Język procedur składowanych SQL Procedural Language (SQL PL) 89/125
90 Przypisanie wartości zmiennym Instrukcje w kodzie: SET zmienna = wyrażenie VALUES wyrażenie, INTO zmienna, 90/125
91 Instrukcja złożona (blok), zmienne BEGIN DECLARE v_var1 CHAR(20); DECLARE v_var2 INTEGER; DECLARE v_var3 TIMESTAMP; DECLARE v_var4 SMALLINT DEFAULT 99; SELECT name INTO v_var1 FROM staff FETCH FIRST 1 ROW ONLY; SET v_var2 = 100; VALUES CURRENT TIMESTAMP INTO v_var3; VALUES (p_par1,99) INTO v_var4,v_var2; END 91/125
92 ATOMIC, NOT ATOMIC BEGIN ATOMIC -- SQL e traktowane są jak jedno polecenie END -- nieobsłużony błąd -> zatrzymanie wykonywania -> -- wszystkie zmiany zostają wycofane BEGIN ATOMIC nie może być zagnieżdżony w BEGIN ATOMIC BEGIN NOT ATOMIC -- to jest domyślna opcja END -- nieobsłużony błąd -> zatrzymanie wykonywania -> -- Zmiany pozostają. Konieczne ręczne wycofanie. 92/125
93 Etykiety instrukcji złożonej lab1: BEGIN DECLARE v_id INT; lab2: BEGIN DECLARE v_id INT; SET lab1.v_id = 1; SET lab2.v_id = 10; SET v_id = 100; END lab2; END lab1 93/125
94 Instrukcje warunkowe IF v_var = 1 THEN UPDATE ELSE INSERT END IF; CASE WHEN v_var > 0 THEN WHEN v_var > 10 THEN ELSE END CASE; 94/125
95 Iteracje WHILE (var1 = 1) DO END WHILE; REPEAT UNTIL (var1 < 100) END REPEAT; label:loop LEAVE label; ITERATE label; END LOOP; GOTO label; 95/125
96 Instrukcja złożona i WHILE BEGIN ATOMIC DECLARE cnt INT DEFAULT 0; WHILE (cnt < 1000) DO INSERT INTO Tab1 VALUES (cnt, ceiling(rand()*1000) ); SET cnt=cnt+1; END WHILE; END Średniki oddzielają składowe instrukcje w instrukcji złożonej. Średnik nie może kończyć zewnętrznej instrukcji złożonej ani też końca instrukcji CREATE PROCEDURE. W skryptach można określić terminator przy użyciu -- #SET DELIMITER 96/125
97 Instrukcja FOR FOR loop_name AS SELECT col1, FROM DO SET var1 = loop_name.col1; END FOR; 97/125
98 Przykład BEGIN ATOMIC DECLARE cntr SMALLINT DEFAULT 1; FOR V AS SELECT id AS idval FROM staff WHERE id < 80 ORDER BY id DO UPDATE staff SET comm = cntr WHERE id = V.idval; SET cntr = cntr + 1; END FOR; END 98/125
99 Instrukcja złożona BEGIN ATOMIC DECLARE v_var2 INTEGER; CREATE TABLE mytab(id INT); CREATE INDEX mytab_idx ON mytab(id); BEGIN DECLARE v_var4 INTEGER DEFAULT 100; INSERT INTO mytab(id) VALUES (99),(v_var4); GET DIAGNOSTICS v_var2 = ROW_COUNT; SET p_result = 'L.wierszy: ' char(v_var2); END; END GET DIAGNOSTICS wymagane, aby uzyskać ROW_COUNT! 99/125
100 ITERATE, LEAVE BEGIN ATOMIC DECLARE cntr INT DEFAULT 0; whileloop: WHILE cntr < 60 DO SET cntr = cntr + 10; UPDATE staff SET salary = cntr WHERE id = cntr; IF RAND() < 0.5 THEN LEAVE whileloop; ELSEIF RAND() < 0.2 THEN ITERATE whileloop; ELSE UPDATE staff SET comm = cntr + 1 WHERE id = cntr; END IF; END WHILE; END 100/125
Ćwiczenia 2 IBM DB2 Data Studio
Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.
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ół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ół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ół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ółowo1 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ół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ół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ółowoSkładowane procedury i funkcje
Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.
Bardziej szczegółowoPodstawy 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ółowoWyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz
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ół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ół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ół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ół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ółowoUstawienie 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ół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ół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ółowoSystemowe aspekty baz
Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select
Bardziej szczegółowoMicrosoft 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ół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ół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ół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ół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ółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?
Bardziej szczegółowoW SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).
Procedury składowane c.d. Parametry tablicowe w Transact-SQL. W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP). Zadanie 1. Proszę napisad procedurę składowaną, która
Bardziej szczegółowoIle rekordów będzie zawierała tabela przy założeniu, że na początku była pusta?
Gr Masyla: 1. Zaznacz poprawne stwierdzenia dotyczące opcji recovery model w MS SQL Server a) Ustawienie Simple pozwala zaoszczędzid miejsce na dysku b) Model full jest zalecany dla baz danych, w których
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ół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ół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ółowoWyzwalacze. 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ół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ół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ółowoSystemowe aspekty baz danych
Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select
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ół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ółowoE.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze
Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie
Bardziej szczegółowoBazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych
Plan wykładu Bazy danych Cechy rozproszonej bazy danych Implementacja rozproszonej bazy Wykład 15: Rozproszone bazy danych Małgorzata Krętowska, Agnieszka Oniśko Wydział Informatyki PB Bazy danych (studia
Bardziej szczegółowoBazy danych 7. SQL podstawy
Bazy danych 7. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 Żaden dostawca nie jest w pełni zgodny
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ółowoBazy danych 11. SQL Procedury składowane, kursory i wyzwalacze
Bazy danych 11. SQL Procedury składowane, kursory i wyzwalacze P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 I. Procedury składowane (stored procedures) Procedury składowane stanowia
Bardziej szczegółowoCele. 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ółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -
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ółowoUprawnienia, 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ółowoProgramowanie 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ół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ół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ół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ółowoInstrukcja 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ół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ół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ółowo77. 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ółowoSprawdzenie 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ółowoSQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL
Bardziej szczegółowoLAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,
Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 6 LAB 6 TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL, UPDATE, INSERT INTO, ALTER TABLE, CREATE VIEW, CREATE TRIGGER, FUNCTION,
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ół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ół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ół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ółowoObiekty bazy danych DB2
Obiekty bazy danych DB2 Obiektem bazy danych DB2 jest każdy składnik bazy danych DB2, jak: schematy, tabele, widoki, indeksy, sekwencje, aliasy, wyzwalacze, funkcje użytkownika (UDF-y), procedury zapamiętane,
Bardziej szczegółowoPawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl
Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p
Bardziej szczegółowoD 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ółowoJę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ółowoIwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015
Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski Poznań, 30.09.2015 Plan Geneza Architektura Cechy Instalacja Standard SQL Transakcje i współbieżność Indeksy Administracja Splice Machince vs.
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ół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ółowoZarzą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ół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ół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ół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ół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ół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ół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ół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ółowoCheatsheet PL/SQL Andrzej Klusiewicz 1/9
Declare y integer; z varchar2(50); d date; null; Declare x integer:=10; null; x integer; x:=10; dbms_output.put_line('hello world'); for x in 1..10 loop Deklaracja 4 zmiennych. Jednej typu rzeczywistego,
Bardziej szczegółowoWyzwalacze 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ółowoWykład 6. SQL praca z tabelami 3
Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1
Bardziej szczegółowoPrzykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;
Temat: Funkcje, procedury i wyzwalacze. Oprócz tabel i widoków w bazach danych możemy tworzyć własne funkcje, procedury i specjalny typ procedur, które będą automatycznie wywoływanie przez MySQL w memencie
Bardziej szczegółowoT-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ół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ółowo1. Wyzwalacze BD (ang. triggers)
1. Wyzwalacze BD (ang. triggers) Wyzwalacz bazy danych jest procedurą składowaną w bazie powiązaną z jedną konkretną tablicą. Z pojedynczą tablicą może być związane wiele wyzwalaczy, natomiast pojedynczy
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ół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ółowoProgramowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW
Programowanie po stronie serwera w SZBD Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Programowanie SZBD (DBMS) Procedury serwera Procedury składowane
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ółowoBazy danych 8. Procedury składowane i kursory. P. F. Góra
Bazy danych 8. Procedury składowane i kursory P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2017 Procedury składowane (stored procedures) Procedury składowane stanowia część schematu bazy danych. Stosuje
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ółowoORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL
ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Raportowanie z wykorzystaniem fraz rollup, cube Frazy cube, rollup, grouping sets umożliwiają rozszerzoną
Bardziej szczegółowoAdministracja 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ół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ół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ółowoSQL :: 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ół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ółowoPlan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych
Plan wykładu BAZY DANYCH II WYKŁAD 3 Zasięg zmiennych Zmienne powiązane Instrukcje warunkowe Pętle Pobieranie danych SQL w PL/SQL Rekordy dr inż. Agnieszka Bołtuć Zasięg zmiennych Zmienna jest dostępna
Bardziej szczegółowoZarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga
Bazy Danych i Systemy informacyjne Wykład 4 Piotr Syga 26.10.2018 Procedury review Przypomnienie składni procedur Tworzenie DELIMITER $$ CREATE PROCEDURE zliczacz (OUT wynik INT) BEGIN operacje... END
Bardziej szczegółowoWyzwalacze (triggery) Przykład
Wyzwalacze (triggery) Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę, a następnie trigger związany
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ółowo