Bazy Danych
wykład
Wprowadzenie do SQL (Access’a)
Typy danych w Access
Typ danych
Opis
Text
tekst lub kombinacja liter i cyfr, maksymalna wielkość pola jest ograniczona do 255
znaków, należy pamiętać że wielkość a jest zawsze taka jak została zdefiniowana.
Memo
tekst lub kombinacja liter i cyfr, maksymalna wielkość pola jest ograniczona do 64 tysięcy znaków, należy pamiętać że wielkość a jest zawsze taka jak została zdefiniowana.
Number
dane numeryczne używane do obliczeń. Pole to można zdefiniować jako Byte, Integer, Long Integer, Single, Double, Replication ID.
Date/Time
Data i czas, od 100 do 9999 roku.
Currency
do zapisu kwot pieniężnych lub numerycznych, używające formatu stałoprzecinkowego do zwiększenia dokładności obliczeń. Jedno do czterech miejsc dziesiętnych i 15 miejsc całkowitych.
AutoNumber
automatycznie generowany numer, mogący służyć jako identyfikator, nie może być zmieniany, jest nadawany automatycznie podczas tworzenia nowego rekordu.
Yes/No
pole wartości logicznych operujących na wartościach prawda (true) lub fałsz (false).
OLE Object
dowolne dane binarny nie przekraczające rozmiaru 1GB: grafika, dźwięk, dokument edytora tekstów, arkusz kalkulacyjny.
Lookup Wizard
Tworzy pole wyboru z listy. Lista może być utworzona na podstawie istniejącej tabeli, bądź tworzona jest nowa tabela, jako definicja pola. Typ danych tego pola jest zgodny z jednym z wyżej wymienionych typów.
Tworzenie i modyfikacja tabel
Tworzenie tabeli
CREATE TABLE tabela
(pole_1 typ [(rozmiar)] [NOT NULL] [indeks_1]
[, pole_2 typ [(rozmiar)] [NOT NULL] [indeks_2] [, ...]]
[, CONSTRAINT indeks_wielopolowy [, ...]])
Tworzenie indeksów
CREATE [ UNIQUE ] INDEX indeks
ON tabela (pole [ASC|DESC][, pole [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
Aby utworzyć indeks dla pojedynczego pola, należy za nazwą tabeli umieścić w nawiasach nazwę pola.
Aby utworzyć indeks dla wielu pól, należy podać nazwę każdego pola, które ma być włączone do indeksu. Aby utworzyć indeksy malejące, należy użyć słowa zastrzeżonego DESC; w przeciwnym przypadku indeksy będą uporządkowane rosnąco.
Aby zapobiec występowaniu powtarzających się wartości w polu lub polach indeksowanych, należy użyć słowa zastrzeżonego UNIQUE.
Posługując się opcjonalną klauzulą WITH, można określić reguły poprawności danych. Na przykład:
â€Ã³ StosujÄ…c opcjÄ™ DISALLOW NULL, można zapobiec wystÄ™powaniu wartoÅ›ci Null w polu lub polach indeksowanych nowych rekordów.
â€Ã³ StosujÄ…c opcjÄ™ IGNORE NULL, można zapobiec doÅ‚Ä…czaniu do indeksu rekordów zawierajÄ…cych w polu lub polach indeksowanych wartoÅ›ci Null.
â€Ã³ DodajÄ…c sÅ‚owo zastrzeżone PRIMARY, można okreÅ›lić indeksowane pole lub pola jako klucz podstawowy.
Pociąga to za sobą unikatowość, tak więc można wówczas pominąć słowo zastrzeżone UNIQUE.
Modyfikacja istniejÄ…cej tabeli
ALTER
TABLE
tabela
{ADD
{COLUMN
typ_pola[(rozmiar)]
[NOT
NULL]
[CONSTRAINT indeks] |
CONSTRAINT indeks_wielopolowy} |
DROP {COLUMN pole I CONSTRAINT nazwa_indeksu} }
Za pomocą instrukcji ALTER TABLE można zmienić istniejącą tabelę na kilka sposobów: opracował: mgr inż. Tomasz Karczewski
str. 1
Bazy Danych
wykład
â€Ã³ Klauzula ADD COLUMN powoduje dodanie nowego pola do tabeli. Należy okreÅ›lić nazwÄ™ pola, typ danych oraz opcjonalnie rozmiar (dla pół tekstowych i binarnych).
â€Ã³ Klauzula DROP COLUMN powoduje usuniÄ™cie pola. W tym celu należy okreÅ›lić jedynie nazwÄ™ pola.
â€Ã³ Klauzula ADD CONSTRAINT pozwala na zdefiniowanie indeksu.
â€Ã³ Klauzula DROP CONSTRAINT powoduje usuniÄ™cie indeksu wielopolowego. W tym celu należy po sÅ‚owie zastrzeżonym CONSTRAINT okreÅ›lić jedynie nazwÄ™ indeksu.
Definiowanie indeksów
Indeks dla pojedynczego pola:
CONSTRAINT nazwa {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES tabela_obca [(pole_obce_1, pole_obce_2)]}
Indeks dla wielu pól:
CONSTRAINT nazwa
{PRIMARY KEY (podstawowe_1[, podstawowe_2 [, ...]]) |
UNIQUE (unikatowe_1[, unikatowe_2 [, ...]]) |
NOT NULL (niepuste_1[, niepuste_2 [, ...]]) |
FOREIGN KEY (odesłanie_1[, odesłanie_2 [, ...]]) REFERENCES tabela_obca
[(pole_obce_1[, pole_obce_2 [, ...]])]}
Składnia ograniczenia dla pojedynczego pola w klauzuli definiującej pole w instrukcji ALTER TABLE lub CREATE TABLE występuje zaraz po specyfikacji typu danych pola.
Składnia ograniczenia dla wielu pól jest używana wtedy, gdy słowo zastrzeżone CONSTRAINT występuje poza klauzulą definicji pola w instrukcji ALTER TABLE lub CREATE TABLE.
Za pomocą klauzuli CONSTRAINT można określić dla pola następujące typy ograniczenia:
â€Ã³ Za pomocÄ… sÅ‚owa zastrzeżonego UNIQUE można okreÅ›lić pole jako klucz unikatowy. Oznacza to, że żadne dwa rekordy w tabeli nie mogÄ… mieć w tym polu takiej samej wartoÅ›ci. Jako unikatowe można okreÅ›lić dowolne pole lub listÄ™ pól. JeÅ›li w jednym ograniczeniu wiele pól jest okreÅ›lonych jako klucz unikatowy, unikatowe muszÄ… być wartoÅ›ci tych pól traktowane jako caÅ‚ość, natomiast w pojedynczych polach wartoÅ›ci mogÄ… siÄ™ powtarzać.
â€Ã³ Za pomocÄ… zastrzeżonego sÅ‚owa PRIMARY KEY można okreÅ›lić pojedyncze pole lub zbiór pól w tabeli jako klucz podstawowy. Wszystkie wartoÅ›ci klucza podstawowego muszÄ… być unikatowe i mieć wartoÅ›ci różne od Null, a tabela może zawierać tylko jeden klucz podstawowy.
â€Ã³ Za pomocÄ… słów zastrzeżonych FOREIGN KEY można okreÅ›lić pola jako klucz obcy. JeÅ›li klucz podstawowy tabeli obcej skÅ‚ada siÄ™ z wiÄ™cej niż jednego pola, należy użyć definicji ograniczenia dla wielu pól, wymieniajÄ…c wszystkie wskazujÄ…ce pola, nazwÄ™ tabeli obcej oraz nazwy wskazywanych pól w tabeli obcej w tej samej kolejnoÅ›ci, co pola wskazujÄ…ce. JeÅ›li wskazywane pole lub pola sÄ… kluczami podstawowymi tabeli obcej, to nie jest konieczne okreÅ›lenie wskazywanych pól - domyÅ›lnie, aparat bazy danych dziaÅ‚a tak, jakby pola klucza podstawowego tabeli obcej byÅ‚y polami wskazywanymi.
Usuwanie tabeli
DROP {TABLE tabela | INDEX indeks ON tabela}
Manipulowanie danymi
Wybieranie danych
SELECT
[predykat]
{
*
|
tabela.*
|
[tabela.]pole1
[AS
alias1]
[,
[tabela.]pole2 [AS alias2] [, ...]]}
FROM wyrażenie_tabelowe [, ...] [IN zewnętrzna_baza_danych]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]
opracował: mgr inż. Tomasz Karczewski
str. 2
Bazy Danych
wykład
Opis predykatów:
Element
Opis
ALL
Predykat przyjmowany domyślnie, jeśli jawnie nie podano żadnego innego, aparat bazy danych wybiera wszystkie rekordy spełniające kryteria podane w instrukcji SQL.
DISTINCT
Pomijane są te rekordy, które zawierają powtarzające się wartości we wszystkich wybieranych polach. Aby pojawić się w wyniku kwerendy, wartości każdego z pól wymienionych w instrukcji SELECT muszą być niepowtarzalne.
DISTINCTROW Pomija powtarzające się dane na podstawie wartości całych wierszy, a nie jedynie wybranych pól.
TOP n Zwraca tylko te wiersze, które mieszczą się (od góry lub od dołu) w podanym zakresie
[PERCENT]
rekordów uporządkowanych klauzulą ORDER BY.
Dodawanie danych
Instrukcja umożliwiająca dodanie wielu wierszy: INSERT INTO cel [IN zewnętrzna_baza_danych] [(pole_1[,pole_2[, ...]])]
SELECT [źródło.] pole_1[,pole_2[, ...]
FROM wyrażenie_tabelowe
Instrukcja dołączająca pojedynczy wiersz:
INSERT INTO cel [(pole_1[,pole_2[, ...]])]
VALUES (wartość_1[,wartość_2[, ...])
Aktualizacja danych
Składnia:
UPDATE tabela
SET nowa_wartość
WHERE kryteria
Przykład:
UPDATE Zamówienia
SET WartośćZamówienia = WartośćZamówienia * 1.1, Fracht = Fracht * 1.03
WHERE KrajOdbiorcy = 'UK';
Usuwanie danych
DELETE [tabela.*]
FROM tabela
WHERE kryteria
Rozwiązanie przykładowego problemu
Definicja zadania
Należy zaprojektować strukturę danych w której będą przechowywane informacje na temat studentów oraz pracowników uczelni.
O studentach należy przechowywać następujące informacje:
â€Ã³ Dane osobowe,
â€Ã³ Kierunek na którym studiuje student (student może jednoczeÅ›nie uczÄ™szczać na dwa kierunki).
O pracownikach należy przechowywać następujące informacje:
â€Ã³ Dane osobowe,
â€Ã³ Instytut w którym zatrudniony jest pracownik (pracownik może jednoczeÅ›nie być zatrudniony przez dwa instytuty).
Inne informacje:
Instytuty mają nadrzędną jednostkę, którą są wydziały. Instytut może istnieć tylko w ramach jednego wydziału.
Kierunki są prowadzone przez wydziały. Każdy kierunek może być prowadzony tylko przez jeden wydział, natomiast pracownicy z rożnych wydziałów mogą uczyć na jednym kierunku.
opracował: mgr inż. Tomasz Karczewski
str. 3
Bazy Danych
wykład
Koncepcja struktury bazy danych
Osoba
S_Ulica
Osoba_Miejscowosc
S_Miejscowosc
ID_Ulicy
NO
ID_Osoby
NO
Nazwa_Ulicy TXT40
Imie
TXT25
ID_Miejscowosci
NO
Nazwisko
TXT30
1..1
0..n
Nazwa_Miejscowosci TXT30
Osoba_ulic
1a..1
0..n
Nazwisko_Rodowe TXT30
Nr_Domu
TXT5
Nr_Mieszkania
TXT5
0..1
Kod_Pocztowy
TXT5
Osoba_Student
S_Tytuly
0..1
1..1
Student
ID_Tytulu NO
Osoba_wykladowca
ID_Studenta
NO
Tytul
TXT20
Nr_Grupy
TXT6
1..1
Podgrupa_Lab TXT2
0..n
Tytul_Wykladowca
1..1
1..n
Wykladowca
Wybrane_Kierunki
ID_Wykladowcy NO
1..n
1..n
S_Kierunek
ID_Kierunku
NO
Instytuty_Zatrudnienia
Nazwa_Kieunku TXT40
1..n
1..n
Kierunki_Na_Wydziale
S_Instytut
1..n
ID_Instytutu
NO
Nazwa_Instytutu
TXT40
1.. I1nstytuty_Na_Wydziale0..n
S_Wydzial
Symbol_Instytutu
TXT5
ID_Wydzialu
NO
Nazwa_Wydzialu
TXT40
Symbol_Wydzialu TXT
Struktura danych stworzona na podstawie opracowanej koncepcji Osoba
S_Ty tuly
ID_Osoby
COUNTER
ID_Ty tulu COUNTER
ID_Studenta
LONG
Ty tul
TEXT(20)
ID_Ulicy
LONG
ID_Miejscowosci
LONG
ID_Wy kladowcy
LONG
ID_Miejscowosci = ID_Miejscowosci
Imie
TEXT(25)
ID_Ty tulu = I
I D
D _T
_W yy tu
kl lu
adowcy = ID_Wy kladowcy Nazwisko
TEXT(30)
S_Miejscowosc
Nazwisko_Rodowe TEXT(30)
ID_Miejscowosci
COUNTER
ID_Osoby = ID_Osoby
Nr_Domu
TEXT(5)
Nazwa_Miejscowosci TEXT(30)
Nr_Mieszkania
TEXT(5)
Wy kladowca
K d P
t
TEXT(5)
ID_Studenta = ID_Studenta
ID_Wy kladowcy COUNTER
ID_Osoby = ID_Osoby
ID_Ty tulu
LONG
ID_Ulicy = ID_Ulicy
ID_Osoby
LONG
Student
S_Ulica
ID_Studenta
COUNTER
ID_Wy kladowcy = ID_Wy kladowcy
ID_Osoby
LONG
ID_Ulicy
COUNTER
Nr_Grupy
TEXT(6)
Nazwa_Ulicy TEXT(40)
Podgrupa_Lab TEXT(2)
Insty tuty _Zatrudnienia
ID_Insty tutu
LONG
ID_Studenta = ID_Studenta
ID_Wy kladowcy LONG
Kierunki_Na_Wy dziale
ID_Wy dzialu LONG
Wy brane_Kierunki
ID_Insty tutu = ID_Insty tutu
ID_Kierunku LONG
ID_Kierunku LONG
ID_Studenta LONG
S_Insty tut
ID_Insty tutu
COUNTER
ID_Kierunku = ID_Kierunku
ID_Wy dzialu
LONG
ID_Wy dzialu = ID_Wy dzialu
ID_Kierunku = ID_Kierunku
Nazwa_Insty tutu
TEXT(40)
Sy mbol_Insty tutu TEXT(5)
ID_Wy dzialu = ID_Wy dzialu
S_Kierunek
S_Wy dzial
ID_Kierunku
COUNTER
ID_Wy dzialu
COUNTER
Nazwa_Kieunku TEXT(40)
Nazwa_Wy dzialu
TEXT(40)
Sy mbol_Wy dzialu LONGTEXT
opracował: mgr inż. Tomasz Karczewski
str. 4
Bazy Danych
wykład
Fizyczna implementacja bazy
alter table S_Instytut
Imie
TEXT(25)
not null,
drop constraint FK_S_INSTYT_INSTYTUTY_S_WYDZIA; Nazwisko
TEXT(30)
not null,
alter table Instytuty_Zatrudnienia
Nazwisko_Rodowe
TEXT(30)
not null,
drop constraint FK_INSTYTUT_INSTYTUTY_S_INSTYT; Nr_Domu
TEXT(5)
not null,
alter table Instytuty_Zatrudnienia
Nr_Mieszkania
TEXT(5),
drop constraint FK_INSTYTUT_INSTYTUTY_WYKLADOW; Kod_Pocztowy
TEXT(5)
not null,
constraint PK_OSOBA primary key (ID_Osoby)
alter table Kierunki_Na_Wydziale
);
drop constraint FK_KIERUNKI_KIERUNKI__S_WYDZIA; create table S_Instytut
(
alter table Kierunki_Na_Wydziale
ID_Instytutu
COUNTER
not null,
drop constraint FK_KIERUNKI_KIERUNKI__S_KIERUN; ID_Wydzialu
LONG
not null,
alter table Osoba
Nazwa_Instytutu
TEXT(40)
not null,
drop constraint FK_OSOBA_OSOBA_MIE_S_MIEJSC;
Symbol_Instytutu
TEXT(5)
not null,
alter table Osoba
constraint PK_S_INSTYTUT primary key (ID_Instytutu) drop constraint FK_OSOBA_OSOBA_STU_STUDENT;
);
alter table Student
create table S_Kierunek
drop constraint FK_STUDENT_OSOBA_STU_OSOBA;
(
alter table Osoba
ID_Kierunku
COUNTER
not null,
drop constraint FK_OSOBA_OSOBA_ULI_S_ULICA;
Nazwa_Kieunku
TEXT(40)
not null,
alter table Wykladowca
constraint PK_S_KIERUNEK primary key (ID_Kierunku) drop constraint FK_WYKLADOW_OSOBA_WYK_OSOBA;
);
alter table Osoba
create table S_Miejscowosc
drop constraint FK_OSOBA_OSOBA_WYK_WYKLADOW;
(
alter table Wykladowca
ID_Miejscowosci
COUNTER
not null,
drop constraint FK_WYKLADOW_TYTUL_WYK_S_TYTULY; Nazwa_Miejscowosci
TEXT(30)
not null,
alter table Wybrane_Kierunki
constraint
PK_S_MIEJSCOWOSC
primary
key
drop constraint FK_WYBRANE__WYBRANE_K_S_KIERUN; (ID_Miejscowosci)
alter table Wybrane_Kierunki
);
drop constraint FK_WYBRANE__WYBRANE_K_STUDENT; create table S_Tytuly
alter table S_Instytut
(
drop constraint AK_AK_INSTYTUT_S_INSTYT;
ID_Tytulu
COUNTER
not null,
alter table S_Kierunek
Tytul
TEXT(20)
not null,
drop constraint AK_AK_KIERUNEK_S_KIERUN;
constraint PK_S_TYTULY primary key (ID_Tytulu) alter table S_Miejscowosc
);
drop constraint AK_AK_MIEJSCOWOSC_S_MIEJSC;
create table S_Ulica
alter table S_Tytuly
(
drop constraint AK_AK_TYTUL_S_TYTULY;
ID_Ulicy
COUNTER
not null,
alter table S_Ulica
Nazwa_Ulicy
TEXT(40)
not null,
drop constraint AK_AK_ULICA_S_ULICA;
constraint PK_S_ULICA primary key (ID_Ulicy)
alter table S_Wydzial
);
drop constraint AK_AK_WYDZIAL_S_WYDZIA;
create table S_Wydzial
alter table Wykladowca
(
drop constraint AK_AK_WYKLADOWCY_WYKLADOW;
ID_Wydzialu
COUNTER
not null,
drop table Instytuty_Zatrudnienia;
Nazwa_Wydzialu
TEXT(40)
not null,
drop table Kierunki_Na_Wydziale;
Symbol_Wydzialu
LONGTEXT
not null,
drop table Osoba;
constraint PK_S_WYDZIAL primary key (ID_Wydzialu) drop table S_Instytut;
);
drop table S_Kierunek;
create table Student
drop table S_Miejscowosc;
(
drop table S_Tytuly;
ID_Studenta
COUNTER
not null,
drop table S_Ulica;
ID_Osoby
LONG
not null,
drop table S_Wydzial;
Nr_Grupy
TEXT(6)
not null,
drop table Student;
Podgrupa_Lab
TEXT(2)
not null,
drop table Wybrane_Kierunki;
constraint PK_STUDENT primary key (ID_Studenta) drop table Wykladowca;
);
create table Instytuty_Zatrudnienia
create table Wybrane_Kierunki
(
(
ID_Instytutu
LONG
not null,
ID_Kierunku
LONG
not null,
ID_Wykladowcy
LONG
not null,
ID_Studenta
LONG
not null,
constraint
PK_INSTYTUTY_ZATRUDNIENIA
primary
key
constraint
PK_WYBRANE_KIERUNKI
primary
key
(ID_Instytutu, ID_Wykladowcy)
(ID_Kierunku, ID_Studenta)
);
);
create table Kierunki_Na_Wydziale
create table Wykladowca
(
(
ID_Wydzialu
LONG
not null,
ID_Wykladowcy
COUNTER
not null,
ID_Kierunku
LONG
not null,
ID_Tytulu
LONG
not null,
constraint
PK_KIERUNKI_NA_WYDZIALE
primary
key
ID_Osoby
LONG
not null,
(ID_Wydzialu, ID_Kierunku)
constraint PK_WYKLADOWCA primary key (ID_Wykladowcy)
);
);
create table Osoba
alter table S_Instytut
(
add
constraint
AK_AK_INSTYTUT_S_INSTYT
unique
ID_Osoby
COUNTER
not null,
(Nazwa_Instytutu);
ID_Studenta
LONG
not null,
alter table S_Kierunek
ID_Ulicy
LONG
not null,
add
constraint
AK_AK_KIERUNEK_S_KIERUN
unique
ID_Miejscowosci
LONG
not null,
(Nazwa_Kieunku);
ID_Wykladowcy
LONG
not null,
alter table S_Miejscowosc
opracował: mgr inż. Tomasz Karczewski
str. 5
Bazy Danych
wykład
add
constraint
AK_AK_MIEJSCOWOSC_S_MIEJSC
unique
add constraint FK_OSOBA_OSOBA_MIE_S_MIEJSC foreign (Nazwa_Miejscowosci);
key (ID_Miejscowosci)
alter table S_Tytuly
references S_Miejscowosc (ID_Miejscowosci);
add
constraint
AK_AK_TYTUL_S_TYTULY
unique
alter table Osoba
(Tytul);
add
constraint
FK_OSOBA_OSOBA_STU_STUDENT
foreign
alter table S_Ulica
key (ID_Studenta)
add
constraint
AK_AK_ULICA_S_ULICA
unique
references Student (ID_Studenta);
(Nazwa_Ulicy);
alter table Student
alter table S_Wydzial
add
constraint
FK_STUDENT_OSOBA_STU_OSOBA
foreign
add
constraint
AK_AK_WYDZIAL_S_WYDZIA
unique
key (ID_Osoby)
(Nazwa_Wydzialu);
references Osoba (ID_Osoby);
alter table Wykladowca
alter table Osoba
add
constraint
AK_AK_WYKLADOWCY_WYKLADOW
unique
add
constraint
FK_OSOBA_OSOBA_ULI_S_ULICA
foreign
(ID_Tytulu, ID_Osoby);
key (ID_Ulicy)
alter table S_Instytut
references S_Ulica (ID_Ulicy);
add
constraint
FK_S_INSTYT_INSTYTUTY_S_WYDZIA
alter table Wykladowca
foreign key (ID_Wydzialu)
add constraint FK_WYKLADOW_OSOBA_WYK_OSOBA foreign references S_Wydzial (ID_Wydzialu);
key (ID_Osoby)
alter table Instytuty_Zatrudnienia
references Osoba (ID_Osoby);
add
constraint
FK_INSTYTUT_INSTYTUTY_S_INSTYT
alter table Osoba
foreign key (ID_Instytutu)
add constraint FK_OSOBA_OSOBA_WYK_WYKLADOW foreign references S_Instytut (ID_Instytutu);
key (ID_Wykladowcy)
alter table Instytuty_Zatrudnienia
references Wykladowca (ID_Wykladowcy);
add
constraint
FK_INSTYTUT_INSTYTUTY_WYKLADOW
alter table Wykladowca
foreign key (ID_Wykladowcy)
add
constraint
FK_WYKLADOW_TYTUL_WYK_S_TYTULY
references Wykladowca (ID_Wykladowcy);
foreign key (ID_Tytulu)
alter table Kierunki_Na_Wydziale
references S_Tytuly (ID_Tytulu);
add
constraint
FK_KIERUNKI_KIERUNKI__S_WYDZIA
alter table Wybrane_Kierunki
foreign key (ID_Wydzialu)
add
constraint
FK_WYBRANE__WYBRANE_K_S_KIERUN
references S_Wydzial (ID_Wydzialu);
foreign key (ID_Kierunku)
alter table Kierunki_Na_Wydziale
references S_Kierunek (ID_Kierunku);
add
constraint
FK_KIERUNKI_KIERUNKI__S_KIERUN
alter table Wybrane_Kierunki
foreign key (ID_Kierunku)
add
constraint
FK_WYBRANE__WYBRANE_K_STUDENT
references S_Kierunek (ID_Kierunku);
foreign key (ID_Studenta)
alter table Osoba
references
Student
(ID_Studenta);
opracował: mgr inż. Tomasz Karczewski
str. 6
Wyszukiwarka
Podobne podstrony:
WYKLAD 2 id 2231861 Nieznany
WYKLAD 1 id 2231860 Nieznany
BD V600 L3 C A3 V1[1] 1 id 2157 Nieznany
CISAX01GBD id 2064757 Nieznany
SGH 2200 id 2230801 Nieznany
111003105109 stress id 2048457 Nieznany
CIXS201GBD id 2064760 Nieznany
TOCEL96GBB id 2491297 Nieznany
1078 2 FEA209544 128UEN A id 22 Nieznany
McRib(r) Sandwich id 2201097 Nieznany
DOC0534 id 2032985 Nieznany
8 17 id 2009842 Nieznany
REKAN02GBBT id 2491218 Nieznany
cialo albatros id 2035175 Nieznany
[17] FR540NT010 id 2085454 Nieznany
RO7503GBDT id 2491245 Nieznany
VOLUP98GBD id 2134841 Nieznany
więcej podobnych podstron