Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie
|
|
- Maria Górska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Dr inż. Witold Rekuć p. 57 B4 Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie Literatura. C. Date. Wprowadzenie do systemów baz danych. WNT, Ullman J., Widom J.. Podstawowy wykład z systemów baz danych. WNT, Gruber M., SQL, Helion, Celko J., SQL zaawansowane techniki programowania. Mikom, Materiały do wykładu Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL
2 . Pojęcia relacyjnych baz danych 2. Operacje relacyjne 3. Operacje teoriomnogościowe 4. Operacja dzielenia 5. Operacja teta-złączenia 6. Projektowanie tabel Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 2
3 . Pojęcia relacyjnych baz danych Laboratorium IBM San Jose (California) A relational model for large shared data banks Communication of the ACM, 3:6,970. System R - prototyp oprogramowania SEQUEL2 prototyp języka Dziś: Oprogramowanie MS ACCESS, SQL Server, PostgreSQL, INGRES, ORACLE, DB2, Informix, Progres, Język SQL Edgar F. Codd Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 3
4 Baza danych jest zbiorem tabel (relacji) pamiętanych w jednym lub wielu plikach Firmy Nr Nazwa 0 Nasza Firma Abeja 2 Audi 3 Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Miejscowości Kod Nazwa KodWoj Wrocław DL 2 Opole OP 3 Wałbrzych DL Firm2000.mdb Wojewodztwa Kod Nazwa DL Dolnośląskie OP Opolskie 4 Iase Energetyczna Dolmed Dokumenty Medyczna PozycjeDokumentu Nr NrSprzerdawcy Np SmbTow CenaNetto Ilość Nr NrSprzerdawcy NrNabywcy Data / ,00 20 / / , / / ,00 50 / / , / / , / / , / / ,00 45 Towary Smb Nazwa 00 Pasztet 002 Mortadela 003 Chipsy 004 Kawa Jakobs Jm kg kg paczka 400g paczka 00g StawkaVat 7% 7% 7% 7% 3/02 3/02 3/02 2/02 2/02 4/ ,50 7,80 3,20 2,00 4,60 3, Makrela kons. puszka 250g 7% Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 4
5 System zarządzania bazą danych Baza danych System zarządzania bazą danych Język użytkowników bazy danych Język administratora bazy danych... Użytkownicy bazy danych Administrator bazy danych Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 5
6 Tabela (relacja) Nazwa tabeli (relacji) nazwa kolumny (atrybutu, pola) Firmy Nr Nazwa Ulica KodMjc Telefon nagłówek (schemat) 0 Nasza Firma Nasza Abeja Abejowska Audi Pafawag Iase Audiego Wagonowa Energetyczna Wiersz (rekord, krotka) 5 Dolmed Medyczna kolumna (atrybut, pole) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 6
7 Wartości w kolumnach (wartości atrybutów) Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza Abeja Abejowska Audi Audiego 2 3 Pafawag Wagonowa 2 4 Iase Energetyczna Dolmed Medyczna 6 Dolmel Elektryczna Zbiór dopuszczalnych numerów firm Dolme l Zbiór dopuszczalnych nazw firm Elektryczn a Zbiór dopuszczalnych nazw ulic 3 Zbiór dopuszczalnych kodów miejscowości Zbiór dopuszczalnych numerów telefonów Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 7
8 Dziedzina Dziedzina wartości jest to zbiór wartości, które potencjalnie mogą pojawić się w kolumnie tabeli (które może przyjmować atrybut). Wartości w kolumnach musza być traktowane jako atomowe - niepodzielne na mniejsze części Różne dziedziny wartości nie muszą być rozłączne Dziedzinę określa się przez podanie typu danych oraz dodatkowych ograniczeń (więzów) lub właściwości Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 8
9 Określoność wartości w kolumnach (wartości atrybutów) Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza Abeja Abejowska Audi Audiego 2 3 Pafawag Wagonowa Iase Dolmed Energetyczna Medyczna Wartość nieokreślona 6 Dolmel Elektryczna 3 6 Zbiór dopuszczalnych numerów firm Dolme l Zbiór dopuszczalnych nazw firm Elektrycz na 3 Zbiór dopuszczalnych nazw ulic Zbiór dopuszczalnych kodów miejscowości Zbiór dopuszczalnych numerów telefonów Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 9
10 Projektując tabelę dla pewnego zastosowania możemy rozstrzygnąć dla każdej kolumny: - czy wartość w kolumnie musi być zawsze określona, - czy wartość w kolumnie może być nieokreślona. Do oznaczenia wartości nieokreślonych stosuje się słowo NULL: Telefon is NULL Telefon is not NULL telefon jest nieokreślony telefon jest określony Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 0
11 Nieokreśloność wartości w kolumnach i logika trójwartościowa 6 Dolmel Elektryczna Telefon = Telefon is Telefon is ? NULL? not NULL? TRUE FALSE TRUE 6 Dolmel Elektryczna FALSE FALSE TRUE 6 Dolmel Elektryczna 3 UNKNOWN TRUE FALSE NULL Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL
12 Klucze tabeli Kluczem tabeli nazywamy niepusty zbiór atrybutów tabeli, które identyfikują wiersz tabeli i żaden jego podzbiór właściwy tej własności nie ma Dokumenty Nr NrSprzerdawcy NrNabywcy Data / /02 / Kluczem w tabeli Dokumenty jest zbiór 3/ K = {Nr, NrSprzedawcy} 2/ / Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 2
13 Inne przykłady: Osoba(Pesel, Nip, Nazwisko, Imię, DataUrodzenia) K={Pesel}, K2={Nip} Egzamin(NrStudenta, KodPrzedmiotu, Data, Ocena) K={NrStudenta, KodPrzedmiotu, Data} PozycjeDokumentu(Nr, NrSprzedawcy, Np,SmbTow, CenaNetto, Ilość) K={Nr, NrSprzedawcy, Np}, K2={Nr, NrSprzedawcy, SmbTow} ObrotyMiesięczne(Rok, Mc, Wartość) K={Rok, Mc} Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 3
14 Wszystkie klucze zdefiniowane dla danej tabeli sa zwane kluczami kandydującymi Kluczem podstawowym tabeli nazywamy klucz, który ze względu na pewne cechy praktyczne zostaje arbitralnie wybrany spośród kluczy tabeli Przykład: Przedmiot (Kod, Nazwa, Opis) K={Kod}, K2={Nazwa} Kluczem podstawowy: K Określoność wartości kluczy Każdy klucz tabeli musi mieć wartość określoną (NULL jest niedopuszczalne) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 4
15 Definiowanie tabel bazy danych w języku SQL Notacja dla opisu składni: [wyrażenie] wyrażenie wyrażenie2 wyrażenie [,...] oznacza, że wyrażenie nie jest obowiązkowe oznacza albo wyrażenie albo wyrażenie2 oznacza możliwość powtarzania wyrażenia pewną liczbę razy {wyrażenie wyrażenie2 } nawiasy klamrowe służą do oznaczenia grupy ::= czytaj jest to wyrażeń (jak nawiasy w matematyce) UPDATE słowo kluczowe (symbol terminalny), ; ( ) znaki pojawiające się w wyrażeniach SQL (symbole terminalne) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 5
16 CREATE TABLE nazwa_tabeli ( {nazwa_kolumny typ_kolumny[(rozmiar)]} [,...] )[;] Przykład definicji tabeli w języku SQL create table Firmy ( Nr Nazwa Ulica KodMjc Telefon DatZał Kapitał CzySpółka ); integer, char(30), char(30), char(5), char(20), datetime, real, bit Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 6
17 Podstawowe typy danych Typ danych Wielkość pamięci Opis BIT bajt Wartości Yes i No oraz pola zawierające tylko jedną z dwóch wartości. BYTE bajt Liczba całkowita z przedziału od 0 do 255. MONEY 8 bajtów Liczba całkowita z przedziału [ ,5808; ,5807] DATETIME 8 bajtów Wartość daty lub godziny z przedziału lat od 00 do REAL 4 bajty Wartość rzeczywista o pojedynczej precyzji mieszcząca się w przedziale [ 3,402823E38;,40298E-45] dla wartości ujemnych i [,40298E-45; 3,402823E38] dla wartości dodatnich oraz 0. FLOAT 8 bajtów Wartość rzeczywista o podwójnej precyzji należąca do zakresu [, E308; 4, E-324] dla wartości ujemnych i [ 4, E-324;, E308] dla wartości dodatnich oraz 0. SMALLINT 2 bajty Liczba całkowita z przedziału [ ; ]. INTEGER 4 bajty Liczba całkowita z przedziału [ ; ]. TEXT 2 bajty na znak Od zera do maksymalnie 2,4 gigabajta. CHARACTER 2 bajty na znak Od zera do 255 znaków. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 7
18 CREATE TABLE nazwa_tabeli ( {nazwa_kolumny typ_kolumny[(rozmiar)] [ograniczenie_kolumnowe ]} [,...] )[;] ograniczenie_kolumnowe::= [ CONSTRAINT nazwa_ograniczenia] { PRIMARY KEY UNIQUE NOT NULL REFERENCES nazwa_tabeli_decelowej (nazwa_kolumny_w_tabeli_docelowej)]} PRIMARY KEY UNIQUE NOT NULL - wskazanie, że kolumna tworzy klucz główny - wskazanie, że kolumna tworzy klucz inny - wskazanie, że w kolumnie wszystkie wartości muszą być określone REFERENCES... - o tym dalej Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 8
19 Przykład definicji tabeli w języku SQL create table Firmy ( Nr integer constraint c primary key, Nazwa char(30) constraint c2 unique not null, Ulica char(30) constraint c3 unique not null, KodMjc integer, Telefon char(20), DatZał datetime, Kapitał real constraint c4 not null, CzySpółka bit constraint c5 not null ); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 9
20 Modyfikowanie definicji tabel bazy danych w języku SQL Usuń tabelę z bazy danych DROP TABLE nazwa_tabeli [;] Modyfikuj definicję tabeli ALTER TABLE nazwa_tabeli { ADD COLUMN nazwa_kolumny typ [(rozmiar)] [NOT NULL] [ograniczenie_kolumnowe] ADD CONSTRAINT ograniczenie_tabelowe ALTER COLUMN nazwa_kolumny typ [(rozmiar)] DROP COLUMN nazwa_kolumny DROP CONSTRAINT nazwa_ograniczenia } [;] Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 20
21 Przyklady alter table firmy add column liczba_prac byte constraint c6 not null; alter table firmy add column liczba_prac byte not null; alter table firmy alter column liczba_prac integer; alter table firmy drop constraint c2; alter table firmy drop column liczba_prac; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 2
22 Modyfikowanie zawartości tabel bazy danych w języku SQL INSERT INTO nazwa_tabeli [(nazwa_kolumny [,...])] VALUES (wartość [,...])[;] wartość musi być wartością dziedziny (typu) okreslonej dla kolumny w definicji tabeli Przyklady insert into firmy values (, "Dolmel", "Chorobowa 3", 4, NULL, # #, 2000, yes, 20); insert into firmy (Nr, Nazwa, Ulica, KodMjc, Telefon, DatZał, Kapitał, CzySpółka, liczba_prac) values (2, "Famag", "Krakowska 3", 2, NULL, # #, 20000, no, 200); insert into firmy (Telefon, DatZał, Kapitał, Nr, Nazwa, Ulica, KodMjc, CzySpółka, liczba_prac) values ("34-23", # #, 20, 3, "Miki", "Mikowska 3", 4, no, 2); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 22
23 INSERT INTO nazwa_tabeli [(nazwa_kolumny [,...])] SELECT [nazwa_tabeli.]nazwa_kolumny [,...] FROM wyrażenie_tabelowe [WHERE warunek] [;] wyrażenie_tabelowe nazwa tabeli (lub wyrażenie, którego wartością jest tabela - patrz wykład dalej) Przyklady create table r2(c integer, D integer); insert into r2 values (,2); insert into r2 values (3,4); insert into r2 values (5,3); r2 C D create table r(a integer, B integer); insert into r(a, B) select C, D from r2; insert into r(a, B) select D, C from r2 where D>2; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 23
24 UPDATE nazwa_tabeli SET nazwa_kolumny = nowa_wartość [, ] [WHERE warunek] [;] Przyklady r A B 2 update r set A = 0, B = 20; r A B update r set A = 0, B = 20 where A>2; r A B Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 24
25 DELETE nazwa_tabeli.* * FROM nazwa_tabeli [WHERE warunek][;] Przyklady r A B delete r.* from r; delete * from r; r r A A B B 5 3 delete * from r where A>3; r A B Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 25
26 Operatory porównania Operator Znaczenie < dla x<y zwraca wartość TRUE, gdy x jest mniejsze od y <= dla x<=y zwraca wartość TRUE, gdy x jest mniejsze lub równe y > dla x>y zwraca wartość TRUE, gdy x jest większe od y >= dla x>=y zwraca wartość TRUE, gdy x jest większe lub równe y = dla x=y zwraca wartość TRUE, gdy x jest równe y <> dla x<>y zwraca wartość TRUE, gdy x nie jest równe y Operatory logiczne Operator And Or Eqv Not Xor Znaczenie p And q zwraca TRUE gdy p i q są prawdziwe p Or q zwraca TRUE gdy p lub q jest prawdziwe p Eqv q zwraca TRUE gdy oba p iq są prawdziwe lub oba p i q są nieprawdziwe Not p zwraca TRUE gdy p nie jest prawdziwe p Xor q zwraca TRUE gdy albo p albo q jest prawdziwe Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 26
27 Problem poprawności bazy danych W aktualizacji bazy danych musimy zapewnić poprawność bazy danych: Poprawność formalna zgodność bazy danych z regułami formalnymi Poprawność merytoryczna zgodność bazy danych z rzeczywistością Poprawność formalna więzy integralnościowe: więzy dziedziny wartość atrybutu w tabeli musi należeć do dziedziny tego atrybutu lub jeżeli jest to dopuszczalne może być nieokreślona (NULL) więzy klucza w tabeli nie mogą występować dwa lub więcej wierszy o tej samej wartości klucza; klucz musi mieć wartość określoną więzy integralności referencyjnej patrz niżej inne więzy patrz niżej Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 27
28 Więzy dziedziny i klucza Firmy Nr 0 Nazwa Nasza Firma Ulica Nasza KodMjc Telefon Abeja Abejowska Audi Audiego 2 3 Pafawag Wagonowa 2 4 Iase Energetyczna Dolmed Medyczna Dodaj wiersz -3 Makrosoft Informatyczna A NULL Naruszenie więzów dziedziny Dodaj wiersz NULL Makrosoft Informatyczna NULL Naruszenie więzów klucza Dodaj wiersz 2 Makrosoft Informatyczna NULL Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 28
29 Więzy integralności referencyjnej Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL 2 3 Abeja Audi Pafawag Abejowska Audiego Wagonowa Opole Wałbrzych OP DL 4 Iase Energetyczna Dolmed Medyczna Dodaj do tabeli Firmy wiersz: 6 TP SA Telewizyjna Usuń z tabeli Miejscowości wiersz: 2 Opole DL Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 29
30 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL Abeja Abejowska Opole OP 2 Audi Audiego 2 3 Wałbrzych DL 3 Pafawag Wagonowa 2 4 Iase Energetyczna Dolmed Medyczna Dla każdego wiersza tabeli Firmy musi występować wiersz w tabeli Miejscowości taki, że: Firmy.KodMjc=Miejscowości.Kod Dla każdego wiersza tabeli Miejscowości może występować wiersz w tabeli Firmy taki, że: Firmy.KodMjc=Miejscowości.Kod Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 30
31 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL Abeja Abejowska Opole OP 2 Audi Audiego 2 3 Wałbrzych DL 3 4 Pafawag Iase Wagonowa Energetyczna Klucz = {Kod} 5 Dolmed Medyczna Klucz = {Nr} Klucz obcy = {KodMjc} Dane są dwie tabele: To zwana tabelą odwołania Td zwana tabelą docelową Kluczem obcym tabeli To do tabeli Td nazywamy taki niepusty zbiór atrybutów To, którego wartości są wartościami klucza tabeli Td Więzy integralności referencyjnej Dla każdej wartości klucza obcego w tabeli odwołania w tabeli docelowej musi istnieć unikalny wiersz zawierający wartość tego klucza. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 3
32 Przykład: Student (Nr, Nazwisko, Adres) Klucz={Nr} Egzamin (NrStudenta, KodPrzedmiotu, Data, Ocena) Klucz={NrStudenta, KodPrzedmiotu, Data} KluczObcy do tabeli Student KO={NrStudenta} KluczObcy do tabeli Przedmiot KO2={KodPrzedmiotu} Przedmiot (Kod, Nazwa) Klucz={Kod} Przykład: Dostawca (Kod, Nazwa, Ulica, KodMjc) Miejscowość (Kod, Nazwa) Dostawa (KodDostawcy, SmbTowaru, Data, Ilość) Towar (Symbol, Nazwa, Cena, Jm) Wskazać klucze i klucze obce! Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 32
33 CREATE TABLE nazwa_tabeli ( nazwa_kolumny typ_kolumny[(rozmiar)] [ograniczenie_kolumnowe ] [,...] )[;] ograniczenie_kolumnowe::= [ CONSTRAINT nazwa_ograniczenia] { PRIMARY KEY UNIQUE NOT NULL REFERENCES nazwa_tabeli_decelowej (nazwa_kolumny_w_tabeli_docelowej)]} PRIMARY KEY UNIQUE NOT NULL REFERENCES klucz podstawowy klucz dodatkowy wymagane klucz obcy Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 33
34 Przykład create table Miejscowosci ( Kod Byte primary key, Nazwa char(30) not null ); create table Firmy ( Nr Byte primary key, Nazwa char(30) not null, Ulica char(30) not null, KodMjc Byte not null references Miejscowosci (Kod), Telefon char(20) ); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 34
35 Ograniczenia tablicowe CREATE TABLE nazwa_tabeli ( nazwa_kolumny typ_kolumny[(rozmiar)] [ograniczenie_kolumnowe ] [,...] [,ograniczenie_tablicowe [,...]] )[;] ograniczenie_tablicowe ::= [ CONSTRAINT nazwa_ograniczenia] { PRIMARY KEY (nazwa_kolumny_klucza_głównego[,...]) UNIQUE (nazwa_kolumny_klucza_dodatkowego[,...]) FOREIGN KEY (nazwa_kolumny_w_tabeli [, ]) REFERENCES nazwa_tabeli_docelowej (nazwa_kolumny_w_tabeli_docelowej[,...]) } PRIMARY KEY UNIQUE FOREIGN KEY REFERENCES klucz podstawowy klucz dodatkowy klucz obcy Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 35
36 Przykład create table FAKTURY ( NrFaktury char(2), NrSprzedawcy integer, NrNabywcy integer not null, Data datetime not null, constraint pk_d primary key (NrFaktury, NrSprzedawcy) ) create table POZYCJEFAKTURY ( NrFaktury char(2), NrSprzedawcy integer, NrPozycji byte, SmbTow char(4), Ilość float, CenaNetto float, constraint pk_pd primary key (NrFaktury, NrSprzedawcy, NrPozycji), constraint uq_pd unique (NrFaktury, NrSprzedawcy, SmbTow), constraint fk_pd foreign key (NrFaktury, NrSprzedawcy) references FAKTURY(NrFaktury, NrSprzedawcy) ) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 36
37 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 37
38 Inne więzy integralnościowe Więzy inne są specyficzne dla dziedziny zastosowań. Są one określone przez warunki, których niespełnienie byłoby świadectwem błędu w danych lub świadectwem naruszenia reguł organizacji, w której baza danych jest użytkowana. Przykłady:. Data dostawy nie może być wcześniejsza od daty zamówienia tej dostawy. 2. Dla każdego promotora liczba dyplomatów nie może być większa od Nie może być wykonane wypożyczenie książki czytelnikowi, który zalega ze zwrotem innych książek. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 38
39 2. Operacje relacyjne Operacje na tabelach Operacje relacyjne Projekcja Operacje teoriomnogościowe Suma Selekcja Złączenie Dzielenie Iloczyn Różnica niesymetryczna Dopełnienie Przemianowanie Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 39
40 Operacja projekcji Wyznacza tabelę o schemacie ograniczonym do zbioru zadanych nazw r(r) - tabela r o schemacie R poddawana projekcji X schemat nowej tabeli - zbiór zadanych nazw (X R) q(x) - tabela q o schemacie X - wynik projekcji q(x) = X ( r (R) ) = { t[x] : t r } gdzie t[x] oznacza wiersz powstały przez zredukowanie t do wartości atrybutów z X R X Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 40
41 Przykład r A B C D a5 b2 c d a6 b4 c5 d2 a6 b4 c d3 a6 b4 c d2 a b2 c2 d {C,D} ( r ({A,B,C,D}) ) = q({c,d}) C D c d c5 d2 c d3 c d2 c2 d {A,B} ( r ({A,B,C,D}) ) = q({a,b}) A a5 a6 a B b2 b4 b2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 4
42 Przykład Podaj nazwy i numery telefonów firm q({nazwa, Telefon}) = {Nazwa, Telefon} ( Firmy ({Nr, Nazwa, Ulica,KodMjc, Telefon})) q Firmy Nazwa Telefon Nr Nazwa Ulica KodMjc Telefon Nasza Firma Nasza Firma Nasza Abeja Abeja Abejowska Audi Pafawag {Nazwa, Telefon} 2 3 Audi Pafawag Audiego Wagonowa 2 2 Iase Iase Energetyczna Dolmed 5 Dolmed Medyczna wiersze zredukowane do X={Nazwa, Telefon} Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 42
43 Realizacja w SQL (SELECT FROM) SELECT [ ALL DISTINCT] DISTINCTROW [TOP n [PERCENT]] { * nazwa_tabeli.* {[nazwa_tabeli.] nazwa_kolumny [AS alias]}[,...] } [ INTO nazwa_nowej_tabeli ] [FROM wyrażenie_tabelowe [,...]] SELECT ALL DISTINCT DISTINCTROW TOP n TOP n PERCENT wybierz wszystkie (także duplikaty) unikalne wartości (bez duplikatów) unikalne wiersze (o tym potem) od góry n wierszy od góry n procent wierszy Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 43
44 r A B select * from r; select r.* from r; select A, B from r; select r.a, r.b from r; select A as X, B as Y from r; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 44 A B X Y
45 A B select A from r; select r.a from r; select all A from r; select distinct A from r; select top 3 * from r; select top 5 percent * from r; A A A B A B 2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 45
46 Przykład create table Miejscowosci ( Kod Byte primary key, Nazwa char(30) not null ); create table Firmy ( Nr Byte primary key, Nazwa char(30) not null, Ulica char(30) not null, KodMjc Byte not null references Miejscowosci (Kod), Telefon char(20) ); select nazwa, telefon from Firmy; select distinct nazwa, telefon from Firmy; select * from Firmy; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 46
47 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon})) q KodMjc 3 {KodMjc} Firmy select kodmjc from Firmy; Nr 0 Nazwa Nasza Firma Abeja Ulica Nasza Abejowska KodMjc 3 Telefon Audi Audiego 2 3 Pafawag Wagonowa 2 q KodMjc {KodMjc} 4 5 Iase Dolmed Energetyczna Medyczna select distinct kodmjc from Firmy; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 47
48 Przykład Chcemy obliczyć wartość średnią obrotu miesięcznego w roku q({obrót}) = {Obrót} ( Obroty ({Miesiąc,Obrót}) ) q Obroty Obrót Miesiąc Obrót {Obrót} Styczeń Luty Marzec Kwiecień Maj czerwiec Zostaw duplikaty w tabeli wynikowej select distinct Obrót from Obroty; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 48
49 Operacja selekcji Wyznacza tabelę o schemacie identycznym schematowi tabeli zadanej ale o wierszach spełniających pewien warunek selekcji r(r) tabela r o schemacie R poddawana selekcji F warunek selekcji (formuła logiczna) q(r) tabela q o schemacie R - wynik selekcji q(r) = F ( r (R) ) = { t : t r i F(t) = prawda } wiersze spełniające warunek selekcji Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 49
50 Przykład r A B C D a5 2 a a6 4 a5 2 a6 4 a a6 4 a 2 a 2 a r ({A,B,C,D}) ) = q ({A,B,C,D}) B A B C D r ({A,B,C,D}) ) = q ({A,B,C,D}) B A B C D and D<2 a6 4 a5 2 a6 4 a a6 4 a 2 a6 4 a r ({A,B,C,D}) ) = q ({A,B,C,D}) B=4 A B C D or D<2 a5 2 a a6 4 a5 2 a6 4 a a6 4 a 2 a 2 a Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 50
51 Realizacja w SQL (SELECT...FROM...WHERE) SELECT [ ALL DISTINCT DISTINCTROW [TOP n [PERCENT]] { * nazwa_tabeli.* {[nazwa_tabeli.] nazwa_kolumny [AS alias]}[,...] } [ INTO nazwa_nowej_tabeli ] [FROM wyrażenie_tabelowe [,...]] [WHERE warunek ] warunek stałe wyrażenie logiczne składające się z nazw kolumn (zmiennych), wartości stałych, symboli funkcji i operacji, operatorów porównania, operatorów logicznych, operatorów specjalnych, nawiasów okrągłych liczby całkowite ze znakiem lub bez liczby rzeczywiste ze znakiem lub bez daty #rrrr-mm-dd# czas #gg-mm# stałe napisowe o postaci ciąg znaków Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 5
52 Wybrane funkcje Funkcja Date() Now() Year(data) Month(data) Right(arg,arg2) Left(arg,arg2) Mid(arg,arg2,arg3) Len(napis) Znaczenie zwraca bieżącą datę z kalendarza komputera. zwraca bieżącą datę i czas z kalendarza/zegara komputera wymaga argumentu typu Data i zwraca rok jako 4-cyfrową liczbę. wymaga argumentu typu Data i zwraca miesiąc jako liczbę z zakresu -2. zwraca prawą część napisu (arg), licząc tyle znaków od prawej na ile wskazuje arg2. zwraca lewą część napisu (arg), licząc tyle znaków od lewej na ile wskazuje arg2. zwraca podnapis napisu arg od znaku w pozycji arg2 i długości arg3. zwraca liczbę znaków w napisie (długość napisu). Avg(kol) średnia wartości z kolumny 'kol'. Count(kol) First i Last(kol) Min i Max(kol) Sum(kol) liczba wartości w kolumnie 'kol'. pierwsza i ostatnia wartość w kolumnie 'kol'. najmniejsza i największa wartość w kolumnie 'kol'. suma wartości z kolumny 'kol'. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 52
53 Operatory arytmetyczne Operator Znaczenie + Suma dwóch liczb. różnica miedzy dwiema liczbami i oznaczenie liczby ujemnej. * iloczyn dwóch liczb. / iloraz dwóch liczb. \ zaokrąglij do całkowitych dzielną i dzielnik, oblicz iloraz oraz z ilorazu odrzuć część ułamkową. Mod ^ oblicz resztę dzielenia dwóch liczb. podnieś do potęgi. Operatory porównania Operator < <= > >= = <> Operatory logiczne Operator And Or Eqv Not Xor Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 53
54 Operatory napisowe Operator & Znaczenie dla napis&napis2 wynikiem jest napis, po którym następuje bezpośrednio napis2. + jak dla &, ale gdy jeden lub oba napisy są NULL to wynik jest NULL. Operatory specjalne Operator Is Null lub Is Not Null Like "wzorzec" Between wartość And wartość2 In (wartość, wartość2,...) Znaczenie dla x Is Null zwraca wartość TRUE, gdy x jest nieokreśone. dla x Is Not Null zwraca wartość TRUE, gdy x jest okreśone. dla x like wzorzec zwraca TRUE, gdy x pasuje do wzorca. We wzorcu znak? reprezentuje dowolną pozycję znakową a * - reprezentuje dowolny ciąg znaków. dla x Between a And b zwraca TRUE a <= x <= b. dla x IN (wartość, wartość2,...) zwraca TRUE gdy x {wartość, wartość2,...}. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 54
55 Przykład Podaj dane miejscowości z województwa dolnośląskiego q({kod,nazwa,kodwoj}) = KodWoj=DL ( Miejscowości ({Kod,Nazwa,KodWoj}) ) Miejscowości q Kod Nazwa Wrocław KodWoj DL Wrocław DL 3 Wałbrzych DL Kod Nazwa KodWoj KodWoj=DL 2 Opole OP 3 Wałbrzych DL 4 Warszawa MZ 5 6 Katowice Kraków SL MP select Kod, Nazwa, KodWoj from Miejscowości where KodWoj = "DL"; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 55
56 q({... })= (KodMjc=2) and (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) select * from Firmy where (KodMjc = 2) and (Telefon IS NULL); q({... })= (KodMjc=2) or (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) select * from Firmy where (KodMjc = 2) or (Telefon IS NULL); q({... })= (KodMjc=2) or (KodMjc=3) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) select * from Firmy where (KodMjc = 2) or (KodMjc = 3); q({... })= (KodMjc=2) and (KodMjc=3) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon}))! select * from Firmy where (KodMjc = 2) and (KodMjc = 3); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 56
57 Złożenie operacji projekcji i selekcji (SELECT...FROM...WHERE) q(x) = X ( F ( r (R) ) Przykład Podaj nazwy firm z Opola, które nie mają określonego numeru telefonu q({nazwa})= (KodMjc=2) and (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) Firmy q Nazwa Audi Pafawag {Nazwa} ( (KodMjc=2) and (Telefon is NULL) Nr Nazwa Nasza Firma Abeja Audi Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Iase Energetyczna Dolmed Medyczna select Nazwa from Firmy where (KodMjc = 2) and (Telefon IS NULL); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 57
58 Porządkowanie wierszy w tabeli wynikowej (ORDER BY) SELECT [ ALL DISTINCT DISTINCTROW [TOP n [PERCENT]] { * nazwa_tabeli.* {[nazwa_tabeli.] nazwa_kolumny [AS alias]}[,...] } [FROM wyrażenie_tabelowe [,...]] [WHERE warunek ] [ORDER BY {nazwa_kolumny [ASC DESC]} [, ] ][;] ORDER BY ASC DESC - uporządkuj według - rosnąco - malejąco Przykład select KodMjc, Nazwa, Ulica from Firmy where (KodMjc = 2) or (KodMjc = 3) order by KodMjc asc, Nazwa asc; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 58
59 Wyrażenia po SELECT SELECT [ ALL DISTINCT DISTINCTROW [TOP n [PERCENT]] { * nazwa_tabeli.* {[nazwa_tabeli.] nazwa_kolumny [AS alias] wyrażenie [AS alias]}[,...] } [ INTO nazwa_nowej_tabeli ] [FROM wyrażenie_tabelowe [,...]] [WHERE warunek ] [GROUP BY nazwa_kolumny [, ]] [HAVING warunek ] [ORDER BY {nazwa_kolumny [ASC DESC]} [, ] ][;] Przykład select 2+2 as czwórka; select sin() as Sinus; select sin() + 5 as Sinus, 20 as Dwadzieścia; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 59
60 Agragowanie wartości w kolumnach (GROUP BY HAVING) SELECT [ ALL DISTINCT DISTINCTROW [TOP n [PERCENT]] { * nazwa_tabeli.* {[nazwa_tabeli.] nazwa_kolumny [AS alias] wyrażenie [AS alias]}[,...] } [ INTO nazwa_nowej_tabeli ] [FROM wyrażenie_tabelowe [,...]] [WHERE warunek ] [GROUP BY nazwa_kolumny [, ]] [HAVING warunek ] [ORDER BY {nazwa_kolumny [ASC DESC]} [, ] ][;] GROUP BY HAVING - grupuj według - mając spełnione Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 60
61 Przykład r A B select A, sum(b) as Suma from r group by A; select A, Count(B) as Liczność from r group by A; A Suma A Liczność Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 6
62 Przykład 2 r3 r A B C I a 2 I a 4 I b 8 I b 7 I b 3 I b 2 I c 4 I c 2 II a 5 II a II a 4 II a 7 II c 5 II c 3 II c 8 select A, B, sum(c) as [Razem C] from r3 group by A, B; A B Razem C I a 6 I b 20 I c 6 II a 7 II c 6 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 62
63 Przykład 3 r3 r A B C I a 2 I a 4 I b 8 I b 7 I b 3 I c 4 I c 2 I b 2 II c 5 II c 3 II c 8 II a 5 II a II a 4 II a 7 A B C I a 2 I a 4 II a 5 II a II a 4 II a 7 I b 8 I b 7 I b 3 I b 2 I c 4 I c 2 II c 5 II c 3 II c 8 select B, A, sum(c) as [Razem C] from r3 group by B, A; B A Razem C a I 6 a II 7 b I 20 c I 6 c II 6 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 63
64 Operacja równozłączenia Problem: chcemy uzyskać zestawienie firm z nazwami miejscowości. Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza Abeja Abejowska Audi Audiego 2 3 Pafawag Wagonowa 2 Miejscowości Kod Nazwa KodWoj Wrocław DL 2 Opole OP 3 Wałbrzych DL Wojewodztwa Kod Nazwa DL Dolnośląskie OP Opolskie 4 Iase Energetyczna Dolmed Dokumenty Medyczna PozycjeDokumentu Nr NrSprzerdawcy Np SmbTow CenaNetto Ilość Nr NrSprzerdawcy NrNabywcy Data / ,00 20 / / , / / ,00 50 / / , / / , / / , / / ,00 45 Towary 3/02 3/ ,50 7, Smb Nazwa Jm StawkaVat 3/ , Pasztet kg 7% 2/ , Mortadela kg 7% 2/ , Chipsy paczka 400g 7% 4/ , Kawa Jakobs paczka 00g 7% 005 Makrela kons. puszka 250g 7% Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 64
65 Firmy Nr Nazwa Nasza Firma Abeja Audi Pafawag Iase Ulica Nasza Abejowska Audiego Wagonowa Energetyczna KodMjc Telefon Miejscowości Kod Nazwa KodWoj Wrocław DL 2 Opole OP 3 Wałbrzych DL 5 Dolmed Medyczna Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 65
66 Definicja operacji równozłączenia Dane są: r(r) s(s) q(r S) tabela r o schemacie R, A R tabela s o schemacie S, B S tabela s o schemacie R S wynik złączenia Uwaga: R i S nie zawierają tych samych nazw (R S = Ø) q(r S) = r [ A=B ] s = { t : t[r] r, t[s] s i t[a] = t[b] } r R A s S B v v t v v Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 66
67 Przykład r s r [ B=C ] s A B C D A B C D a5 d a5 d a6 5 2 d2 a7 2 2 d2 a7 2 3 d3 a 2 2 d2 a8 4 a 2 r s s [ C=B ] r A B C D C D A B a5 d d a5 a6 5 2 d2 2 d2 a7 2 a7 2 3 d3 2 d2 a 2 a8 4 a 2 Uwaga: przemienność równozłączenia Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 67
68 Iloczyn kartezjański tabel Brak warunku złączenia r s r [ ] s A B C D A B C D a5 d a5 d a6 5 2 d2 a5 2 d2 3 d3 a5 3 d3 a6 5 d a5 2 d2 a6 5 3 d3 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 68
69 Przykład r A B a5 a6 5 a7 2 s C D d 2 d2 3 d3 q E d d3 d7 F f f2 f3 a8 4 a 2 r [ B=C ] s A B C D a5 d a7 2 2 d2 a 2 2 d2 q E d d3 d7 F f f2 f3 ( r [ B=C ] s ) [ D=E ] q A B C D E F a5 d d f Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 69
70 r A B a5 a6 5 a7 2 s C D d 2 d2 3 d3 q E d d3 d7 F f f2 f3 a8 4 a 2 r A B a5 a6 5 a7 2 a8 4 a 2 s [ D=E ] q C D E F d d f 3 d3 d3 f2 r [ B=C ] ( s [ D=E ] q ) A B C D E F a5 d d f Uwaga: operacja złączenia jest łączna Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 70
71 Firmy Nr Nazwa 0 Nasza Firma Abeja 2 Audi 3 Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Miejscowości Kod Nazwa KodWoj Wrocław DL 2 Opole OP 3 Wałbrzych DL 4 Iase Energetyczna Dolmed Medyczna Firmy [ KodMjc = Kod ] Miejscowości Zestawienie firm Nr Nazwa Ulica KodMjc Telefon Kod Nazwa (Mjc) KodWoj 0 Nasza Firma Nasza Wrocław DL Abeja Abejowska Wałbrzych DL 2 Audi Audiego 2 2 Opole OP 3 Pafawag Wagonowa 2 2 Opole OP 4 Iase Energetyczna Wałbrzych DL 5 Dolmed Medyczna Wrocław DL Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 7
72 Realizacja w SQL (SELECT...FROM...WHERE) SELECT [ ALL DISTINCT DISTINCTROW [TOP n [PERCENT]] { * nazwa_tabeli.* {[nazwa_tabeli.] nazwa_kolumny [AS alias]}[,...] } [ INTO nazwa_nowej_tabeli ] FROM wyrażenie_tabelowe [,...] [WHERE warunek ] [GROUP BY nazwa_kolumny [, ]] [HAVING warunek ] [ORDER BY {nazwa_kolumny [ASC DESC]} [, ] ][;] wyrażenie_tabelowe ::= nazwa_tabeli nazwa_kwerendy_wybierającej {nazwa_tabeli INNER JOIN nazwa_tabeli2 ON nazwa_tabeli.nazwa_kolumny operator_porównania nazwa_tabeli2.nazwa_kolumny2} Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 72
73 Przykłady r s r [ B=C ] s A B C D A B C D a5 a6 5 a7 2 a8 4 a 2 d 2 d2 3 d3 a5 d a7 2 2 d2 a 2 2 d2 select r.*, s.* from s inner join r on r.b=s.c; select r.a, r.b, s.c, s.d from s inner join r on r.b=s.c; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 73
74 r s r [ ] s A B C D A B C D a5 d a5 d a6 5 2 d2 a5 2 d2 3 d3 a5 3 d3 a6 5 d a5 2 d2 a6 5 3 d3 select r.*, s.* from r, s; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 74
75 Złożenie operacji projekcji, selekcji i równozłączenia q(x) = X ( F ( r [A=B] s ) r s {A,D} ( B=2 ( r [B=C] s ) A B C D A D a5 d a7 d2 a6 5 2 d2 a d2 a7 2 3 d3 a8 4 a 2 select r.a, s.d from r inner join s on r.b=s.c where r.b = 2; select r.a, s.d from r, s where r.b = 2 and r.b=s.c; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 75
76 Równozłączenie wielu tabel Kategorie Kasety Rewersy Wypożyczający Kk Nk T Kk T Wp Dt Wp Aw Kk Nk T Kk T Wp d Wp Aw Kk2 Nk2 T2 Kk2 T2 Wp d2 Wp2 Aw2 Kk3 Nk3 T3 Kk3 T3 Wp3 d3 Wp3 Aw3 T4 Kk3 T4 Wp3 d4 T5 Kk2 T5 Wp2 d5 Zadanie: znajdź Wp i Aw dla Nk = Nk3 select Wypożyczający.Wp, Aw from Wypożyczający inner join (Rewersy inner join (Kasety inner join Kategorie on Kasety.Kk=Kategorie.Kk) on Kasety.T=Rewersy.T) on Rewersy.Wp=Wypożyczający.Wp where Nk="Nk3"; Kk-kod kategorii, Nk-nazwa kategorii, T-tytuł, Wp-pesel, Dt-data, Aw-adres Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 76
77 Kategorie Kk Kk Kk2 Kk3 Nk Nk Nk2 Nk3 Kasety T T T2 T3 T4 T5 Kk Kk Kk2 Kk3 Kk3 Kk2 Zadanie: znajdź Wp i Aw dla Nk = Nk3 Pesele_Nk3 Kk-kod kategorii, Nk-nazwa kategorii, T-tytuł, Wp-pesel, Dt-data, Aw-adres Rewersy T Wp Dt T Wp d T3 Wp d2 T3 Wp3 d3 T4 Wp3 d4 T5 Wp2 d5 Wypożyczający Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 77 Wp Wp Wp2 Wp3 Wypożyczający_Nk3 select Wypożyczający.Wp, Aw from Wypożyczający inner join Pesele_Nk3 on Pesele_Nk3.Wp=Wypożyczający.Wp; Aw Aw Aw2 Aw3 Tytuły_Nk3 select Kasety.T from Kasety inner join Kategorie on Kasety.Kk=Kategorie.Kk where Nk="Nk3"; select Rewersy.Wp from Rewersy inner join Tytuły_Nk3 on Tytuły_Nk3.T=Rewersy.T;
78 Kategorie Kasety Rewersy Wypożyczający Kk Nk T Kk T Wp Dt Wp Aw Kk Nk T Kk T Wp d Wp Aw Kk2 Nk2 T2 Kk2 T2 Wp d2 Wp2 Aw2 Kk3 Nk3 T3 Kk3 T3 Wp3 d3 Wp3 Aw3 T4 Kk3 T4 Wp3 d4 T5 Kk2 T5 Wp2 d5 Zadanie: znajdź Wp i Aw dla Nk = Nk3 select Wypożyczający.Wp, Aw from Wypożyczający, Rewersy, Kasety, Kategorie where Nk="Nk3" and Kasety.Kk=Kategorie.Kk and Kasety.T=Rewersy.T and Rewersy.Wp=Wypożyczający.Wp; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 78
79 Zadania F( Nr, Nazwa ) T ( Smb, Nazwa ) n a na 2 n2 b nb 3 n3 c nc 4 n4 D (NrD, NrS, NrN,Data) P ( NrD, NrS, Np, Smb, Ilosc, Cena) 2 d a d 2 b d2 2 a d2 2 2 a d b c a c b c 0 5 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 79
80 Oblicz: ) {Data}(D) 2) NrS= and NrN=2(D), NrS= or NrN=2(D) 3) {NrD,NrS}( Smb=a(P)) ) D [NrS=Nr] F, D [NrN=Nr] F, D [Nrd=Nrd,NrS=NrS] P Napisz wyrażenie algebraiczne dla żądań: ) Podaj nazwy firm, które coś kupiły w dniu 'd'. 2) Podaj nazwy towarów kupionych przez firmę o nazwie 'n3'. 3) Podaj dni, w których kupiono towar o nazwie 'na'. 4) Podaj nazwy towarów sprzedanych po cenie > 2. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 80
81 3. Operacje teoriomnogościowe Operacje na tabelach Operacje relacyjne Projekcja Operacje teoriomnogościowe Suma Selekcja Iloczyn Złączenie Dzielenie Różnica niesymetryczna Dopełnienie Przemianowanie Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 8
82 Suma tabel Dane są tabele o jednakowych schematach: r(r) s(r) r(r) s(r) = q(r) = { t : t r lub t s } Przykład r A B s A B q A B a2 b a5 b2 a2 b a5 b2 a b a5 b2 a b a6 b4 a b a6 b4 a b2 a6 b4 a3 b2 a3 b2 a b2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 82
83 Operator UNION [TABLE] zapytanie_ UNION [ALL] [TABLE] zapytanie_2 [UNION [ALL] [TABLE] zapytanie_n [ ]] gdzie zapytanie_... n - zdanie SELECT albo nazwa zapytania zapamiętanego albo nazwa zapamiętanej tabeli poprzedzona słowem TABLE. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 83
84 rab r2ab select * from rab union all select * from r2ab; select * from rab union select * from r2ab; table rab union all table r2ab; {z duplikatami} {bez duplikatów} table rab union table r2ab; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 84
85 rab r2ab r3ab select * from rab union all select * from r2ab union select * from r3ab; table rab union table r2ab union all table r3ab Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 85
86 NumeryKlientów select NrNabywcy as Nr from Dokumenty where NrNabywcy<>0 union select NrSprzedawcy as Nr from Dokumenty where NrSprzedawcy<>0; select Firmy.Nr, Firmy.Nazwa from NumeryKlientów inner join Firmy on NumeryKlientów.Nr=Firmy.Nr; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 86
87 Wstawmy zapytanie pierwsze do drugiego w miejsce wywołania tabeli NumeryKlientów: select Firmy.Nr, Firmy.Nazwa from (select NrNabywcy as Nr from Dokumenty where NrNabywcy<>0 union select NrSprzedawcy as Nr from Dokumenty where NrSprzedawcy<>0) as NumeryKlientów inner join Firmy on NumeryKlientów.Nr=Firmy.Nr; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 87
88 Kwerenda dołączająca INSERT INTO nazwa_tabeli [(nazwa_kolumny [,...])] SELECT [nazwa_tabeli.]nazwa_kolumny [,...] FROM wyrażenie_tabelowe [WHERE warunek ][;] Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 88
89 Realizacja operacji sumy tabel jako kwerendy dołączającej wariant a) wariant b) r s r s kwerenda tworząca tabelę kwerenda dołączająca q r kwerenda dołączająca q Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 89
90 wariant a) r s dołącz s do r : insert into r(a,b) select s.a, s.b from s; kwerenda dołączająca r usuń duplikaty z r : select distinct r.* from r; kwerenda usuwająca duplikaty Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 90
91 wariant b) r s uwtórz q jako kopię r: select r.a, r.b into q(a,b) from r; kwerenda tworząca tabelę q dołącz s do q: insert into q(a,b) select s.a, s.b from s; q kwerenda dołączająca usuń duplikaty z q select distinct q.* from q; kwerenda usuwająca duplikaty Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 9
92 Iloczyn tabel Dane są tabele o jednakowych schematach: r(r) s(r) Przykład r(r) s(r) = q(r) = { t : t r i t s } r A B s A B a2 b a5 b2 a5 b2 a b a b a6 b4 a6 b4 a b2 q A a5 a a6 B b2 b b4 a3 b2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 92
93 Realizacja za pomocą kwerendy wybierającej q(r) := r(r) s(r) {r.*} (r [ r.a =s.a,..., r.a n =s.a n ] s) r A B s A B q A B a2 b a5 b2 a5 b2 {r.a,r.b} (r [ r.a = s.a, r.b = s.b ] s) a5 b2 a b a b a b a6 b4 a6 b4 a6 b4 a b2 a3 b2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 93
94 Realizacja operacji iloczynu tabel w SQL wariant a) select r.* from r inner join s on (r.a=s.a) and r.b=s.b); r s wariant b) select * into q from r where exists (select a,b from s where r.a=s.a and r.b=s.b) select * into q from s where exists (select a,b from r where r.a=s.a and r.b=s.b) kwerenda tworząca tabelę kwerenda wybierająca exists Interpretacja: wstaw do q wszystkie te wiersze z r, dla których istnieją w s wiersze identyczne z nimi q Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 94
95 Nie realizowane w MS ACCESS: select r.* from r intersect select s.* from s; table r intersect table s; select r.* from r intersect all select s.* from s; table r intersect all table s; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 95
96 Różnica niesymetryczna tabel Dane są tabele o jednakowych schematach: r(r) s(r) r(r) s(r) = q(r) = { t : t r i t s } Przykład r A B s A B a2 b a5 b2 a5 b2 a b a b a6 b4 q A a2 a3 B b b2 a6 b4 a b2 a3 b2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 96
97 Realizacja operacji różnicy tabel w MS ACCESS wariant a) wariant b) wariant c) r s r s r s kwerenda usuwająca kwerenda tworząca tabelę kwerenda tworząca tabelę r q kwerenda wybierająca kwerenda usuwająca q q Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 97
98 wariant a) r s z r usuń wiersze wspólne z s: delete distinctrow r.* from r inner join s on (r.a=s.a) and ( r.b=s.b); kwerenda usuwająca r Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 98
99 wariant b) r s uwtórz q jako kopię r: select r.a, r.b into q(a,b) from r; kwerenda tworząca tabelę q z q usuń wiersze wspólne z s: delete distinctrow q.* from q inner join s on (q.a=s.a) and ( q.b=s.b); kwerenda usuwająca q Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 99
100 wariant c) r s select * into q from r where not exists (select a,b from s where r.a=s.a and r.b=s.b) kwerenda tworząca tabelę kwerenda wybierająca not exists Interpretacja: wstaw do q wszystkie te wiersze z r, dla których NIE istnieją w s wiersze identyczne z nimi q Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 00
101 Nie realizowane w MS ACCESS: select r.* from r except select s.* from s; select r.* from r except all select s.* from s; table r except table s; table r except all table s; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 0
102 Różnica symetryczna tabel Dane są tabele o jednakowych schematach: r(r) s(r) Przykład q(r) = { t : (t r lub t s) i t s r } r A B s A B q A B a2 b a5 b2 a2 b a5 b2 a b a3 b2 a b a6 b4 a b2 a6 b4 a b2 a3 b2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 02
103 r s (r - s) (s - r) select * from r where not exists (select a,b from s where r.a=s.a and r.b=s.b) union select * from s where not exists (select a,b from r where r.a=s.a and r.b=s.b) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 03
104 Operacje teoriomnogościowe dopełnienie Dana jest tabela r(r), w której R={A,A 2,...,A n } Każdej nazwie A,A 2,...,A n przyporządkowano zbiór dopuszczalnych wartości D,D 2,...,D n dop(r(r)) = D D 2... D n r(r) Przykła d D D 2 A A 2 R={A,A 2 } a D = {,2} D 2 = {a,b} b 2 a r A A 2 2 a b dop(r) A A 2 a 2 b 2 b Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 04
105 Przykład Obiekt Nazwa Adres Grupa Numer Liczność Zwiedziła Nazwa Numer Muzeum Muzealna 0 Muzeum Park zdrojowy Parkowa 2 50 Park zdrojowy Zamek Zapora Zamkowa Wodna 3 55 Zamek Zapora 2 3 Podać, która grupa i który obiekt ma jeszcze zwiedzić, jeżeli już odbyły się wizyty podane w tabeli Zwiedziła {Nazwa} (Obiekt) {Numer} (Grupa) Zwiedziła select Obiekt.Nazwa, Grupa.Numer from Obiekt, Grupa except select Zwiedziala.Nazwa, Zwiedzila.Numer from Zwiedzila; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 05
106 Grupa Obiekt select from Numer as [Numer grupy], Nazwa as [Nazwa obiektu] into Plan Grupa, Obiekt Plan Zwiedziła delete distinctrow Plan.* from Zwiedziła inner join Plan on (Plan.[Nazwa obiektu]=zwiedziła.[nazwa obiektu]) and (Plan.[Numer grupy]=zwiedziła.[numer grupy]); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 06
107 Grupa Obiekt select Numer as [Numer grupy], Nazwa as [Nazwa obiektu] into Plan from Grupa, Obiekt Plan Zwiedziła SELECT * FROM Plan WHERE not exists (select Zwiedziła.[Nazwa obiektu], Zwiedziła.[Numer grupy] from Zwiedziła where (Plan.[Nazwa obiektu] =Zwiedziła.[Nazwa obiektu]) and (Plan.[Numer grupy]=zwiedziła.[numer grupy])); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 07
108 Grupa Obiekt Zwiedziła SELECT * FROM (select Numer as [Numer grupy], Nazwa as [Nazwa obiektu] from Grupa, Obiekt) as Plan WHERE not exists (select Zwiedziła.[Nazwa obiektu], Zwiedziła.[Numer grupy] from Zwiedziła where (Plan.[Nazwa obiektu]=zwiedziła.[nazwa obiektu]) and (Plan.[Numer grupy]=zwiedziła.[numer grupy])); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 08
109 Przemianowanie atrybutów Przykład Nr /02 NrSprzerdawcy 0 Dokumenty NrNabywcy Data / / / / / {NrSprzedawcy} (Dokumenty) {NrNabywcy} (Dokumenty) ) ta nazwa powinna być wspólna select NrNabywcy as Nr from Dokumenty where NrNabywcy<>0 union select NrSprzedawcy as Nr from Dokumenty where NrSprzedawcy<>0; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 09
110 Przykład 2 SELECT DISTINCT Osoba.Imię AS Osoba, Osoba_.Imię AS Rodzic, Osoba_2.Imię AS Dziadek, Osoba_2.ImięRodzica AS Pradziadek FROM (Osoba INNER JOIN Osoba AS Osoba_ ON Osoba.ImięRodzica = Osoba_.Imię) INNER JOIN Osoba AS Osoba_2 ON Osoba_.ImięRodzica = Osoba_2.Imię; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 0
111 Przykłady Znaleźć towary, które były przez Naszą firmę sprzedawane klientom z Wrocławia i nie były sprzedawane klientom z województwa dolnośląskiego (spoza Wrocławia). Towary sprzedane we Wrocławiu: select distinct PozycjeDokumentu.SmbTow from (((PozycjeDokumentu inner join Dokumenty on PozycjeDokumentu.NrFaktury = Dokumenty.NrFaktury and PozycjeDokumentu.NrSprzedawcy = Dokumenty.NrSprzedawcy) inner join Firmy on Firmy.Nr=Dokumenty.NrNabywcy) inner join Miejscowości on Firmy.KodMjc=Miejscowości.Kod) where Dokumenty.NrSprzedawcy = 0 and Miejscowości.Nazwa="Wrocław" Towary sprzedane na Dolnym Śląsku, ale nie we Wrocławiu: select distinct PozycjeDokumentu.SmbTow from (((PozycjeDokumentu inner join Dokumenty on PozycjeDokumentu.NrFaktury = Dokumenty.NrFaktury and PozycjeDokumentu.NrSprzedawcy = Dokumenty.NrSprzedawcy) inner join Firmy on Firmy.Nr=Dokumenty.NrNabywcy) inner join Miejscowości on Firmy.KodMjc=Miejscowości.Kod) where Dokumenty.NrSprzedawcy = 0 and Miejscowości.Nazwa<>"Wrocław" and Miejscowości.KodWoj="DL" Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL
112 select TTT.* from (select distinct PozycjeDokumentu.SmbTow from (((PozycjeDokumentu inner join Dokumenty on PozycjeDokumentu.NrFaktury = Dokumenty.NrFaktury and PozycjeDokumentu.NrSprzedawcy = Dokumenty.NrSprzedawcy) inner join Firmy on Firmy.Nr=Dokumenty.NrNabywcy) inner join Miejscowości on Firmy.KodMjc=Miejscowości.Kod) where Dokumenty.NrSprzedawcy = 0 and Miejscowości.Nazwa="Wrocław") as TTT where not exists (select distinct PozycjeDokumentu.SmbTow from (((PozycjeDokumentu inner join Dokumenty on PozycjeDokumentu.NrFaktury = Dokumenty.NrFaktury and PozycjeDokumentu.NrSprzedawcy = Dokumenty.NrSprzedawcy) inner join Firmy on Firmy.Nr=Dokumenty.NrNabywcy) inner join Miejscowości on Firmy.KodMjc=Miejscowości.Kod) where Dokumenty.NrSprzedawcy = 0 and Miejscowości.Nazwa<>"Wrocław" and Miejscowości.KodWoj="DL" and TTT.SmbTow= PozycjeDokumentu.SmbTow); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 2
113 Dopełnienie (różnica) a selekcja z zaprzeczeniem Przypadek wiele do jeden (n:) Przypadek wiele do wielu (n:m) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 3
114 Przypadek wiele do jeden (n:) Miejscowości Województwa WP Miejscowości KodWoj= DL (Miejscowości) KodWoj<> DL (Miejscowości) DL SL PM Znajdź miejscowości z województw innych niż DL {,2,3,7,8,9,0,,2} odpowiedź prawidłowa {,2,3,7,8,9,0,,2} odpowiedź prawidłowa Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 4
115 Przypadek wiele do wielu (n:m) Firmy Towary Śledzie Zupa Pasztet Chipsy Znajdź firmy które nie kupiły Pasztet Firmy Nazwa= Pasztet (Kupowały) Nazwa<> Pasztet (Kupowały) {,2,3,4,5,6, 0, 2} odpowiedź prawidłowa {,2,3,4,5,6,8,9,0,,2} odpowiedź błędna Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 5
116 Przypadek wiele do wielu (n:m) Firmy Towary Śledzie Zupa Pasztet Chipsy Nazwa= Pasztet (Kupowały) Nazwa= Zupa (Kupowały) {7,8,9,} {2,4,5,6,8} = {7,9,} odpowiedź prawidłowa Nazwa= Pasztet and Nazwa<> Zupa (Kupowały) {7, 8, 9, } odpowiedź błędna Znajdź firmy, które kupiły Pasztet, ale nigdy nie kupiły Zupy Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 6
117 4. Operacja dzielenia Dane są tabele: r(r), która będzie dzielną, s(s), która będzie dzielnikiem. Utworzymy tabelę: q(t), która będzie ilorazem. przy czym T = R S q(t) = r(r) s(s) = { t: dla każdej t s s, istnieje t r r taka, że t r [R-S]= t i t r [S] = t s } Nieformalnie: operacja dzielenia znajduje te wiersze dzielnej, które łączą się z każdym wierszem dzielnika Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 7
118 Przykład Obiekt Nazwa Adres Grupa Numer Liczność Zwiedziła Nazwa Muzeum Numer Muzeum Muzealna 0 Park zdrojowy Park zdrojowy Parkowa 2 50 Muzeum Muzeum 3 Podać, które grupy zwiedziły już każdy obiekt: Zwiedziła Obiekt Zwiedziła Nazwa Muzeum Park zdrojowy Muzeum Numer 2 Obiekt Nazwa Muzeum Park zdrojowy Adres Muzealna Parkowa Muzeum 3 {Nazwa,Numer} {Nazwa, Adres} Grupy Numer Numery grup, które w tabeli Zwiedziła łączą się z każdym obiektem Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 8
119 Przykład Obiekt Nazwa Adres Grupa Numer Liczność Zwiedziła Nazwa Muzeum Numer Muzeum Muzealna 0 Park zdrojowy Park zdrojowy Parkowa 2 50 Muzeum Muzeum 3 Podać obiekty zwiedzone już przez każdą grupę: Zwiedziła Grupa Zwiedziła Nazwa Muzeum Park zdrojowy Muzeum Muzeum Numer 2 3 Grupa Numer 2 3 Liczność {Nazwa,Numer} {Numer, Liczność} Obiekty Nazwa Muzeum Nazwy obiektów, które w tabeli Zwiedziła łączą się z każdą grupą Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 9
120 Realizacja operacji dzielenia za pomocą kwerend graficznych q = r s R-S ( r ) R-S (( R-S ( r ) s) r) r s R-S ( r ) rob ( rob s ) kwerenda tworząca tabelę rob2 kwerenda tworząca tabelę rob rob2 r rob2 r kwerenda usuwająca rob2 rob R-S (rob2) rob kwerenda usuwająca Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 20
121 SELECT symbol INTO [Tab Dzielnik] FROM Towary WHERE (Symbol='007') OR (Symbol = '009') OR (Symbol = '059'); SELECT DISTINCT NrNabywcy, SmbTow INTO [Tab Dzielna] FROM Dokumenty INNER JOIN (PozycjeDokumentu INNER JOIN [Kw Dzielnik] ON ([Tab Dzielnik].Symbol=PozycjeDokumentu.SmbTow)) ON (PozycjeDokumentu.NrSprzedawcy = Dokumenty.Nrsprzedawcy) AND (Dokumenty.NrFaktury=PozycjeDokumentu.NrFaktury); Tab Dzielnik Tab Dzielna SELECT DISTINCT NrNabywcy, Symbol INTO [Tab Iloczyn] FROM [Tab Dzielnik],[Tab Dzielna]; Tab Iloczyn DELETE DISTINCTROW [Tab Iloczyn].* FROM [Tab Dzielna] INNER JOIN [Tab Iloczyn] ON ([Tab Dzielna].NrNabywcy=[Tab Iloczyn].NrNabywcy) and ([Tab Dzielna].SmbTow=[Tab Iloczyn].Symbol); Tab Iloczyn DELETE DISTINCTROW [Tab Dzielna].* FROM [Tab Dzielna] INNER JOIN [Tab Iloczyn] ON ([Tab Dzielna].NrNabywcy=[Tab Iloczyn].NrNabywcy); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 2
122 Realizacja operacji dzielenia w SQL select Nazwa from Zwiedziła as r where not exists (select * from Grupa where not exists ( select * from Zwiedziła as r2 where (r.nazwa=r2.nazwa) and (r2.numer=grupa.numer ))); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 22
123 select NrNabywcy from r as r where not exists (select * from s where not exists ( select * from r as r2 where (r.nrnabywcy=r2.nrnabywcy) and (r2.smbtow=s.smbtow ))); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 23
124 5. Operacja teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ {>, <, >=, <=, =, <> } - operator Teta q(r S) = r [ AΘB ] s = { t : t[r] r, t[s] s i t[a] Θ t[b] } r R A s S B v v2 t v v2 v Θ v2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 24
125 Przykład r A B r2 C D a2 a5 2 a5 2 a a a6 4 a6 4 a 2 a 2 r [ B > D ] r2 = A B C D a5 2 a a6 4 a5 2 a6 4 a a6 4 a 2 a 2 a Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 25
126 Przykład Grupa Nazwa Pielgrzymka Studenci Emeryci Szkoła Urząd Miejski Pafawag Liczność Autokar Numer rej WRU 3492 DW 6582 WCX 238 WWX 6745 WRA 22 DW Pojemność Podać autokary, które mogą obsłużyc poszczególne grupy turystyczne Grupa [ Liczność <= Pojemność ] Autokar select Autokar.Numer rej, Grupa.Nazwa from Autokar, Grupa where Autokar.Pojemność >= Grupa.Liczność; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 26
127 Znaleźć firmy, które kupiły od Naszej Firmy jakikolwiek pasztet przed firmą o numerze 698. a. Wariant z dwiema kwerendami Odniesienie SELECT TOP Data FROM (Dokumenty INNER JOIN PozycjeDokumentu ON (Dokumenty.NrSprzedawcy=PozycjeDokumentu.NrSprzedawcy) AND (Dokumenty.NrFaktury=PozycjeDokumentu.NrFaktury)) INNER JOIN Towary ON PozycjeDokumentu.SmbTow=Towary.Symbol WHERE (Dokumenty.NrNabywcy=698) and Towary.Nazwa like "*Pasztet*" ORDER BY Data; SELECT DISTINCT Firmy.Nr, Firmy.Nazwa FROM Odniesienie, (Firmy INNER JOIN Dokumenty ON Firmy.Nr = Dokumenty.NrNabywcy) INNER JOIN (Towary INNER JOIN PozycjeDokumentu ON Towary.Symbol = PozycjeDokumentu.SmbTow) ON (Dokumenty.NrSprzedawcy = PozycjeDokumentu.NrSprzedawcy) AND (Dokumenty.NrFaktury = PozycjeDokumentu.NrFaktury) WHERE (((Dokumenty.NrSprzedawcy)=0) AND ((Towary.Nazwa) Like "*Pasztet*") AND ((Dokumenty.[Data])<[Odniesienie].[Data])); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 27
128 b. Wariant z jedną kwerendą (podzapytaniem) SELECT distinct Firmy.Nr, Firmy.Nazwa FROM ((Dokumenty INNER JOIN PozycjeDokumentu ON (Dokumenty.NrSprzedawcy=PozycjeDokumentu.NrSprzedawcy) AND (Dokumenty.NrFaktury=PozycjeDokumentu.NrFaktury)) INNER JOIN Towary ON PozycjeDokumentu.SmbTow=Towary.Symbol) inner join Firmy on Dokumenty.NrNabywcy=Firmy.Nr WHERE Dokumenty.NrSprzedawcy=0 and Towary.Nazwa like "*Pasztet*" and Data <(SELECT TOP Data FROM (Dokumenty INNER JOIN PozycjeDokumentu ON (Dokumenty.NrSprzedawcy=PozycjeDokumentu.NrSprzedawcy) AND (Dokumenty.NrFaktury=PozycjeDokumentu.NrFaktury)) INNER JOIN Towary ON PozycjeDokumentu.SmbTow=Towary.Symbol WHERE (Dokumenty.NrNabywcy=698) and Towary.Nazwa like "*Pasztet*" ORDER BY Data) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 28
129 c. Wariant z dwiema tabelami SELECT TOP Data INTO Odniesienie FROM (Dokumenty INNER JOIN PozycjeDokumentu ON (Dokumenty.NrSprzedawcy=PozycjeDokumentu.NrSprzedawcy) AND (Dokumenty.NrFaktury=PozycjeDokumentu.NrFaktury)) INNER JOIN Towary ON PozycjeDokumentu.SmbTow=Towary.Symbol WHERE (Dokumenty.NrNabywcy=698) and Towary.Nazwa like "*Pasztet*" ORDER BY Data; SELECT distinct Firmy.Nr, Firmy.Nazwa, Data INTO Wszystkie FROM ((Dokumenty INNER JOIN PozycjeDokumentu ON (Dokumenty.NrSprzedawcy=PozycjeDokumentu.NrSprzedawcy) AND (Dokumenty.NrFaktury=PozycjeDokumentu.NrFaktury)) INNER JOIN Towary ON PozycjeDokumentu.SmbTow=Towary.Symbol) inner join Firmy on Dokumenty.NrNabywcy=Firmy.Nr WHERE Dokumenty.NrSprzedawcy=0 and Towary.Nazwa like "*Pasztet*" SELECT distinct Wszystkie.Nr, Wszystkie.Nazwa FROM Odniesienie, Wszystkie WHERE Wszystkie.Data < Odniesienie.Data Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 29
130 Znaleźć firmy, które kupiły od Naszej Firmy wartościowo więcej niż firma o numerze X zadanym parametrem (seperacja obliczenia sumy). Odniesienie SELECT sum(ilość*cenanetto) AS Obrót FROM Dokumenty INNER JOIN PozycjeDokumentu ON (Dokumenty.NrFaktury=PozycjeDokumentu.NrFaktury) AND (Dokumenty.NrSprzedawcy=PozycjeDokumentu.NrSprzedawcy) WHERE Dokumenty.NrNabywcy=[Podaj numer firmy odniesienia]; Wszystkie SELECT Firmy.Nr, Firmy.Nazwa, sum(ilość*cenanetto) AS Obrót FROM (Firmy INNER JOIN Dokumenty ON Firmy.Nr=Dokumenty.NrNabywcy) INNER JOIN PozycjeDokumentu ON (Dokumenty.NrSprzedawcy=PozycjeDokumentu.NrSprzedawcy) AND (Dokumenty.NrFaktury=PozycjeDokumentu.NrFaktury) WHERE Dokumenty.NrSprzedawcy=0 GROUP BY Firmy.Nr, Firmy.Nazwa; Wynik SELECT Wszystkie.Nr, Wszystkie.Nazwa, Wszystkie.Obrót FROM Odniesienie, Wszystkie WHERE (((Wszystkie.Obrót)>[Odniesienie].[Obrót])); Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 30
131 Znaleźć firmy, których sumaryczna kwota zakupów w Naszej Firmie w sierpniu 992r. była większa niż w lipcu 992. Lipiec SELECT Firmy.Nr, Firmy.Nazwa, Sum(Ilość*CenaNetto) AS Obrót FROM (Firmy INNER JOIN Dokumenty ON Firmy.Nr = Dokumenty.NrNabywcy) INNER JOIN PozycjeDokumentu ON (Dokumenty.NrSprzedawcy = PozycjeDokumentu.NrSprzedawcy) AND (Dokumenty.NrFaktury = PozycjeDokumentu.NrFaktury) WHERE Dokumenty.NrSprzedawcy=0 AND Data Like "992-07*" GROUP BY Firmy.Nr, Firmy.Nazwa; Sierpień SELECT Firmy.Nr, Firmy.Nazwa, sum(ilość*cenanetto) AS Obrót FROM (Firmy INNER JOIN Dokumenty ON Firmy.Nr=Dokumenty.NrNabywcy) INNER JOIN PozycjeDokumentu ON (Dokumenty.NrFaktury = PozycjeDokumentu.NrFaktury) AND (Dokumenty.NrSprzedawcy =PozycjeDokumentu.NrSprzedawcy) WHERE Dokumenty.NrSprzedawcy=0 and Data Like "992-08*" GROUP BY Firmy.Nr, Firmy.Nazwa; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 3
132 Nabywcy SELECT DISTINCT FIRMY.Nr, FIRMY.Nazwa FROM FIRMY INNER JOIN DOKUMENTY ON FIRMY.Nr = DOKUMENTY.NrNabywcy WHERE NrSprzedawcy=0; ObrotyLipca SELECT Nabywcy.Nr, Nabywcy.Nazwa, NZ(Lipiec.Obrót) AS Obroty FROM Nabywcy LEFT JOIN Lipiec ON (Nabywcy.Nazwa = Lipiec.Nazwa) AND (Nabywcy.Nr = Lipiec.Nr); ObrotySierpnia SELECT Nabywcy.Nr, Nabywcy.Nazwa, Nz(Sierpień.Obrót) AS Obroty FROM Nabywcy LEFT JOIN Sierpień ON (Nabywcy.Nr = Sierpień.Nr) AND (Nabywcy.Nazwa = Sierpień.Nazwa); Wynik SELECT ObrotyLipca.Nr, ObrotyLipca.Nazwa, ObrotyLipca.Obroty, [ObrotySierpnia].[Obroty] FROM ObrotyLipca INNER JOIN ObrotySierpnia ON (ObrotyLipca.Nr = ObrotySierpnia.Nr) AND (ObrotyLipca.Nazwa = ObrotySierpnia.Nazwa) WHERE ObrotyLipca.Obroty<[ObrotySierpnia].[Obroty]; Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 32
133 PROJEKTOWANIE TABEL Anomalie aktualizacji Dodaj towar : < 004, Mentos, 300 > Dodaj sklep : <2, Marketowa 23> Usuń towar : <003> Usuń sklep : <3> Usuń sprzedaż : <3,003,2003--*> Zmień adres sklepu : <3, Supermarketowa 3> Zmień stan towaru w magazynie : <002,220> Klucz = {NumerSklepu, SymbolTowaru, Data} Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 33
134 Anomalie aktualizacji: - niemożność wykonania operacji aktualizacji bazy danych zapewniającej utrzymanie bazy danych w stanie aktualnym; - dopuszczanie do sprzecznych aktualizacji danych, powielonych (zduplikowanych) w tabelach. Nadmiar: - nadmiar danych - wielokrotne zapisanie tych samych danych w różnych wierszach tej samej tabeli, - nadmiar czynności - wielokrotne wykonywanie tej samej czynności przy aktualizacji tabeli bazy danych. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 34
135 Sklep {NumerSklepu,AdresSklepu} Tabela Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 35
136 Towar {SymbolTowaru,NazwaTowaru,StanMagaz} Tabela) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 36
137 SprzedażTowaruWSklepie {NumerSklepu, SymbolTowaru,Data,IlośćSprzedana} Tabela) Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 37
138 Klucz={NumerSklepu} Klucz={SymbolTowaru} Klucz={NumerSklepu,SymbolTowaru,Data} Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 38
139 Dodaj towar : < 004, Mentos, 300 > Dodaj sklep : <2, Marketowa 23> Usuń towar : <003> Usuń sklep : <3> Usun sprzedaż : <3,003,2003--*> Zmień adres sklepu : <3, Supermarketowa 3> Zmień stan towaru w magazynie : <002,220> Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 39
140 Rozkład (dekompozycja) tabeli Dane są: - tabela r(r) - podzbiory schematu R, R2,...,Rp takie, że R R2... Rp = R Rozkładem (dekompozycją) tabeli r(r) na R, R2,...,Rp nazywamy zestaw: Przykład R (r), R2 (r),..., Rp (r) r R (r) = q A B C a b c A B C D a2 b3 c2 a b c d a3 b2 c a2 b3 c2 d2 a4 b c3 R ={A,B,C) i a3 b2 c d R2 ={C,D} R2 (r) = q2 C D a4 b c3 d3 c d c2 d2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 40 c3 d3
141 Operacja złączenia naturalnego Dane są: r(r) tabela r o schemacie R, s(s) tabela s o schemacie S, R i S nie muszą być rozłączne q(r S) = r s = { t : t[r] r, t[s] s } Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 4
142 Przykład r A B r2 B C a2 b a5 c2 a5 b2 a c a b a6 c4 a6 b5 a c2 a b2 r r2 = A B C a2 b c a2 b c2 a b c a b2 c2 a6 b5 c2 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 42
143 Przykład ( iloczyn kartezjański!!! ) r A B r2 C D a2 b c5 d2 a5 b2 c d a b r r2 = A B C D a2 b c5 d2 a2 b c d a5 b2 c5 d2 a5 b2 c d a b c5 d2 a b c d Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 43
144 Rozkład tabel bez straty danych Rozkład tabeli r(r) na R, R2,...,Rp nazywamy rozkładem bez straty danych jeżeli: R (r) R2 (r)... Rp (r) = r(r) Przykład r A B C D a b c d a2 b3 c2 d2 a3 b2 c d a4 b c3 d3 R = {A,B,C) i R2 = {C,D} R (r) = q R2 (r) = q2 A B C a b c a2 b3 c2 a3 b2 c a4 b c3 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 44 C c c2 c3 D d d2 d3
145 Przykład 2 r A B C D a b c d a2 b3 c2 d2 a3 b2 c d a4 b c3 d3 R = {A,B) i R2 = {C,D} R (r) = q A a a2 a3 a4 B b b3 b2 b R2 (r) = q2 C c D d c2 d2 R (r) R2 (r)? r(r) c3 d3 Przykład 3 R={A,C) i R2={B,C,D} Przykład 4 R={A,B) i R2={A,C,D} Przykład 5 R={A,B,C,D) i R2={D} Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 45
146 Przykład 6 tab( NrSklepu, AdresSklepu, KodTowaru, NazwaTowaru, Sprzedaż ) klucz={nrsklepu, KodTowaru} a) R={NrSklepu, AdresSklepu}, R2={NrSklepu,KodTowaru, NazwaTowaru, Sprzedaż} b) R={KodTowaru, NazwaTowaru}, R2={NrSklepu,AdresSklepu,KodTowaru, Sprzedaż} c) R={NrSklepu, KodTowaru, AdresSklepu}, R2={NrSklepu, KodTowaru, NazwaTowaru} R3={NrSklepu, KodTowaru, Sprzedaż} d) R={NrSklepu, AdresSklepu}, R2={NrSklepu, NazwaTowaru} R3={NrSklepu, Sprzedaż} R4={KodTowaru,Sprzedaż} Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 46
147 Zależności funkcyjne między danymi Dane są: - tabela r(r), R={A,A 2,...,A n } - zbiory X, Y R W tabeli r jest spełniona zależność funkcyjna X Y wtedy i tylko wtedy, gdy dla każdej wartości x X (r) liczba wierszy w X Y (r) jest równa Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 47
148 Przykład r A B C D a b c d a2 b3 c2 d2 a3 b2 c d a4 b c3 d3 Czy {C} {D}? {C,D} (r) = q C c c2 c3 D d d2 d3 Czy {C,D} {A,B}? R (r) = q A B C D a b c d a2 b3 c2 d2 a3 b2 c d a4 b c3 d3 Czy {B,C} {C,D}? {B,C,D} (r) = q B C D b c d b3 c2 d2 b2 c d b c3 d3 Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 48
149 Przykład 2 tab( NrSklepu, AdresSklepu, KodTowaru, NazwaTowaru, Sprzedaż ) klucz={nrsklepu,kodtowaru} a) czy {NrSklepu, KodTowaru} {AdresSklepu, NazwaTowaru, Sprzedaż}? b) czy {NrSklepu, KodTowaru} {NrSklepu, KodTowaru}? c) czy {NrSklepu} {AdresSklepu}? d) czy {KodTowaru} {NazwaTowaru}? e) czy {KodTowaru} {Sprzedaż}? Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 49
150 NumerSklepu AdresSklepu SymbolTowaru NazwaTowaru,StanMagaz NumerSklepu,SymbolTowaru,Data IlośćSprzedana Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 50
151 NumerSklepu,SymbolTowaru,Data AdresSklepu NumerSklepu,SymbolTowaru,Data NazwaTowaru NumerSklepu,SymbolTowaru,Data StanMagaz Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL 5
- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego
Dr inż. Ludmiła Rekuć p. 58 B4 www.ioz.pwr.wroc.pl, ludmila.rekuc@pwr.wroc.pl Dr inż. Witold Rekuć p. 57 B4 www.ioz.pwr.wroc.pl, witold.rekuc@pwr.wroc.pl - Przedmiot kończy się egzaminem - Egzamin ma formę
Bardziej szczegółowoOperacja Teta-złączenia. v1 v1 Θ v2
Operacja Teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ {>, =,
Bardziej szczegółowoDr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki
Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki Pokój: 517/B4 E-mail: witold.rekuc@pwr.edu.pl Telefon: 71-320-23-35 www: kbo.pwr.edu.pl/pracownik/rekuc dr inż. Witold
Bardziej szczegółowoDr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki
Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki Pokój: 57/B4 E-mail: witold.rekuc@pwr.edu.pl Telefon: 7-0--5 www: kbo.pwr.edu.pl/pracownik/rekuc dr inż. Witold Rekuć
Bardziej szczegółowo-Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium
Dr inż. Ludmiła Rekuć p. 58 B4 www.ioz.pwr.wroc.pl, ludmila.rekuc@pwr.wroc.pl Dr inż. Witold Rekuć p. 57 B4 www.ioz.pwr.wroc.pl, witold.rekuc@pwr.wroc.pl -Wykład kończy się zaliczeniem na ocenę na podstawie
Bardziej szczegółowoKrok 1. SELECT Symbol AS KS INTO Dzielnik FROM Towary WHERE (Nazwa='Orzeszki solone') OR (Nazwa = 'Zupy CHOISE') OR (Nazwa = 'Kawa BURG');
Zad 2 Znaleźć miejscowości, z których klienci kupili w Naszej firmie każdy z towarów: "Zupy CHOISE","Orzeszki solone", ""Kawa BURG" (niekoniecznie każdy z klientów każdy z towarów!). Krok 1. SELECT Symbol
Bardziej szczegółowoWprowadzenie do SQL TEMAT 3 - Zadania dodatkowe
Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe 1. Wyselekcjonować firmy z Wrocławia lub Krakowa, którym Nasza firma sprzedała cokolwiek w sierpniu 1992 (użyj funkcji Year i Month). SELECT DISTINCT FIRMY.Nr,
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ół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ółowoModel relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
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ółowoModel relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Bardziej szczegółowoWprowadzenie do SQL TEMAT 4 - Zadania dodatkowe
Wprowadzenie do SQL TEMAT 4 - Zadania dodatkowe 1. Znaleźć firmy, z którymi nie była przeprowadzona żadna transakcja. (RÓŻNICA) Krok 1: utworzenie tabeli BEZ_TRANSAKCJI będącej kopią tabeli FIRMY i w której
Bardziej szczegółowoWprowadzenie do SQL. Instrukcja laboratoryjna. Ludmiła Rekuć, Witold Rekuć
Wprowadzenie do SQL Instrukcja laboratoryjna Ludmiła Rekuć, Witold Rekuć Wrocław, 18.02.2013 Spis treści Temat 1. System zarządzania bazą danych, baza danych i jej składowe. Zakładanie tabel - definiowanie
Bardziej szczegółowo1 Wstęp do modelu relacyjnego
Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared
Bardziej szczegółowoWprowadzenie do SQL. Instrukcja laboratoryjna
Wprowadzenie do SQL Instrukcja laboratoryjna Ludmiła Rekuć, Witold Rekuć Wrocław, 2013-02-11 Spis treści Temat 1. System zarządzania bazą danych, baza danych i jej składowe. Zakładanie tabel - definiowanie
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ółowoTworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1
Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,
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ół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ółowoACESS- zadania z wykorzystaniem poleceń SQL
ACESS- zadania z wykorzystaniem poleceń SQL Dane są relacje o schematach: Pracownik ( (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency,
Bardziej szczegółowoKonstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT
Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania
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ółowoTechnologie baz danych
Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów
Bardziej szczegółowo2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA
PLAN WYKŁADU Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna BAZY DANYCH Wykład 2 dr inż. Agnieszka Bołtuć MODEL DANYCH Model danych jest zbiorem ogólnych zasad posługiwania
Bardziej szczegółowoINFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe
Relacyjny model danych Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Charakterystyka baz danych Model danych definiuje struktury danych operacje ograniczenia integralnościowe
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ół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ółowoBazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.
Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów
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ół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ółowoWstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9
Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn
Bardziej szczegółowoPodstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1
Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język
Bardziej szczegółowoGrupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30
Zał. nr 4 do ZW 33/01 WYDZIAŁ INFORMATYKI I ZĄRZADZANIA KARTA PRZEDMIOTU Nazwa w języku polskim: Wprowadzenie do SQL Nazwa w języku angielskim: Introduction to SQL Kierunek studiów (jeśli dotyczy): Zarządzanie
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ółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje
Bardziej szczegółowoTadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski. Relacyjne bazy danych. są podstawą zachodniej cywilizacji
Relacyjne bazy danych Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1 Model danych Relacyjne bazy danych są podstawą zachodniej cywilizacji 3 Model danych: Aspekt strukturalny: Zbiór struktur
Bardziej szczegółowoWykład 05 Bazy danych
Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o
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ółowoInstrukcja CREATE TABLE
Podstawy języka SQL 2 Instrukcja CREATE TABLE CREATE TABLE tabela (pole_1 typ [(rozmiar)] [NOT NULL] [indeks_1] [, pole_2 typ [(rozmiar)] [NOT NULL] [indeks_2] [,...]] [, CONSTRAINT indeks_wielopolowy
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ół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ółowoEgzamin / zaliczenie na ocenę* 0,5 0,5
Zał. nr 4 do ZW 33/01 WYDZIAŁ INFORMATYKI I ZARZĄDZANIA KARTA PRZEDMIOTU Nazwa w języku polskim: Technologia przetwarzania danych Nazwa w języku angielskim: Data processing technology Kierunek studiów
Bardziej szczegółowoWykład 2. Relacyjny model danych
Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może
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ółowoGrupowanie i funkcje agregujące
Grupowanie i funkcje agregujące Zadanie 1. Stwórz odpowiednią tabelę Test_agr i wprowadź odpowiednie rekordy tak, aby wynik zapytania SELECT AVG(kol) avg_all, AVG(DISTINCT kol) avg_dist, COUNT(*) count_gw,
Bardziej szczegółowoBazy danych - wykład wstępny
Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,
Bardziej szczegół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ółowo8.9. Język SQL Kwerenda wybierająca w języku SQL
Rozdział 8 t Bazy danych program Access Program Access włączy wyłączoną zawartość, a baza danych zostanie ponownie otwarta jako w pełni funkcjonalna. W przeciwnym razie wyłączone składniki nie będą działać.
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ół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ół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ół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ółowoWstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga
Bazy Danych i Systemy informacyjne Wykład 1 Piotr Syga 09.10.2017 Ogólny zarys wykładu Podstawowe zapytania SQL Tworzenie i modyfikacja baz danych Elementy dynamiczne, backup, replikacja, transakcje Algebra
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. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408
Bazy Danych SQL Podstawy języka III: powtórzenie Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Modyfikacja schematu relacji Utwórz tabelę wg schematu: CREATE TABLE ODDZIAL ( numer_oddzialu
Bardziej szczegółowoWstęp do SQL. copyright: KGiIS WGGiOŚ AGH
Wstęp do SQL SQL (Structured Query Language) strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym.
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ółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może
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ółowoJęzyk SQL podstawy zapytań
Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania
Bardziej szczegółowoBazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski
Bazy danych Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 5 Strukturalny język zapytań (SQL - Structured Query Language) Algebraiczny rodowód podstawowe działania w przykładach Bazy danych.
Bardziej szczegółowoProjekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli
Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa Studia Podyplomowe dla Nauczycieli Bazy danych SQL Języki baz danych Interfejs DBMS składa się
Bardziej szczegółowoPrzykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.
Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna
Bardziej szczegółowoAby uruchomić program klienta i połączyć się z serwerem, należy komendę:
Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu
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ółowoInformatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro
Informatyka (5) SQL dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro katpalik@pg.gda.pl katarzyna.palikowska@wilis.pg.gda.pl Język zapytań SQL Język deklaratywny (regułowy) - SQL, ProLog,
Bardziej szczegółowoZasady transformacji modelu DOZ do projektu tabel bazy danych
Zasady transformacji modelu DOZ do projektu tabel bazy danych A. Obiekty proste B. Obiekty z podtypami C. Związki rozłączne GHJ 1 A. Projektowanie - obiekty proste TRASA # * numer POZYCJA o planowana godzina
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ół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ół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ółowoDr Michał Tanaś(http://www.amu.edu.pl/~mtanas)
Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Bazy danych podstawowe pojęcia Baza danych jest to zbiór danych zorganizowany zgodnie ze ściśle określonym modelem danych. Model danych to zbiór ścisłych
Bardziej szczegółowoBAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski
BAZY DANYCH algebra relacyjna Opracował: dr inż. Piotr Suchomski Wprowadzenie Algebra relacyjna składa się z prostych, ale mocnych mechanizmów tworzenia nowych relacji na podstawie danych relacji. Hdy
Bardziej szczegółowoJęzyk SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych
Politechnika Śląska Instytut Informatyki instrukcja laboratoryjna laboratorium Bazy Danych przygotowali: mgr inż. Paweł Kasprowski (Kasprowski@zti.iinf.polsl.gliwice.pl) mgr inż. Bożena Małysiak (bozena@ivp.iinf.polsl.gliwice.pl)
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ółowoBazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1
Bazy danych Wykład V Kwerendy Copyrights by Arkadiusz Rzucidło 1 Wprowadzenie Istotą bazy danych jest możliwość efektywnego wyszukiwania informacji Realizację operacji wyszukiwania zapewniają kwerendy
Bardziej szczegółowoBazy danych SQL Server 2005
Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,
Bardziej szczegółowoopisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)
Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje
Bardziej szczegółowoJęzyk SQL. Rozdział 9. Język definiowania danych DDL, część 2.
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji
Bardziej szczegółowoBazy danych Access KWERENDY
Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych
Bardziej szczegółowoOdnawialne Źródła Energii I rok. Tutorial PostgreSQL
Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym
Bardziej szczegółowoBaza danych Uczniowie.mdb
Baza danych Uczniowie.mdb Zadania: 1. Tabele: Założyć bazę danych uczniowie.mdb o strukturze danych: Uczniowie-dane - zip Uczniowie1_dane - zip uczzsbd1.mdb 1) UCZNIOWIE (NRU, nazwisko, imie) a) Wpisać
Bardziej szczegółowoWybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee
Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych
Bardziej szczegółowoJerzy Nawrocki, Wprowadzenie do informatyki
Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Baza danych Bazy danych = zorganizowana kolekcja danych Bazy danych (2) Cel Agenda Przedstawić relacyjny model baz danych Era przed-relacyjna
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ółowoOgólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret
Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków
Bardziej szczegółowoBazy danych - Materiały do laboratoriów VIII
Bazy danych - Materiały do laboratoriów VIII dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 23 kwietnia 2011 roku Polecenie COMMIT i ROLLBACK Polecenie
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ółowoSIECI KOMPUTEROWE I BAZY DANYCH
KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium
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ół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ółowoProgram wykładu. zastosowanie w aplikacjach i PL/SQL;
Program wykładu 1 Model relacyjny (10 godz.): podstawowe pojęcia, języki zapytań (algebra relacji, relacyjny rachunek krotek, relacyjny rachunek dziedzin), zależności funkcyjne i postaci normalne (BCNF,
Bardziej szczegółowoIntegralność danych Wersje języka SQL Klauzula SELECT i JOIN
Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności
Bardziej szczegółowoInformatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych
Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy
Bardziej szczegółowoBazy danych 6. Klucze obce. P. F. Góra
Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:
Bardziej szczegółowoBazy danych Język SQL część 1 Wykład dla studentów matem
Bazy danych Język SQL część 1 Wykład dla studentów matematyki 15 marca 2015 SQL Język wysokiego poziomu do komunikacji z bazami danych (ściślej: z systemami zarzadzania bazami danych) Podajemy co ma być
Bardziej szczegółowoSIECI KOMPUTEROWE I BAZY DANYCH
KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium
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ółowo