1. osnove sql-a

35
1. OSNOVE SQL-A Informacijski sustavi Sofija Pinjušić Ćurić, mag.ing.comp. 2013./2014.

Upload: skola-futura

Post on 24-May-2015

1.153 views

Category:

Education


2 download

DESCRIPTION

Izvrsna matematička gimnazija i ekonomsko-informatička škola! - Kreativan pristup uz online podršku učenju. - Najbolja priprema za državnu maturu!

TRANSCRIPT

Page 1: 1. Osnove SQL-a

1. OSNOVE SQL-AInformacijski sustaviSofija Pinjušić Ćurić, mag.ing.comp.2013./2014.

Page 2: 1. Osnove SQL-a

Različite aplikacije

2

Page 3: 1. Osnove SQL-a

Osnove baza podataka baza podataka - organiziran i uređen

skup međusobno povezanih podataka spremljenih bez nepotrebne redundancije ili ponavljanja

primjeri u svakodnevnom životu -evidencije, kartoteke, imenici, albumi, ...

Fizički bazu podataka čini jedan ili više dokumenata

3

Page 4: 1. Osnove SQL-a

Vrste baza podataka baza podataka koja se sastoji od samo

jedne tablice - plošna (flat file) baza podataka primjer: Excel podaci su predstavljeni

dvodimenzionalno - plošno postoje znatna ograničenje

baze podataka u kojima su informacije u više povezanih tablica - relacijske BP

4

Page 5: 1. Osnove SQL-a

Što su tablice i relacije? tablice su objekti u koji služe za pohranu

informacija relacija - predstavlja informaciju o jednom

subjektu (dobavljač, proizvod, zaposlenik, ...) u relacijskim bazama podataka relacija

je pohranjena kao tablica

5

Page 6: 1. Osnove SQL-a

Još o bazama podataka baza podataka je u osnovi elektronički

ekvivalent organiziranoj listi informacija ove informacije se odnose na iste subjekte

ili svrhu, npr. lista zaposlenika

6

Page 7: 1. Osnove SQL-a

Još o tablicama tablica (relacija) - sastoji se od redaka

(slogova, zapisa, unosa, records) i stupaca (polja, fields)

osnovne karakteristike tablice: ne postoje dva jednaka retka ni dva

jednaka stupca redoslijed redaka i redoslijed stupaca

nije bitan

7

Page 8: 1. Osnove SQL-a

O retcima i stupcima stupci predstavljaju polja, tj. atribute - sadrže

specifične informacije o zaposleniku: prezime, ime, datum zaposlenja, ... svakom polju se dodjeljuje određeni tip

podataka svako polje ima određena svojstva -

veličina polja, je li unos obavezan, tekst zaglavlja, ...

Svaki stupac je određenog tipa podatka retci predstavljaju unose - sve informacije o

određenom zaposleniku

8

Page 9: 1. Osnove SQL-a

SQL server MS SQL Server je programski sustav za

organiziranje baze podataka i rad s podacima u njoj to je sustav za upravljanje relacijskom

bazom podataka - surbp relational database management system

– rdbms Drugi primjeri rdbms-a: IBM DB2, Oracle,

MySQL, Microsoft Access

9

Page 10: 1. Osnove SQL-a

Problemski zadatak 1 –Telefonski imenik Kreirati bazu podataka koja će

pohranjivati telefonski imenik korisnika Baza treba sadržavati podatke o

kontaktima kao što su ime, prezime, broj telefona i slično

10

Page 11: 1. Osnove SQL-a

SQL Structured Query Language Jezik za pristup i upravljanje bazama

podataka Primjeri naredbi: create, update, delete,

insert,… Karakteristike:

Jednostavan Nije proprietary Moćan

11

Page 12: 1. Osnove SQL-a

SQL Primjeri naredbi:

SELECT - extracts data from a database UPDATE - updates data in a database DELETE - deletes data from a database INSERT INTO - inserts new data into a database CREATE DATABASE - creates a new database ALTER DATABASE - modifies a database CREATE TABLE - creates a new table ALTER TABLE - modifies a table DROP TABLE - deletes a table CREATE INDEX - creates an index (search key) DROP INDEX - deletes an index

Nije case sensitive

12

Page 13: 1. Osnove SQL-a

SELECT naredba Koristi se dohvat podataka iz baze Rezultat se pohranjuje u tablicu rezultata,

tzv. rezultantni set Sintaksa:SELECT column_name,column_nameFROM table_name;iliSELECT * FROM table_name;

13

Page 14: 1. Osnove SQL-a

Instalacija i primjeri http://www.microsoft.com/en-

us/sqlserver/editions/2012-editions/express.aspx

http://www.w3schools.com/sql/default.asp

14

Page 15: 1. Osnove SQL-a

Radni zadatak – Modelirati bazu podataka koju kreiraju skripte Primjer entity-relationship (entitet-veze) modela:

Mi ćemo napraviti djelomični ER i „tablični” model

15

Page 16: 1. Osnove SQL-a

Primjer složenijeg relacijskog modela

16

Page 17: 1. Osnove SQL-a

Primarni ključ (primary key) polje ili više polja kojima se jednoznačno

definira redak on služi za povezivanje dvije tablice svojstva primarnog ključa:

jednoznačan je - dva unosa u jednoj tablici nemaju istu vrijednost polja primarnog ključa

ne može biti NULL vrijednost, tj. prazno polje mora postojati kod spremanja i kreiranja zapisa

17

Page 18: 1. Osnove SQL-a

Sekundarni ključ (secondary key) odnos (relationship) je asocijacija, veza

između zajedničkih polja (primarni i strani ključ) koja se pojavljuju u dvije tablice

asocijacija se koristi za vezanje dvije tablice, odnosno primarnog ključa iz jedne tablice s poljem koji sadrži iste informacije u drugoj tablici

polje u drugoj tablici nazivamo strani ključ

18

Page 19: 1. Osnove SQL-a

Tipovi veza N:1 veza – jedan primarni ključ se može

povezati s 0, 1 ili više slogova u povezanoj tablici Najčešći tip

1:1 veza – jedan primarni ključ na jedan slog u povezanoj tablici

N:N veza – više primarnih ključeva na više slogova u povezanoj tablici

19

Page 20: 1. Osnove SQL-a

Referencijalni integritet referencijalni integritet (referential integrity) nad

podacima znači da unos u jednu tablicu nije dopušten ukoliko već ne postoji u drugoj tablici

referencijalni integritet = vanjski ključ u povezanoj tablici mora odgovarati primarnom ključu osnovne tablice

što omogućava referencijalni integritet: ne može se mijenjati vrijednost primarnog ključa ako

postoji povezani slog u drugoj tablici ne može se izbrisati slog u tablici primarnog ključa ako

postoji povezani slog u drugoj tablici ne može se unijeti vrijednost stranog ključa prije nego

se unese ista vrijednost kao primarni ključ u povezanoj tablici

20

Page 21: 1. Osnove SQL-a

SQL naredbe služe za izvođenje operacija nad bazama

podataka primjer: naredba koja odabire sve zapise u

tablici CustomersSELECT * FROM Customers;

točka zarez je standardan način odvajanja SQL naredbi u sustavima baza podataka koji dopuštaju izvršavanje više od jedne sqlnaredbe unutar jednog poziva serveru

21

Page 22: 1. Osnove SQL-a

Tablica nad kojom radimoCustomerID CustomerNam

e ContactName Address City PostalCode Country

1 Alfreds Futterkiste

Maria Anders Obere Str. 57 Berlin 12209 Germany

2Ana Trujillo Emparedados y helados

Ana TrujilloAvda. de la Constitución 2222

México D.F. 05021 Mexico

3Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F. 05023 Mexico

4 Around the Horn

Thomas Hardy120 Hanover Sq.

London WA1 1DP UK

5 Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå S-958 22 Sweden

22

Page 23: 1. Osnove SQL-a

Još jednom o SELECT naredbi Koristi se dohvat podataka iz baze Rezultat se pohranjuje u tablicu rezultata,

tzv. rezultantni set Sintaksa:SELECT column_name,column_nameFROM table_name;iliSELECT * FROM table_name;

23

Page 24: 1. Osnove SQL-a

Primjeri SELECT naredbe odabir stupaca – primjer select naredbe koja

odabire CustomerName i City stupce iz Customer tablice:SELECT CustomerName,City FROM Customers;

select * primjer – primjer select naredbe koja odabire sve stupce iz Customers tablice:SELECT * FROM Customers;

24

Page 25: 1. Osnove SQL-a

SELECT DISTINCT naredba unutar tablice unutar stupca mogu se nalaziti

mnoge iste vrijednosti – duplikati ključna riječ DISTINCT se koristi za vraćanje samo

jedinstvenih (različitih) vrijednosti sintaksa:

SELECT DISTINCT column_name,column_nameFROM table_name;

primjer – naredba koja odabire samo različite vrijednosti unutar City stupca u Customers tabliciSELECT DISTINCT City FROM Customers;

25

Page 26: 1. Osnove SQL-a

SQL WHERE naredba WHERE se koristi za filtriranje zapisa,

odnosno za izvlačenje samo onih zapisa koji ispunjavaju zadani kriterij

sintaksa:SELECT column_name,column_nameFROM table_nameWHERE column_name operator value;

26

Page 27: 1. Osnove SQL-a

Primjeri WHERE naredbe primjer – naredba koja odabire sve kupce iz

zemlje Mexico unutar Customers tabliceSELECT * FROM CustomersWHERE Country='Mexico';

ako uvjet filtriranja postavljamo na tekstualnoj vrijednosti potrebno je navesti jednostruke navodnike oko teksta

većina sustava baza podataka će dopustiti i dvostruke navodnike

27

Page 28: 1. Osnove SQL-a

Primjeri WHERE naredbe numeričke vrijednosti ne smijemo stavljati

unutar navodnikaSELECT * FROM CustomersWHERE CustomerID=1;

28

Page 29: 1. Osnove SQL-a

Operatori u WHERE naredbi

29

Operator Description

= Equal

<> Not equal. Note: In some versions of SQL this operator may be written as !=

> Greater than

< Less than

>= Greater than or equal

<= Less than or equal

BETWEEN Between an inclusive range

LIKE Search for a pattern

IN To specify multiple possible values for a column

Page 30: 1. Osnove SQL-a

Primjeri WHERE naredbe Ispisati sve proizvode čija cijena je između 10 i

20:SELECT * FROM ProductsWHERE Price BETWEEN 10 AND 20; Odabrati sve kupce koji su iz grada čije ime

počinje sa slovom s:SELECT * FROM CustomersWHERE City LIKE 's%';

30

Page 31: 1. Osnove SQL-a

Primjeri WHERE naredbe Ispisati sve kupce koji su iz Londona ili

Pariza:SELECT * FROM CustomersWHERE City IN ('Paris','London');

31

Page 32: 1. Osnove SQL-a

AND i OR operatori AND i OR operatori se koriste za filtiriranje

zapisa ovisno o jednom ili više uvjeta AND operator prikazuje zapis ako taj zapis

zadovoljava sve uvjete koje operator povezuje istiniti

OR operator prikazuje zapis ako taj zapis zadovoljava barem jedan od uvjeta koje operator povezuje

32

Page 33: 1. Osnove SQL-a

Primjeri AND operatora Odabrati sve kupce koji su iz Njemačke i iz

grada Berlina:SELECT * FROM CustomersWHERE Country='Germany'AND City='Berlin';

33

Page 34: 1. Osnove SQL-a

Primjeri OR operatora Odabrati sve kupce koji su iz Berlina ili iz

Münchena:SELECT * FROM CustomersWHERE City='Berlin'OR City='München';

34

Page 35: 1. Osnove SQL-a

Kombinacija AND i OR operatora Odabrati sve kupce koji su iz Njemački i to

iz Berlina ili iz Münchena:SELECT * FROM CustomersWHERE Country='Germany'AND (City='Berlin' OR City='München');

35