Vežbe, 24.09 : 

1. Primer na vežbama:  kreirali smo bazu (ponavljanje gradiva)

Za promenu, pristupili smo tutorijalu na https://www.w3schools.com/sql/sql_create_db.asp : Upotrebili smo isti primer da bi kreirali bazu na računaru.

Da proverimo koje sve baze imamo na kompu, koristili smo:

SHOW DATABASES;

Tu bazu smo i obrisali koristeći primer sa https://www.w3schools.com/sql/sql_drop_db.asp

2. Primer na vežbama: kreiranje druge baze i tabele u njoj, (ponavljanje gradiva)

U svrhu ponavljanja gradiva, kreirana je nova baza podataka (MojaBaza) i u njoj tabela (Osobe), po uzoru na prvi primer sa: https://www.w3schools.com/sql/sql_create_table.asp

U tu tabelu su upisani neki podaci i na kraju je urađen ispis svega u tabeli:

Izgled odgovarajućeg dela dela table u učionici:


izgled table - deo 1 izgled table - deo 2

..

3. deo:

Kako primeniti ograničenja prilikom kreiranja tabele

SQL pravila (engl. SQL rules) se koriste da se postave neka pravila koja će da važe za podatke u tabeli.

Ograničenja (engl. Constraints) se koriste da bi se ograničilo to kakvi podaci se smeštaju u tabele. Ako postoji problem, pa neko pokuša da unese podatke koji se ne slažu sa ograničenjima, akcija se neće izvršiti !

Ograničenja mogu da se postave za svaku od kolona pojediniačno, ali i za celu tabelu,

U prethodnim lekcijama su navedena ograničenja (link gore), a ovde su primeri svakih od ograničenja koje radimo, sa mogućnošću vežbanja kod kuće:

  • NOT NULL ograničenje : Ako drugačije nije navedeno, u kolonu se može upisati NULL vrednost (čitaj: može da ostane prazno - da se ne upiše ništa). Ako se prilikom kreiranja kolone u tabeli navede NOT NULL, tada se mora uneti vrednost - ne može da se ne upiše ništa.
    • Pogledajte primer  u kojem se moraju unositi ime i prezime:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255) NOT NULL,   godine int );

  • UNIQUE ograničenje: traži se da su sve vrednosti u koloni jedinstvene. Kao na primer, svaka osoba ima jedinstven JMBG.

    • Pogledajte primer  u kojem mora da je ID jedinstven:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255),   godine int,   CONSTRAINT UC_osobe UNIQUE (ID) );

  • DEFAULT ograničenje: postavlja se default vrednost koja će biti upisana ako korisnik ne navede taj deo prilikom unosa podataka.  

    • Pogledajte primer  u kojem, ako se ne unese grad, default će biti Kula:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255),   godine int,   grad varchar(255) DEFAULT 'Kula' );

  • PRIMARNI KLJUČ (PRIMARY KEY) ograničenje: - jedinstveno identifikuje svaki red u tabeli. Primarni ključ kora da sadrža jedinstvene (UNIQUE) vrednosti, i ne može da sadrži NULL. U tabeli može da postoji samo jedan primarni ključ ! Taj primarni kljul može da se sastoji samo od jedne kolone, ali može da se sastoji i od više kolona zajedno, i tada govorimo o kompozitnom ključu. (radili ste to prethodne školske godine).

    • Pogledajte primer  u kojem je primarni ključ ID:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255),   godine int,   grad varchar(255),    CONSTRAINT PK_osobe PRIMARY KEY (ID) );

i drugi način (
koji podržava većina sistema za upravljanje bazama podataka, ali NE SVI):

CREATE TABLE osobe
(
ID int PRIMARY KEY,
prezime varchar(255) NOT NULL,
ime varchar(255),
godine int,
grad varchar(255)
);

  • SPOLJAŠNJI KLJUČ (FOREIGN KEY) ograničenje: ključ koji povezuje dve tabele. Spoljašnji ključ je polje (ili skup polja) u jednoj tabeli koji se odnose na primarni ključ u nekoj drugoj tabeli. Ovo je smišljeno da bi se sprečili unosi neispravnih podataka, koji bi možda mogli i da unište veze koje postoje između tabela.
  • CHECK - (Kod nas često prevođeno kao "kontrolno ograničenje"): koristi se da ograniči opseg vrednosti koji se može unetu u kolonu. Primer, ne možete uneti redni broj dana u sedmici izvan intervala od 1 do 7.
    • Pogledajte primer  u kojem se mogu uneti samo punoletne osobe iz Kule:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255),   godine int,   grad varchar(255),    CONSTRAINT CHK_osobe CHECK (godine>=18 AND Grad='Kula') );


4. deo: Kako uneti podatke u tabelu (ovo smo radili u prethodnim lekcijama OVDE)

5. deo: Kako ukloniti tabelu i kako ukloniti bazu podataka (i ovo smo ranije radili OVDE)


Zbog provere znanja za ocenu, tj. samostalnog rada učenika na računaru, druga grupa nije radila blicko. Za drugu grupu će da bude zadat blicko na početku sledećeg časa kada se budemo videli u školi. Blicko se radi na papiru !

Last modified: Thursday, 24 September 2020, 10:02 PM