vežbe (17.09) - Kreiranje baze, kreiranje tabele sa i bez ograničenja, ubacivanje podataka i šta znači null
1. Pokrenuli smo XAMPP portable verziju:
- XAMPP_Control:
- Start za Apache i MySQL ,
- deo SQL za rad sa SQL-om, i
- posle svakog SQL dela: GO (u donjem desnom delu)
2. Kreirali smo jednu bazu (odeljenje) i za korišćenje koristimo: "USE odeljenje;"
CREATE DATABASE odeljenje;
USE odeljenje;
3. Kreirali smo dve tabele u bazi i u njih ubacili po 2 reda
Tabela br.1: Ucenici - ima 4 kolone, od kojih je poslednja primarni ključ.
USE odeljenje;
CREATE TABLE Ucenici (
ime VARCHAR (20),
prezime VARCHAR (30),
JMBG CHAR(13),
ID INT(5) PRIMARY KEY AUTO_INCREMENT);
INSERT INTO Ucenici VALUES
('Petar', 'Pterović', '1231231231231', 1),
('Ana', 'Karenjina', '3213213213213', 2);
Tabela br.2: Ucenici2 - ima 6 kolona i za svaku je postavljeno neko ograničenje
CREATE TABLE IF NOT EXISTS Ucenici2 (
redni_broj INT NOT NULL AUTO_INCREMENT,
ime VARCHAR(25) NOT NULL,
prezime VARCHAR(25) NOT NULL,
adresa VARCHAR(50) NULL,
EMAIL VARCHAR(50) NULL,
PRIMARY KEY (redni_broj)
);
INSERT INTO Ucenici2(redni_broj, ime, prezime) VALUES
(1, 'Pera', 'Marić'), (2, 'Sima', 'Simić');
Ovime su kreirane dve tabele. Prva je ista kao tabela kreirana na času prethodne nedelje. Druga je slična, sa tom razlikon da smo upotrebili ograničenja NULL, NOT NULL.
Da se podsetimo: Ako je posle nekog dela tabele navedeno NULL, onda se u taj deo ne moraju upisati podaci prilikom unosa. Ako je navedeno NOT NULL, tu se mora uneti podatak - javiće grešku ako to ne učinimo.
Iz primera se vidi, da priliko unosa podataka nismo uneli adrese niti email za pojedine učenike (ograničenje NOT NULL).
4. Na kraju smo proverili šta imamo u tabelama :
SELECT * FROM Ucenici WHERE (1);
SELECT * FROM Ucenici2 WHERE (1);
Ako ste sve uradili kako treba, prikazaće se sadržaji obe tabele.
NOVI KONCEPT :
Šta u prikazu sadržaja tabele (u nekom delu) znači null ?
To znači da nema ništa upisano u taj deo (prazno).
Da se podsetimo gradiva od prošle nedelje:
| Ograničenje | Opis |
|---|---|
| PRIMARY KEY |
primarni ključ u tabeli koji je jedinstven, tj. bez ponavljanja |
| FOREIGN KEY |
spoljni ključ u tabeli koji služi za povezivanje sa drugom tabelom |
| NOT NULL |
vrednost se prilikom unosa naredbom INSERT ne može preskočiti |
| UNIQUE |
vrednost se ne može ponavljati, ne dozvoljava duplikate |
| DEFAULT |
ukoliko se prilikom unosa naredbom INSERT ne unese podatak za kolonu, automatski će se uneti default vrednost |
| CHECK |
vrste provere ( broj veći od 0, broj unetih slova, znak za email...) |
U toku kreiranja tabele u bazi podataka mogu se koristiti ograničenja (gore navedena). Svrha ovih ograničenja jeste da se za određene atribute podese neka svojstva. Na primer, primarni i spoljni ključ za povezivanje tabela, default vrednost za polje, not null i unique atributi za polje i check ograničenje za proveru validnocti unosa podataka u polje
Bitno je napomenuti da se određena ograničenja mogu postaviti isključivo na nivou tabele, neka isključivo na nivou kolone, a neka na oba načina po izboru.primer:
CREATE TABLE ucenici
( jmbg VARCHAR(13) PRIMARY KEY,
ime VARCHAR(25) NOT NULL,
prezime VARCHAR(25) NOT NULL,
adresa VARCHAR(25) );
Da biste potvrdili kreiranje tabele :
DESCRIBE ucenici;
Ako imate problema sa usvajanjem znanja o nekim konceptima koji su korišćeni na času, pogledajte video lekcije koje su postavljene u okviru materijala za vežbe od prethodne nedelje: LINK.
INFO:
Na kraju je rađen blicko od 5 minuta, na papiru.
Sledeći čas će biti za rad ocenu na računaru.