Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
DDL język definiowania danych
SQL DDL język definiowania danych
2
Data Definition Language (DDL)
Definiowanie schematów relacji (tabel) Określanie domen (typów danych) związanych z każdym z atrybutów. Tworzenie więzów integralności danych. Tworzenie indeksów.
3
Typy domen w SQL char(n) - Stałej długości łańcuch znaków (n – znaków). varchar(n) - Zmiennej długości łańcuch znaków ( do n znaków). integer - liczba całkowita. numeric(p,d) - Liczba rzeczywista stałoprzecinkowa z dokładnością p cyfr i z n cyframi po przecinku. real, double precision - Liczba zmiennoprzecinkowa zwykła oraz liczba o podwójnej precyzji. float(n) – Liczba zmiennoprzecinkowa z dokładnościa n -cyfr. datetime – data + czas. blob – duży obiekt binarny (np. grafika)
4
Własne domeny użytkownika
create domain NIP as CHAR(11) Aby zaznaczyć, że nie można pozostawić pola z danej dziedziny niewypełnionego dodajemy atrybut NOT NULL create domain NIP as CHAR(11) not null kw24
5
Tworzenie tabeli W SQL-u relacje definiujemy poleceniem create table :
create table r (A1 D1, A2 D2, ..., An Dn, (warunek integralnosci1), , (warunek integralnoscik)) r jest nazwą relacji każde Ai jest nazwą atrybutu relacji r Di jest typem wartości – nazwą domeny atrybutu Ai Warunek – węzeł integralności = integrity constraint Kw 25
6
Warunki integralności w poleceniu tworzenia tabeli
not null primary key (A1, ..., An) check (P), gdzie P jest predykatem Deklaracja primary key na pewnym atrybucie automatycznie wymusza jego własność not null w SQL-92. W SQL-89 warunke not null musi byś wymieniony wyraźnie. Kw 26
7
Usuwanie i modyfikacja tabeli
drop table usuwa tabelę z bazy alter table zmienia strukturę tabeli np. dodaje atrybuty alter table r add A D gdzie A jest nazwą dodawanego atrybutu do relacji r a D domeną dla A. Wszystkie wartości nowego pola – atrybutu są przyjęte jako NULL. alter table może być użyte do usuwania atrybutu z relacji alter table r drop A gdzie A jest nazwą atrybutu w relacji r
8
Referencyjne więzy integralności - klucz główny
Klucz główny relacji r(A1, a2, ... , An) to zestaw atrybutów jednoznacznie identyfikujący każdą krotkę w relacji. ALTER TABLR NazwaTabeli ADD CONSTRAINT NazwaKlucza PRIMARY KEY (Ak1, Ak2, ... , Akm) gdzie Ak1, Ak2, ... , Akm są atrybutami relacj r ALTER TABLE URLOPY ADD CONSTRAINT PK_URLOPY PRIMARY KEY (ID_PRACOWNIKA, OD_DNIA) Kw 27
9
Referencyjne więzy integralności – klucze obce
Referencyjny związek integralności oparty o tzw. klucz obcy między relacja r(A1, A2, ... , An) a relacją s(B1,B2,...,Bm) oznacza, że wartości pewnych ustalonych atrybutów każdej krotki relacj r muszą odpowiadac wartości klucza głównego pewnej ktotki relacji s. ALTER TABLE urlopy ADD CONSTRAINT FK_URLOPY_PRACOWNICY FOREIGN KEY (ID_PRACOWNIKA) REFERENCES pracownicy (ID_PRACOWNIKA);
10
Referencyjne więzy integralności – klucze obce (cd.)
ALTER TABLE urlopy ADD CONSTRAINT FK_URLOPY_PRACOWNICY FOREIGN KEY (ID_PRACOWNIKA) REFERENCES pracownicy (ID_PRACOWNIKA) ON UPDATE CASCADE ON DELETE CASCADE; Kauzule ON UPDATE oraz ON DELETE określają jak system ma reagować na zmiany klucza głównego w chwili, gdy istnieje klucz obcy do danej tabeli.
11
Referencyjne więzy integralności – klucze obce (cd.2)
ON DELETE | ON UPDATE wykorzystywane jest z REFERENCES: Zmiana klucza obcego w przypadku zmiany klucza głównego; dopuszczalne opcje: [Default] NO ACTION: Nie ma wpływu na wartość klucza obcego; może powodować niemożność dokonania zmiany klucza głównego ze względu na integralność danych. CASCADE: Dla ON DELETE, usuwa rekordy z odpowiadającą mu wartością klucza obcego; dla ON UPDATE, uaktualnia odpowiednie klucze obce. SET NULL: Ustawia wartości na NULL SET DEFAULT
12
Indeksy Indeks jest dynamiczną strukturą B-drzewa zachowywaną w bazie danych, której przeznaczeniem jest przyspieszenie operacji wyszukiwania danych. CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]] INDEX NazwaIndeksu ON NazwaTabeli (kol [, kol …]); UNIQUE Niedopuszcza wstawianie powtarzających się wartości w indeksowanej kolumnie ASC[ENDING] Sortowanie wartości w kolejności rosnącej DESC[ENDING] Sortowanie wartości w kolejności malejącej kol Kolumna w indeksowanej tabeli Kw 30
13
Procedury zapamiętane (składowane)
Serwery SQL-owe mają zwykle wbudowany kompilator odpowiedniej wersji dynamicznego języka SQL pozwalający na kompilowanie, optymalizację i zapamiętanie w bazie danych kodu procedur. Procedury składowane (stored procedure) mogą przyjmować parametry wejściowe oraz mogą mieć parametry wyjściowe. Wyniki zwracane przez procedury prezentowane są zwykle w postaci relacji.
14
Przykładowa procedura
SET TERM ^ ; CREATE PROCEDURE PROC_PRAC_W_ZAKLADZIE ( SYMBOL VARCHAR(4) ) RETURNS ( NAZWISKO VARCHAR(50), IMIE1 VARCHAR(50)) AS begin /* Procedure Text */ FOR select NAZWISKO, IMIE1 from PRACOWNICY where ZAKLAD = :SYMBOL into :NAZWISKO, :IMIE1 do suspend; end ^ SET TERM ; ^ Przykładowe wykorzystanie: select * from proc_prac_w_zakladzie(2)
15
Wyzwalacze (trigers) Wyzwalacz (triger) jest procedurą składowanyą uruchamianą przez serwer automatycznie przed lub po zajściu odpowiedniego zdarzenia np. wstawieniu, usunięciu lub modyfikacji rekordu w tabeli. SET TERM !! ; CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE AFTER UPDATE AS BEGIN IF (OLD.SALARY <> NEW.SALARY) THEN INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (OLD.EMP_NO, 'now', USER,OLD.SALARY, (NEW.SALARY - OLD.SALARY) * 100 / OLD.SALARY); END !! SET TERM ; !!
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.