Professional Documents
Culture Documents
Partner - Sifra 10 20 30 40 60 70 75 80 90
Partner - Sifra 10 20 30 40 60 70 75 80 90
2008
Uvod
• SQL – kompletan jezik za rad s relacijskom bazom
podataka
SQL
• Skupine naredbi:
– naredbe za operacije s podacima
– naredbe za definiranje baze podataka
– naredbe za upravljanje (uspostavljanje indeksa,
Mladen Varga
kontroliranje pristupa bazi ...)
Katedra za informatiku
• Standardi
– SQL-89: standardiziran 1986., modificiran 1989.
– SQL-92: ANSI X3.135-1992 (ISO/IEC 9075:1992)
1 – SQL3: veliki standard objavljen u dijelovima 2
SQL3 Naredbe
JTC1/SC32 Data management and interchange:
• ISO/IEC 9075-1:2003 Information technology -- Database languages -- SQL -- Part 1: Framework
• SELECT, INSERT, DELETE, UPDATE
(SQL/Framework)
• ISO/IEC 9075-2:2003 Information technology -- Database languages -- SQL -- Part 2: Foundation • COMMIT, ROLLBACK
(SQL/Foundation)
• ISO/IEC 9075-3:2003 Information technology -- Database languages -- SQL -- Part 3:
Call-Level Interface (SQL/CLI)
• CREATE TABLE, ALTER TABLE, DROP TABLE
• ISO/IEC 9075-4:2003 Information technology -- Database languages -- SQL -- Part 4: Persistent
Stored Modules (SQL/PSM) • CREATE VIEW, DROP VIEW
• ISO/IEC 9075-5:1999 Information technology -- Database languages -- SQL -- Part 5:
Host Language Bindings (SQL/Bindings) • CREATE INDEX, DROP INDEX
• ISO/IEC 9075-5:1999/Amd 1:2001 On-Line Analytical Processing (SQL/OLAP)
• ISO/IEC 9075-5:1999/Amd 1:2001/Cor 1:2003 • GRANT, REVOKE
• ISO/IEC 9075-5:1999/Cor 2:2003 ISO/IEC 9075-9:2003 Information technology -- Database
languages -- SQL -- Part 9: Management of External Data (SQL/MED)
• ISO/IEC 9075-10:2003 Information technology -- Database languages -- SQL -- Part 10: Object
Language Bindings (SQL/OLB)
• ISO/IEC 9075-11:2003 Information technology -- Database languages -- SQL -- Part 11:
Information and Definition Schemas (SQL/Schemata)
• ISO/IEC 9075-13:2003 Information technology -- Database languages -- SQL -- Part 13: SQL
Routines and Types Using the Java TM Programming Language (SQL/JRT)
• ISO/IEC 9075-14:2003 Information technology -- Database languages -- SQL -- Part 14: XML-
Related Specifications (SQL/XML)
3 4
5
11 Maja Markić 1939-12-01 11 120 0 6
1
27.10.2008
Primjer a Primjer b
• ispis čitave relacije: • ispis atributa jedne relacije: ispisati atribute
ispisati sadržaj relacije TRGOVAC IME_PREZIME, DATUM_RODJENJA navedenim
• SELECT * FROM TRGOVAC; redoslijedom (operacija projekcije po atributima)
• SELECT IME_PREZIME, DATUM_RODJENJA FROM
TRGOVAC;
MB IME_PREZIME DATUM_RODJENJA MB_VG PLACA DODATAK
Primjer c2 Primjer c3
• ispisati matični broj, ime i prezime trgovaca kojima je • ispisati naziv partnera i adresu partnera čiji naziv počinje
voditelj trgovac s matičnim brojem 1 koji imaju pladu slovom A:
vedu od 99: • SELECT PARTNER_NAZIV, PARTNER_ADRESA
• SELECT MB, IME_PREZIME FROM PARTNER
FROM TRGOVAC WHERE PARTNER_NAZIV LIKE 'A%';
WHERE MB_VG=1 AND PLACA > 99;
11 12
2
27.10.2008
Primjer c4 Primjer d
• ispisati šifru, naziv i adresu poslovnog partnera kojemu • selekcija n-torki jedne relacije i uređeni ispis: ispisati matični
nije raspoređen trgovac (n-torke koje u atributu MB broj, ime i prezime trgovca, matični broj voditelja grupe i pladu
uređeno po rastudem redoslijedu matičnog broja voditelja i
relacije PARTNER imaju nul-vrijednost):
padajudoj pladi
• SELECT PARTNER_SIFRA, PARTNER_NAZIV, • SELECT MB, IME_PREZIME, MB_VG, PLACA
PARTNER_ADRESA FROM TRGOVAC
FROM PARTNER ORDER BY MB_VG ASC, PLACA DESC;
WHERE MB IS NULL;
MB IME_PREZIME MB_VG PLACA
1 Ivan Perić 1 120
PARTNER_SIFRA PARTNER_NAZIV PARTNER_ADRESA 9 Ante Ivić 1 100
40 A-banka d.d. Zagreb 5 Josip Antić 1 80
11 Maja Markić 11 120
3 Ana Horvat 11 110
13 14
Funkcije Primjer e1
• AVG (atribut) - srednja vrijednost atributa • izračunati najmanju, srednju i najvedu pladu trgovaca,
• MAX (atribut) - maksimalna vrijednost atributa te broj trgovaca (n-torki) koji su sudjelovali u izračunu:
• MIN (atribut) - minimalna vrijednost atributa • SELECT MIN(PLACA), AVG(PLACA),
• SUM (atribut) - zbroj vrijednosti atributa MAX(PLACA), COUNT(*)
FROM TRGOVAC;
• COUNT (*) - broj selektiranih n-torki
• COUNT (atribut) - broj nenulvrijednosti u atributu
MIN(PLACA) AVG(PLACA) MAX(PLACA) COUNT(*)
80 106 120 5
15 16
Primjer e2 Primjer e3
• izračunati najmanju, srednju i najvedu pladu, te broj • izračunati najmanju, srednju i najvedu pladu te broj
trgovaca (n-torki) koji su sudjelovali u izračunu; izračun trgovaca koji su sudjelovali u izračunu; izračun načiniti
načiniti po grupama: po grupama u kojima radi više od dva trgovca:
• SELECT MIN(PLACA), AVG(PLACA), • SELECT MIN(PLACA), AVG(PLACA),
MAX(PLACA), COUNT(*), MB_VG MAX(PLACA), COUNT(*), MB_VG
FROM TRGOVAC FROM TRGOVAC
GROUP BY MB_VG; GROUP MB_VG
HAVING COUNT(*) > 2;
MIN(PLACA) AVG(PLACA) MAX(PLACA) COUNT(*) MB_VG
80 100 120 3 1
110 115 120 2 11 MIN(PLACA) AVG(PLACA) MAX(PLACA) COUNT(*) MB_VG
80 100 120 3 1
17 18
3
27.10.2008
Primjer e4 Primjer f1
• izračunati najmanji, prosječni i najvedi dohodak u • selekcija n-torki jedne relacije uz korištenje podupita
poduzedu; dohodak je zbroj plade i dodatka, sve (selekcija u selekciji) - ispisati matični broj, ime i
pomnoženo s 3: prezime trgovaca koji rade u grupi s Josipom Antidem:
• SELECT MIN(PLACA+DODATAK)*3 “Najmanji", • SELECT MB, IME_PREZIME
AVG(PLACA+DODATAK)*3 "Prosječni", FROM TRGOVAC
MAX(PLACA+DODATAK)*3 “Najvedi“ WHERE MB_VG=
FROM TRGOVAC (SELECT MB_VG FROM TRGOVAC
WHERE IME_PREZIME='Josip Antid');
MB IME_PREZIME
Najmanji Prosječni Najveći 1 Ivan Perić
330 369 435 5 Josip Antić
9 Ante Ivić
19 20
4
27.10.2008
Primjer g2 Primjer g3
• spajanje triju relacija: ispisati naziv poslovnog partnera, ime i
• spajanje iste relacije: ispisati matični broj, ime i prezime zaduženog trgovca te ime i prezime voditelja njegove
prezime trgovca te matični broj, ime i prezime voditelja grupe:
grupe kojoj trgovac pripada: • SELECT PARTNER_NAZIV, RADI.IME_PREZIME "Trgovac",
• SELECT RADI.MB, RADI.IME_PREZIME, VODI.IME_PREZIME "Voditelj“
FROM PARTNER, TRGOVAC RADI, TRGOVAC VODI
VODI.MB MV, VODI.IME_PREZIME VODITELJ
WHERE PARTNER.MB=RADI.MB AND RADI.MB_VG=VODI.MB;
FROM TRGOVAC RADI, TRGOVAC VODI PARTNER_NAZIV Trgovac Voditelj
WHERE RADI.MB_VG=VODI.MB; Zagreb d.o.o. Ana Horvat Maja Markić
Horizont d.d. Josip Antić Ivan Perić
MB IME_PREZIME MV VODITELJ Josip Ferić Maja Markić Maja Markić
1 Ivan Perić 1 Ivan Perić Brzopromet Ivan Perić Ivan Perić
3 Ana Horvat 11 Maja Markić Vicko Stić Ante Ivić Ivan Perić
5 Josip Antić 1 Ivan Perić Kompakt d.o.o. Josip Antić Ivan Perić
9 Ante Ivić 1 Ivan Perić Hotel F Ante Ivić Ivan Perić
11 Maja Markić 11 Maja Markić 25 Amalija d.d. Ante Ivić Ivan Perić 26
27 28
29 30
5
27.10.2008
6
27.10.2008
CREATE TABLE
• Sa stanovišta krajnjeg korisnika transakcija je • CREATE TABLE relacija (atribut[,atribut...]);
nedjeljiva
– ne zanima ga činjenica da se istovremeno obavlja • definirati relacijsku shemu relacije TRGOVAC:
više operacija u bazi podataka • CREATE TABLE TRGOVAC (
• Korisnik mora biti siguran da je zadatak obavljen MB NUMERIC(3)
potpuno i samo jednom! NOT NULL UNIQUE,
IME_PREZIME CHARACTER(30) NOT NULL,
DATUM_RODJENJA CHARACTER(10),
MB_VG NUMERIC(3),
PLACA NUMERIC(4),
DODATAK NUMERIC(4)
37 ); 38
39 40
7
27.10.2008
47 48
8
27.10.2008
GRANT REVOKE
• GRANT {ALL[PRIVILEGES]|privilegija[,privilegija...]} • ukinuti sva prava korištenja relacije TRGOVAC svim
ON relacija
TO {PUBLIC|korisnik[,korisnik...]} korisnicima (osim vlasniku):
[WITH GRANT OPTION]; • REVOKE ALL ON TRGOVAC FROM PUBLIC;
49 50